WEBVTT

00:00.960 --> 00:03.270
Xin chào và chào mừng bạn trở lại khóa học về Học sâu.

00:03.270 --> 00:06.540
Hôm nay chúng ta đang nói về giảm độ dốc ngẫu nhiên.

00:07.020 --> 00:14.430
Trước đây, chúng tôi đã tìm hiểu về gradient descent và chúng tôi phát hiện ra rằng đó là một phương pháp rất hiệu quả để giải quyết vấn

00:14.430 --> 00:19.410
đề tối ưu hóa của chúng tôi trong đó chúng tôi đang cố gắng giảm thiểu hàm chi phí.

00:19.410 --> 00:29.160
Về cơ bản, chúng ta mất từ mười đến sức mạnh của 57 năm để giải quyết một vấn đề trong vòng vài phút hoặc vài giờ hoặc trong vòng một

00:29.370 --> 00:30.840
ngày hoặc lâu hơn.

00:30.840 --> 00:37.440
Và nó thực sự giúp đẩy nhanh tốc độ vì chúng ta có thể thấy đường nào đang xuống dốc và chúng ta có thể chỉ cần đi

00:37.440 --> 00:41.340
theo hướng đó và thực hiện các bước và đạt mức tối thiểu nhanh hơn.

00:41.340 --> 00:49.950
Nhưng vấn đề với thanh có độ dốc giảm dần là phương pháp này yêu cầu hàm chi phí

00:49.950 --> 00:50.940
phải lồi.

00:50.940 --> 00:55.200
Và như bạn có thể thấy ở đây, chúng tôi đã chọn cụ thể một hàm chi phí lồi.

00:55.200 --> 01:03.180
Về cơ bản, hàm lồi có nghĩa là hàm trông tương tự như những gì chúng ta đang thấy bây giờ, nó chỉ lồi

01:03.180 --> 01:10.320
theo một hướng và về bản chất, nó có một cực tiểu chung và đó là hàm mà chúng ta sẽ

01:10.320 --> 01:11.010
tìm.

01:11.430 --> 01:13.980
Nhưng nếu hàm của chúng ta không lồi thì sao?

01:13.980 --> 01:15.900
Điều gì xảy ra nếu hàm chi phí của chúng ta không lồi?

01:16.290 --> 01:17.730
Điều gì sẽ xảy ra nếu nó trông giống như thế này?

01:17.730 --> 01:19.590
Trước hết, làm thế nào mà điều đó có thể xảy ra?

01:19.590 --> 01:27.390
Chà, điều đó có thể xảy ra bởi vì nếu chúng ta, trước hết, chọn một hàm chi phí, không phải là sự khác biệt bình phương

01:27.390 --> 01:34.380
giữa mũ và y, hoặc nếu chúng ta chọn hàm chi phí, tương tự như vậy, nhưng sau đó là trong một đa chiều

01:34.380 --> 01:39.060
không gian, nó thực sự có thể biến thành một cái gì đó không lồi.

01:39.570 --> 01:44.670
Và vì vậy điều gì sẽ xảy ra trong trường hợp này nếu chúng ta chỉ cố gắng áp dụng phương pháp giảm độ dốc bình thường của chúng ta?

01:44.970 --> 01:46.290
Một cái gì đó như thế này có thể xảy ra.

01:46.290 --> 01:51.150
Chúng tôi có thể tìm thấy mức tối thiểu cục bộ của hàm chi phí hơn là giá trị toàn cầu.

01:51.150 --> 01:54.540
Vì vậy, cái này là cái tốt nhất và chúng tôi đã tìm ra cái sai.

01:54.540 --> 01:57.660
Và do đó chúng tôi không có trọng lượng chính xác.

01:57.660 --> 02:02.310
Chúng tôi không có mạng nơ-ron được tối ưu hóa, chúng tôi có mạng nơ-ron phụ.

02:02.310 --> 02:04.410
Và vậy chúng ta phải làm gì trong trường hợp này?

02:04.410 --> 02:09.930
Chà, câu trả lời ở đây là giảm độ dốc ngẫu nhiên.

02:09.930 --> 02:15.120
Và hóa ra đường giảm độ dốc ngẫu nhiên không yêu cầu hàm chi phí phải lồi.

02:15.120 --> 02:20.070
Vì vậy, chúng ta hãy xem xét hai sự khác biệt giữa độ dốc gradient bình thường mà chúng ta đã nói đến

02:20.070 --> 02:21.150
và gradient ngẫu nhiên.

02:21.540 --> 02:27.540
Vì vậy, giảm độ dốc bình thường là khi chúng ta lấy tất cả các hàng của mình, chúng ta cắm chúng vào mạng nơ-ron của mình.

02:27.540 --> 02:33.270
Và một lần nữa ở đây, chúng tôi đã sao chép mạng nơ-ron nhiều lần, nhưng các hàng luôn

02:33.270 --> 02:35.820
được cắm vào cùng một mạng nơ-ron đó.

02:35.820 --> 02:37.140
Vì vậy, chỉ có một mạng nơ-ron.

02:37.140 --> 02:39.030
Điều này chỉ dành cho mục đích hình dung.

02:39.030 --> 02:42.990
Và khi chúng tôi đã cắm chúng vào, chúng tôi đã tính toán hàm chi phí của mình dựa trên

02:42.990 --> 02:47.130
công thức ở bên phải và nhìn vào biểu đồ ở dưới cùng và sau đó chúng tôi điều chỉnh trọng số.

02:47.250 --> 02:54.390
Sau đó, đây được gọi là phương pháp giảm độ dốc hoặc nó cũng có thuật ngữ thích hợp là phương pháp giảm độ dốc hàng loạt.

02:54.390 --> 03:00.330
Vì vậy, chúng tôi lấy toàn bộ lô từ mẫu của chúng tôi, chúng tôi áp dụng nó và sau đó chúng tôi chạy mẫu đó.

03:00.840 --> 03:04.170
Ở đây, phương pháp giảm độ dốc ngẫu nhiên có một chút khác biệt.

03:04.170 --> 03:10.800
Chúng tôi lấy từng hàng một, vì vậy chúng tôi lấy hàng này, chúng tôi chạy mạng nơ-ron và sau đó chúng tôi điều chỉnh

03:10.800 --> 03:11.460
trọng số.

03:11.760 --> 03:17.040
Sau đó, chúng tôi chuyển sang hàng thứ hai, chúng tôi lấy hàng thứ hai, chúng tôi chạy mạng nơ-ron của mình, chúng tôi xem xét hàm chi

03:17.040 --> 03:19.710
phí, và sau đó chúng tôi điều chỉnh trọng số một lần nữa.

03:19.980 --> 03:22.170
Và sau đó chúng ta đi hàng khác, lấy hàng ba.

03:22.560 --> 03:23.670
Chúng tôi điều hành mạng nơ-ron của mình.

03:23.670 --> 03:24.660
Chúng ta sẽ xem xét hàm chi phí.

03:24.660 --> 03:25.350
Chúng tôi chỉ là trọng lượng.

03:25.350 --> 03:32.580
Vì vậy, về cơ bản chúng tôi đang xem xét chúng tôi đang điều chỉnh trọng lượng sau mỗi hàng đơn lẻ thay vì làm mọi thứ cùng nhau và

03:32.610 --> 03:35.970
sau đó điều chỉnh trọng lượng theo các cách tiếp cận khác nhau.

03:35.970 --> 03:39.630
Và bây giờ chúng ta sẽ chỉ so sánh hai bên cạnh nhau.

03:39.630 --> 03:40.530
Vì vậy, chúng đây.

03:40.560 --> 03:42.660
Đây là cách ghi nhớ chúng một cách trực quan.

03:42.660 --> 03:49.020
Vì vậy, bạn đã có gốc gradient hàng loạt nơi bạn đang điều chỉnh trọng số sau khi bạn chạy chúng, sau khi bạn

03:49.020 --> 03:52.290
đã chạy tất cả các hàng trong mạng nơ-ron của mình.

03:52.800 --> 03:56.760
Và sau đó về cơ bản, bạn điều chỉnh trọng lượng và bạn chạy lại toàn bộ, lặp đi lặp lại, lặp đi lặp lại, lặp

03:56.760 --> 03:57.360
đi lặp lại.

03:57.360 --> 04:03.840
Trong phương pháp giảm độ dốc ngẫu nhiên, bạn chạy từng hàng một và bạn điều chỉnh trọng lượng, bạn điều chỉnh trọng lượng,

04:03.840 --> 04:07.500
bạn điều chỉnh trọng lượng và sau đó bạn làm lại mọi thứ.

04:07.500 --> 04:09.990
Và đó được gọi là thể loại này.

04:09.990 --> 04:10.770
Trong phương pháp này.

04:10.980 --> 04:19.200
Hai điểm khác biệt chính là phương pháp giảm độ dốc ngẫu nhiên giúp bạn tránh được vấn đề khi

04:19.200 --> 04:28.410
bạn tìm thấy các điểm cực trị cục bộ hoặc điểm cực tiểu cục bộ thay vì điểm cực tiểu tổng thể chung.

04:28.800 --> 04:35.460
Và lý do cho điều đó một cách đơn giản là SGD hoặc phương pháp giảm độ dốc ngẫu nhiên có dao động cao hơn

04:35.460 --> 04:38.160
nhiều bởi vì nó có đủ khả năng chi trả.

04:38.160 --> 04:43.620
Nó thực hiện một lần lặp lại hoặc một hàng tại một thời điểm, và do đó, dao động cao

04:43.620 --> 04:49.320
hơn nhiều và có nhiều khả năng tìm thấy mức tối thiểu toàn cầu hơn là chỉ mức tối thiểu cục bộ.

04:49.320 --> 04:55.650
Và điều khác về phương pháp giảm độ dốc ngẫu nhiên so với gradient hàng loạt là nó nhanh

04:55.740 --> 04:56.430
hơn.

04:56.430 --> 04:59.700
Giống như ấn tượng đầu tiên mà bạn có thể có là bởi vì nó đang làm mọi thứ.

04:59.960 --> 05:00.740
Cùng một lúc.

05:00.740 --> 05:07.280
Nó chậm hơn, nhưng trên thực tế, nó nhanh hơn vì nó không phải tải tất cả dữ liệu vào bộ nhớ

05:07.760 --> 05:12.530
và chạy và đợi cho đến khi tất cả những thứ đó cuộn lại với nhau.

05:12.530 --> 05:14.150
Nó chỉ có thể chạy từng cái một.

05:14.150 --> 05:15.470
Vì vậy, nó là một thuật toán nhẹ hơn nhiều.

05:15.470 --> 05:16.730
Nó nhanh hơn nhiều theo nghĩa đó.

05:16.730 --> 05:24.410
Vì vậy, mặc dù nó có nhiều cách hơn và đó là những khía cạnh đó, nó có nhiều lợi thế hơn so với phương pháp giảm độ dốc

05:24.410 --> 05:25.190
hàng loạt.

05:25.190 --> 05:31.040
Ưu điểm chính của hoặc loại tương tự như chuyên nghiệp đối với phương pháp giảm độ dốc theo lô là nó

05:31.040 --> 05:36.890
là một thuật toán xác định hoặc đúng hơn là giảm độ dốc ngẫu nhiên là một thuật toán ngẫu nhiên,

05:36.890 --> 05:43.610
có nghĩa là nó ngẫu nhiên và là phương pháp giảm độ dốc tốt nhất miễn là bạn có trọng số ban đầu giống nhau

05:44.210 --> 05:49.940
cho mạng nơ-ron của bạn, mỗi khi bạn chạy phương pháp giảm độ dốc hàng loạt, bạn sẽ nhận được các

05:50.690 --> 05:55.580
lần lặp lại giống nhau, cùng kết quả cho cách thức cập nhật trọng số của bạn.

05:55.790 --> 05:58.220
Đầu tiên là đối với phương pháp giảm độ dốc ngẫu nhiên.

05:58.220 --> 06:01.100
Bạn sẽ không hiểu vì nó là một phương pháp ngẫu nhiên.

06:01.100 --> 06:07.550
Bạn có thể chọn các hàng của mình một cách ngẫu nhiên và bạn đang cập nhật mạng nơ-ron của mình theo cách ngẫu

06:07.550 --> 06:07.880
nhiên.

06:07.880 --> 06:12.950
Và do đó, bạn sẽ chỉ thực hiện mỗi khi bạn chạy phương pháp giảm độ dốc ngẫu nhiên,

06:12.950 --> 06:19.070
ngay cả khi bạn có cùng trọng số lúc bắt đầu, bạn sẽ có một quy trình khác và các lần lặp khác nhau

06:19.070 --> 06:20.480
để đạt được điều đó.

06:20.480 --> 06:25.460
Vì vậy, đó là tóm tắt những gì giảm độ dốc ngẫu nhiên là gì.

06:25.970 --> 06:31.190
Ngoài ra, có một phương pháp ở giữa hai phương pháp này được gọi là phương pháp giảm độ dốc

06:31.190 --> 06:38.660
hàng loạt nhỏ trong đó bạn kết hợp cả hai và về cơ bản bạn chạy thay vì chạy toàn bộ hoặc chạy một lúc, bạn chạy hàng loạt,

06:38.660 --> 06:41.340
có thể từ 5 đến 10, 100 chúng khoáng chất.

06:41.390 --> 06:45.080
Bạn quyết định đặt, bạn chạy những số hàng đó là thời gian.

06:45.080 --> 06:47.630
Sau đó, bạn cập nhật trọng lượng của mình và bạn cập nhật trọng lượng của mình, v.v.

06:47.630 --> 06:50.300
Và đó được gọi là phương pháp giảm độ dốc theo lô nhỏ.

06:50.330 --> 06:56.270
Nếu bạn muốn tìm hiểu thêm về Gradient Descent, có một bài viết tuyệt vời mà bạn có thể xem

06:56.270 --> 06:56.570
qua.

06:56.570 --> 07:04.880
Nó được gọi là A Neural Network và 13 dòng Python Phần hai Gradient Descent của Andrew Trask và các liên kết

07:04.880 --> 07:05.750
bên dưới.

07:05.750 --> 07:12.500
Đó là trên GitHub 2015 bài viết rất hay được viết bằng những thuật ngữ rất đơn giản.

07:12.770 --> 07:21.410
Nó có một số triết lý thú vị hoặc chỉ là những suy nghĩ thú vị về cách áp dụng độ dốc gradient, những ưu điểm và

07:21.410 --> 07:28.070
nhược điểm là gì và làm thế nào để thực hiện mọi việc trong một số tình huống nhất định?

07:28.070 --> 07:32.000
Vì vậy, anh ấy có một số mẹo, thủ thuật và hack rất hay, rất dễ đọc.

07:32.000 --> 07:33.500
Vì vậy, hãy chắc chắn kiểm tra điều đó.

07:33.500 --> 07:36.900
Và một cái khác, đọc nặng hơn một chút.

07:36.920 --> 07:42.260
Đối với những người trong số các bạn đang theo học toán học, những người muốn tìm hiểu sâu hơn về toán học, tại

07:42.260 --> 07:44.420
sao độ dốc gradient lại đặc biệt như vậy?

07:45.230 --> 07:48.770
Các công thức đang điều khiển độ dốc là gì và nó được tính toán như thế nào, v.v.?

07:49.130 --> 07:51.440
Kiểm tra các bài báo hoặc thực sự cuốn sách.

07:51.530 --> 07:57.080
Đó là một cuốn sách trực tuyến miễn phí có tên Neural Networks and Deep Learning của Michael Nielsen cuốn sách năm 2015.

07:57.080 --> 07:59.510
Về cơ bản, tất cả đều trực tuyến.

07:59.510 --> 08:02.120
Bạn có thể tiếp tục và kiểm tra nó ở đó.

08:02.240 --> 08:05.780
Và một lần nữa, giới thiệu rất nhẹ nhàng về toán học.

08:05.780 --> 08:07.160
Nhưng sau đó đối với toán học.

08:07.160 --> 08:13.220
Nhưng toán học khá nặng khi bạn đọc qua bài báo.

08:13.430 --> 08:17.260
Nhưng đồng thời, nó khiến bạn rơi vào tâm trạng đó.

08:17.270 --> 08:22.610
Tôi nghĩ nó giống như một chương khởi động, nơi đầu tiên bạn khởi động với toán học và sau đó bạn nhảy vào chúng.

08:22.610 --> 08:27.170
Vì vậy, quan tâm đến toán học, sau đó đây là bài viết để đi đến đó và chúng ta đi.

08:27.170 --> 08:35.510
Vì vậy, đó là một cách tóm tắt sự khác biệt giữa gốc lớn và dốc nghiêng ngẫu nhiên và cách hoạt

08:35.510 --> 08:36.260
động.

08:36.260 --> 08:39.770
Và trên lưu ý đó, chúng ta sẽ kết thúc phần hướng dẫn ngày hôm nay.

08:39.770 --> 08:41.930
Tôi rất mong được gặp bạn trên chương trình tiếp theo.

08:41.930 --> 08:44.240
Và cho đến lúc đó, hãy tận hưởng việc học sâu.
