WEBVTT

00:00.500 --> 00:02.810
Xin chào và chào mừng bạn đến với hướng dẫn Python này.

00:02.960 --> 00:08.150
Được rồi, bây giờ trong chức năng tiếp theo mà chúng tôi sắp triển khai, chúng tôi sẽ đào tạo mạng

00:08.150 --> 00:11.230
nơ-ron sâu bên trong trí tuệ nhân tạo của chúng tôi.

00:11.240 --> 00:16.700
Vì vậy, về cơ bản, chúng ta sẽ thực hiện toàn bộ quá trình nhân giống chuyển tiếp và sau đó nhân giống ngược

00:16.700 --> 00:20.630
để chúng ta có được đầu ra của mình, chúng ta sẽ đạt được mục tiêu.

00:20.630 --> 00:24.290
Chúng tôi sẽ so sánh kết quả đầu ra với mục tiêu để tính toán lỗi cuối cùng.

00:24.290 --> 00:28.400
Sau đó, chúng tôi sẽ truyền lại lỗi cuối cùng này vào mạng nơ-ron.

00:28.400 --> 00:33.590
Và sử dụng descent gradient ngẫu nhiên, chúng tôi sẽ cập nhật các trọng số theo mức độ mà chúng đã góp phần làm

00:33.590 --> 00:34.700
cho ít lỗi hơn.

00:34.910 --> 00:36.290
Vì vậy, chúng ta hãy làm tất cả những điều này.

00:36.290 --> 00:41.360
Đối với những bạn tham gia khóa học học sâu, đây sẽ là thứ trẻ con, nhưng đối với những người khác, đừng lo

00:41.360 --> 00:43.580
lắng, tôi sẽ giải thích điều đó một lần nữa.

00:43.880 --> 00:47.240
Vì vậy, chúng tôi sẽ gọi chức năng mới này là học.

00:47.390 --> 00:51.350
Và hàm học tập này sẽ nhận một số đối số.

00:51.350 --> 00:57.260
Tất nhiên, bản thân đầu tiên sẽ tham chiếu đến đối tượng của lớp khác.

00:57.260 --> 01:08.780
Sau đó, chúng tôi sẽ lấy trạng thái lô của chúng tôi cho trạng thái hiện tại, sau đó là trạng thái tiếp theo của lô của chúng tôi, sau đó là phần

01:08.780 --> 01:14.810
thưởng hàng loạt của chúng tôi và cuối cùng là hành động hàng loạt của chúng tôi.

01:15.350 --> 01:16.790
Vậy tại sao chúng ta lại lấy cái này?

01:16.790 --> 01:19.700
Bạn có thể nhận ra bộ truyện là gì?

01:19.700 --> 01:25.430
Tất nhiên, đó là một bước chuyển tiếp, quá trình chuyển đổi của quá trình quyết định Markov là

01:25.430 --> 01:27.290
nền tảng của học sâu.

01:27.290 --> 01:30.350
Và tại sao tất cả chúng ta lại lấy chúng thành một số đợt?

01:30.350 --> 01:36.140
Đó là bởi vì, hãy nhớ rằng, chúng tôi không xem xét các chuyển đổi theo một loạt các trạng thái tiếp theo của trạng

01:36.140 --> 01:39.410
thái hiện tại hàng đầu, phần thưởng hiện tại và hành động hiện tại.

01:39.410 --> 01:43.940
Chúng tôi đã tạo một số lô mẫu ở đây nhờ chức năng mẫu.

01:43.940 --> 01:49.400
Và vì vậy, bây giờ các chuyển đổi của chúng ta đang ở dạng, đợt đầu tiên cho trạng thái, đợt thứ hai

01:49.400 --> 01:53.120
cho ngày tiếp theo, một đợt cho phần thưởng và một đợt cho hành động.

01:53.300 --> 01:58.880
Đó là hình thức của quá trình chuyển đổi của chúng tôi bây giờ và tất cả chúng đều được điều chỉnh tốt theo thời

01:58.880 --> 02:03.620
gian, nhờ vào sự ghép nối này mà chúng tôi đã thực hiện ở đây đối với chiều thứ nhất.

02:03.980 --> 02:10.130
Vì vậy, vấn đề là bây giờ chúng ta có quá trình chuyển đổi các đợt, một đợt cho mỗi bang, phần thưởng và hành động

02:10.130 --> 02:11.450
của các bang tiếp theo.

02:11.450 --> 02:17.150
Và chúng tôi làm tất cả những điều này bởi vì chúng tôi đang sử dụng thủ thuật phát lại trải nghiệm này để mạng nơ-ron sâu của chúng tôi có

02:17.150 --> 02:18.410
thể học được điều gì đó.

02:18.410 --> 02:24.110
Hãy nhớ rằng, nếu chúng ta chỉ có những chuyển đổi một mình, tốt, đó sẽ là một số học tập ngay lập tức.

02:24.110 --> 02:28.850
Hoặc nếu bạn muốn học một số trí nhớ rất ngắn, và do đó mô hình sẽ không học được gì.

02:28.850 --> 02:35.540
Vì vậy, chúng ta phải lấy các lô này từ bộ nhớ trở thành quá trình chuyển đổi của chúng ta, và sau đó cuối cùng chúng ta sẽ nhận được

02:35.540 --> 02:39.320
các kết quả đầu ra khác nhau cho mỗi trạng thái của trạng thái lô đầu vào.

02:39.320 --> 02:44.810
Và chúng tôi sẽ làm điều này cho trạng thái lô và cho trạng thái tiếp theo bởi vì chúng tôi sẽ cần cả hai để tính

02:44.810 --> 02:45.470
toán khoản lỗ.

02:45.470 --> 02:51.080
Tôi sẽ sớm nhắc lại phương trình cân bằng là trọng tâm của thuật toán học sâu.

02:51.680 --> 02:56.930
Vì vậy, bây giờ chúng ta hãy đi vào hàm và đầu tiên chúng ta hãy lấy kết quả đầu ra của trạng thái lô.

02:56.930 --> 02:59.600
Vì vậy, tôi sẽ gọi đây là đầu ra biến đầu tiên.

03:00.480 --> 03:04.980
Và sau đó, tất nhiên, chúng ta sẽ lấy mô hình bản thân của chúng ta.

03:05.190 --> 03:14.230
Vì vậy, mô hình tự học bởi vì chúng tôi muốn nhận được đầu ra mô hình của chúng tôi về các trạng thái đầu vào của trạng thái lô.

03:14.250 --> 03:22.200
Và vì mô hình của chúng tôi thực sự đang mong đợi một loạt các trạng thái đầu vào, tốt, chúng tôi hoàn toàn có thể nhập trạng thái lô

03:22.440 --> 03:25.080
ngay bây giờ cho đầu vào của mô hình.

03:25.110 --> 03:31.470
Đó chính xác là cách chúng tôi khởi tạo các trạng thái đi vào mạng bằng máy căng ngọn đuốc với

03:31.470 --> 03:33.390
thứ nguyên giả này cho lô.

03:33.780 --> 03:34.900
Vì vậy, đó là hoàn hảo.

03:34.920 --> 03:40.550
Bây giờ chúng ta có được kết quả đầu ra của mô hình, nhưng sau đó có một thủ thuật kỹ thuật khác.

03:40.560 --> 03:47.730
Nếu chúng ta chỉ tự thực hiện rằng lô mô hình hoạt động tốt, chúng ta sẽ nhận được kết quả đầu ra của tất cả các hành động có thể, bạn

03:47.730 --> 03:49.140
biết đấy, không một và hai.

03:49.260 --> 03:50.700
Nhưng đó không phải là điều chúng tôi muốn.

03:50.730 --> 03:56.850
Chúng tôi chỉ quan tâm đến các hành động đã được chọn, các hành động đã được quyết định bởi mạng

03:56.850 --> 03:58.600
để chơi tại mỗi thời điểm.

03:58.620 --> 04:03.060
Và vì vậy, để có được những hành động này, chúng tôi quan tâm đến đó là những hành động được thực hiện tốt.

04:03.060 --> 04:11.640
Chúng ta phải sử dụng hàm tập hợp này trong đó chúng ta nhập một hàm vì chúng ta chỉ muốn hành động đã được chọn.

04:12.000 --> 04:20.880
Và sau đó chúng tôi thêm hành động hàng loạt với hành động này, một và hành động hàng loạt mà chúng tôi sẽ thu thập mỗi lần hành động tốt nhất để

04:20.880 --> 04:24.390
chơi cho mỗi trạng thái đầu vào của trạng thái hàng loạt.

04:24.540 --> 04:30.180
Chúng tôi chỉ muốn hành động được chơi, hành động được chọn và chúng tôi nhận được điều này với hành động tập hợp

04:30.180 --> 04:31.650
một và hàng loạt này.

04:31.920 --> 04:33.150
Nhưng sau đó hãy cẩn thận.

04:33.180 --> 04:39.540
Trạng thái hàng loạt ở đây có thứ nguyên giả này tương ứng với hàng loạt và hành động hàng loạt không có nó trở

04:39.540 --> 04:41.040
lại, trạng thái có nó?

04:41.040 --> 04:46.230
Bởi vì chúng tôi sử dụng các mục ở đây, nhưng chúng tôi chưa sử dụng bất kỳ mục nào trên bóp cho các hành động.

04:46.230 --> 04:52.740
Vì vậy, chúng ta phải thêm nó vào đây để hành động hàng loạt có cùng thứ nguyên chính xác với trạng thái hàng loạt.

04:52.890 --> 04:57.000
Vì vậy, chúng tôi sẽ thêm một dấu chấm vào bóp số 0.

04:57.730 --> 04:58.780
Ngay tại đây.

04:58.900 --> 05:05.620
Và thực ra, đây không phải là không, mà là một vì số không tương ứng với chiều đức tin của trạng thái và

05:05.620 --> 05:09.050
một sẽ tương ứng với chiều giả của các hành động.

05:09.070 --> 05:16.000
Và cuối cùng, việc cuối cùng chúng ta cần làm ở đây là chúng ta cần diệt lô hàng giả này bằng một cái bóp.

05:16.300 --> 05:17.910
Và tại sao chúng ta cần làm điều đó?

05:17.920 --> 05:19.990
Bởi vì bây giờ chúng ta đang ở ngoài mạng nơ-ron.

05:19.990 --> 05:22.840
Chúng tôi có kết quả đầu ra của mình, nhưng chúng tôi không muốn chúng xuất hiện trong một loạt sản phẩm.

05:22.840 --> 05:27.460
Chúng tôi muốn chúng ở dạng tensor đơn giản, vector đơn giản, vector đầu ra.

05:27.610 --> 05:32.800
Lô chỉ là khi chúng ta làm việc trong mạng nơ-ron, bởi vì mạng nơ-ron đang mong đợi định dạng

05:32.800 --> 05:34.750
của các cảm biến thành một lô.

05:34.780 --> 05:40.420
Nhưng bây giờ chúng tôi có kết quả đầu ra của mình và trong phương trình cân bằng tiếp theo của học sâu, chúng tôi sẽ không cần

05:40.420 --> 05:41.290
chúng thành một loạt.

05:41.290 --> 05:43.090
Vì vậy, tôi đang giết hàng loạt ở đây.

05:43.090 --> 05:47.920
Tôi đang giết thứ nguyên giả để lấy lại dạng đầu ra đơn giản của chúng ta.

05:47.920 --> 05:50.710
Vì vậy, tôi chỉ thêm ở đây, chấm và sau đó bóp.

05:51.320 --> 05:56.000
Và sau đó vì tôi muốn giết thứ nguyên giả tương ứng với loạt hành động.

05:56.000 --> 06:01.130
Chà, vì thứ nguyên giả này có chỉ mục một, tôi sẽ thêm một thứ nguyên ở đây.

06:01.370 --> 06:01.940
Được rồi.

06:01.940 --> 06:03.500
Và bây giờ, chúng ta bắt đầu.

06:03.500 --> 06:05.810
Chúng tôi có đầu ra của chúng tôi, OC.

06:05.810 --> 06:06.860
Chúng tôi có một cảnh báo nhỏ.

06:06.860 --> 06:07.670
Nó là gì?

06:07.700 --> 06:10.940
Đầu ra biến cục bộ được chỉ định nhưng không bao giờ được sử dụng.

06:10.940 --> 06:11.750
Không sao đâu.

06:11.750 --> 06:13.220
Chúng tôi sẽ sử dụng nó rất nhanh chóng.

06:13.670 --> 06:15.410
Vì vậy, đó là kết quả đầu ra của chúng tôi.

06:15.410 --> 06:18.560
Và bây giờ chúng tôi muốn có được tiếp theo của chúng tôi.

06:19.360 --> 06:20.260
Kết quả đầu ra.

06:20.260 --> 06:23.560
Vì vậy, bây giờ bạn có thể đang nghĩ, tại sao chúng ta cần đầu ra tiếp theo?

06:23.590 --> 06:28.840
Để hiểu điều này, chúng ta cần quay lại thuật toán học sâu, ở ngay đây.

06:28.840 --> 06:31.600
Đó là một phần của sổ tay logic.

06:31.600 --> 06:33.730
Vì vậy, đó là toàn bộ quá trình học sâu.

06:33.730 --> 06:38.470
Khi bắt đầu, chúng tôi đang khởi tạo tất cả các giá trị và sau đó tại mỗi thời điểm.

06:38.470 --> 06:40.090
T Chà, chúng ta bắt đầu.

06:40.090 --> 06:42.190
Chúng tôi chọn hành động với giá thầu tối đa mềm.

06:42.190 --> 06:44.560
Đó là những gì chúng tôi đã làm với chức năng Chọn Hành động.

06:44.590 --> 06:50.890
Sau đó, chúng tôi nối quá trình chuyển đổi và sau đó như bạn có thể thấy, chúng tôi nhận được dự đoán, chúng tôi nhận được mục tiêu và chúng

06:50.890 --> 06:51.940
tôi tính toán khoản lỗ.

06:51.940 --> 06:54.130
Vậy tại sao chúng ta cũng cần các đầu ra tiếp theo?

06:54.130 --> 06:55.780
Đó là vì mục tiêu.

06:55.990 --> 07:02.680
Mục tiêu bằng gamma lần, kết quả đầu ra tiếp theo cộng với phần thưởng và chúng tôi sẽ tính mục tiêu

07:02.680 --> 07:03.670
ngay sau đó.

07:03.670 --> 07:07.360
Nhưng vì chúng ta cần đầu ra tiếp theo cho mục tiêu, hãy tính toán điều này trước.

07:07.540 --> 07:10.780
Vì vậy, một lần nữa, để có được đầu ra tiếp theo, điều đó rất đơn giản.

07:10.780 --> 07:17.710
Đầu ra tiếp theo sẽ là kết quả của mạng nơ-ron của chúng ta khi lô ngày tiếp theo nhập nó

07:17.710 --> 07:18.790
làm đầu vào.

07:18.910 --> 07:26.830
Rất đơn giản, chúng tôi lấy mô hình của chúng tôi là mạng nơ-ron của chúng tôi, và lần này đầu vào

07:26.830 --> 07:30.640
của mạng nơ-ron sẽ là đợt vào ngày tiếp theo.

07:31.540 --> 07:32.940
Các lô ngày sau.

07:32.950 --> 07:39.580
Nhưng bây giờ, hãy nhớ rằng, nếu chúng ta quay lại thuật toán học sâu, bạn có thể thấy rằng đầu ra tiếp

07:39.580 --> 07:45.430
theo là giá trị hàng đợi tối đa cho tập tiếp theo đối với tất cả các hành động.

07:45.460 --> 07:49.920
Vì vậy, ngay bây giờ, để có đầu ra tiếp theo, chúng ta cần lấy giá trị Q tối đa.

07:49.930 --> 07:57.910
Và do đó, tôi sẽ thực hiện ở đây một phép tách, bạn biết đấy, để tách tất cả các đầu ra của mô hình bởi vì chúng ta có một số trạng thái

07:57.910 --> 08:04.210
trong lô này là các trạng thái tiếp theo, đó là lô của tất cả các trạng thái tiếp theo trong tất cả các chuyển đổi

08:04.210 --> 08:07.510
được thực hiện từ mẫu ngẫu nhiên của bộ nhớ của chúng tôi.

08:07.600 --> 08:14.440
Vì vậy, tôi đang tách tất cả chúng bằng cách sử dụng hàm tách và sau đó tôi đang lấy giá trị tối đa của tất cả các giá trị hàng

08:14.440 --> 08:15.100
đợi này.

08:15.100 --> 08:20.350
Và vì chúng tôi đang sử dụng tối đa các giá trị Q này đối với hành động, nên chúng tôi phải

08:20.350 --> 08:22.810
chỉ rõ rằng đó là đối với hành động.

08:22.810 --> 08:29.320
Và vì hành động được đại diện bởi chỉ mục một, tốt, một lần nữa, chúng ta phải đặt chỉ mục ở đây và sau đó chúng

08:29.650 --> 08:36.010
ta phải xác định rằng chúng ta đang lấy các giá trị Q của s t cộng với một giá trị là trạng thái tiếp theo.

08:36.010 --> 08:42.250
Và trạng thái tiếp theo được biểu diễn bằng chỉ số không vì chỉ số không tương ứng với trạng thái.

08:42.250 --> 08:47.140
Và do đó ở đây chúng ta cần thêm dấu ngoặc với chỉ số bằng không.

08:47.590 --> 08:54.310
Bằng cách đó, chúng ta nhận được tối đa giá trị Q của trạng thái tiếp theo được biểu thị bằng chỉ số 0 theo tất

08:54.310 --> 08:57.430
cả các hành động được biểu thị bằng chỉ số một.

08:58.000 --> 08:59.080
Và bây giờ hoàn hảo.

08:59.080 --> 09:01.400
Chúng tôi nhận được đầu ra tiếp theo của chúng tôi.

09:01.420 --> 09:02.770
Đây là một trạng thái mới.

09:02.770 --> 09:04.120
Đó là nơi chúng tôi đã cảnh báo.

09:04.120 --> 09:04.930
Nhưng điều đó không sao cả.

09:04.930 --> 09:07.690
Chúng tôi sẽ sử dụng nó ngay bây giờ để tính toán mục tiêu.

09:08.170 --> 09:12.160
Và nói về mục tiêu, đó là bước tiếp theo của chức năng học tập này.

09:12.310 --> 09:13.060
Vậy là xong.

09:13.090 --> 09:15.400
Mục tiêu bằng.

09:15.430 --> 09:18.140
Bây giờ chúng ta hãy quay lại sổ tay AI của chúng ta.

09:18.160 --> 09:22.090
Mục tiêu bằng phần thưởng cộng với số lần gamma.

09:22.090 --> 09:27.160
Đầu ra tiếp theo là giá trị Q tối đa của ngày tiếp theo theo các hành động.

09:27.430 --> 09:28.030
Vậy là xong.

09:28.030 --> 09:29.080
Hãy tính toán điều đó.

09:29.080 --> 09:36.730
Vì vậy, nó bằng với self, gamma đó và self, gamma đó đã được khởi tạo ở đây nó được giới thiệu.

09:36.730 --> 09:46.960
Vì vậy, đó là một biến GQ của chúng tôi và đối tượng tự mà gamma nhân với sản lượng tiếp theo như chúng tôi vừa nói cộng với phần thưởng là phần

09:47.110 --> 09:53.170
thưởng hàng loạt mà chúng tôi đang làm việc với các lô ở đây cộng với hàng loạt.

09:54.570 --> 09:55.290
Giải thưởng.

09:55.620 --> 09:59.190
Và đó là mục tiêu trong một mẫu bộ nhớ.

09:59.580 --> 10:03.360
Gamma nhân với các kết quả đầu ra tiếp theo, cộng với phần thưởng.

10:03.720 --> 10:04.980
Được rồi, hoàn hảo.

10:04.980 --> 10:06.890
Vì vậy, bây giờ chúng tôi có kết quả đầu ra của mình.

10:06.900 --> 10:08.670
Chúng tôi cũng có mục tiêu của mình.

10:08.670 --> 10:14.240
Và do đó, chúng ta có thể tính toán khoản lỗ, khoản lỗ đại diện cho sai số của dự đoán.

10:14.250 --> 10:15.690
Vì vậy, chúng ta hãy gọi đây là mất mát.

10:15.720 --> 10:23.850
Tất nhiên, TD mất TD là sự khác biệt theo thời gian lại là trọng tâm của quá trình học CU và tổn thất

10:24.270 --> 10:30.290
TD này sẽ bằng với sự mất mát của Huber giúp cải thiện nhiều việc học Q.

10:30.300 --> 10:34.350
Đó là chức năng cuối cùng chúng tôi sẽ chọn cho trí tuệ nhân tạo của mình.

10:34.560 --> 10:39.000
Đối với những bạn đến từ khóa học học sâu, đó thực sự là mất mát mà tôi khuyên bạn nên áp

10:39.000 --> 10:40.620
dụng nếu bạn muốn triển khai học sâu.

10:40.620 --> 10:43.260
Và vậy chúng ta sẽ làm thế nào để có được khoản lỗ Huber này?

10:43.260 --> 10:49.110
À, một lần nữa, chúng ta sẽ lấy một hàm từ mô-đun chức năng được đại diện bởi F.

10:49.710 --> 10:57.660
Và do đó ở đây tôi sẽ sử dụng mô-đun chức năng F

10:57.660 --> 11:05.850
dot của chúng tôi và Hubble có thể có được nhờ chức năng

11:05.850 --> 11:07.710
trơn tru.

11:07.740 --> 11:10.650
Nó thực sự cải thiện việc học Q, nhưng đây là một chức năng.

11:10.650 --> 11:17.010
Vì vậy, tôi đang thêm một số dấu ngoặc đơn và bây giờ không có gì đơn giản hơn đối số mà chúng ta cần để nhập

11:17.250 --> 11:19.200
các dự đoán và mục tiêu của mình.

11:19.200 --> 11:24.000
Vì vậy, các dự đoán tất nhiên là kết quả đầu ra của chúng ta vì đó là đầu ra của mạng nơ-ron.

11:24.000 --> 11:27.480
Bạn biết đấy, đầu ra của mạng nơ-ron là những gì mạng nơ-ron dự đoán.

11:27.480 --> 11:28.950
Vì vậy, đó là dự đoán.

11:28.950 --> 11:31.860
Vì vậy, đối số đầu tiên ở đây là kết quả đầu ra.

11:32.250 --> 11:35.730
Và sau đó, đối số thứ hai, tất nhiên, là mục tiêu.

11:35.910 --> 11:43.530
Thứ mà chúng tôi đang cố gắng đạt được và nó đã được tính toán hoàn hảo, chúng tôi có thể nhập trực tiếp mục tiêu hoàn hảo vào và

11:43.530 --> 11:45.180
bây giờ chúng tôi thua lỗ.

11:45.210 --> 11:47.520
Chỉ cần quên một chút t ở đây.

11:48.060 --> 11:48.690
Chúng ta bắt đầu.

11:48.690 --> 11:50.340
Bây giờ cảnh báo sẽ biến mất.

11:50.670 --> 11:52.020
Vâng, hoàn hảo.

11:52.020 --> 11:57.900
Và bây giờ chúng ta có lỗi cuối cùng, chúng ta có thể truyền lại lỗi này vào mạng để cập nhật

11:57.900 --> 12:00.270
các trọng số với gốc gradient ngẫu nhiên.

12:00.270 --> 12:03.150
Và đó chính xác là những gì chúng ta sẽ làm trong bước tiếp theo.

12:03.240 --> 12:09.600
Vì vậy, tất nhiên, bây giờ những gì chúng tôi phải làm, như bạn có thể đoán, là sử dụng trình tối ưu hóa của chúng tôi.

12:10.050 --> 12:17.190
Trình tối ưu hóa của chúng tôi, một lần nữa, chúng tôi đã giới thiệu ở đây, chúng tôi đã khởi tạo nó và đó là trình tối ưu hóa nguyên tử,

12:17.190 --> 12:23.580
thực sự là một đối tượng của lớp nguyên tử và nó đã được trang bị với các tham số của mô hình của chúng tôi và chúng

12:23.580 --> 12:27.570
tôi đã chọn tốc độ học là 0. 1 phần trăm.

12:27.570 --> 12:34.830
Quá hoàn hảo, trình tối ưu hóa của chúng tôi đã sẵn sàng, nhưng bây giờ chúng tôi cần áp dụng nó cho lỗi cuối cùng để thực hiện giảm độ

12:34.830 --> 12:36.960
dốc ngẫu nhiên và trọng số dữ liệu.

12:36.960 --> 12:43.500
Vì vậy, khi làm việc với PyTorch, điều đầu tiên chúng ta cần làm là khởi tạo lại nó ở mỗi lần lặp lại của vòng

12:43.500 --> 12:43.980
lặp.

12:43.980 --> 12:50.940
Chúng ta phải khởi tạo lại trình tối ưu hóa từ lần lặp này sang lần lặp khác trong vòng lặp của đường xuống dốc ngẫu

12:50.940 --> 12:54.780
nhiên và khởi tạo lại nó ở mỗi khoảng thời gian của vòng lặp.

12:54.930 --> 12:59.700
Chúng ta sẽ sử dụng phương pháp sau đây là lưới không.

12:59.730 --> 13:05.010
Ở đây chúng ta bắt đầu, lưới số không sẽ khởi tạo lại trình tối ưu hóa của bạn ở mỗi lần lặp lại của vòng lặp.

13:05.010 --> 13:06.990
Sau đó, chúng ta đừng quên dấu ngoặc đơn.

13:07.380 --> 13:08.040
Hoàn hảo.

13:08.040 --> 13:14.700
Và bây giờ nó đã được khởi tạo lại, tốt, chúng ta có thể thực hiện truyền ngược với trình tối ưu hóa của mình.

13:15.000 --> 13:16.290
Và làm thế nào để chúng tôi làm điều đó?

13:16.290 --> 13:23.100
Chà, chúng ta lấy mất TD của mình và chúng ta sẽ truyền ngược nó trở lại mạng và để truyền

13:23.100 --> 13:27.720
ngược nó vào mạng, chúng ta cần sử dụng chức năng quay ngược.

13:27.960 --> 13:35.220
Và bên trong hàm quay ngược này, tôi khuyên bạn nên nhập, giữ lại, gạch dưới các biến và đặt

13:35.220 --> 13:36.510
nó bằng true.

13:37.080 --> 13:40.950
Tôi khuyên bạn nên làm điều này vì điều này sẽ cải thiện sự lan truyền ngược lại.

13:40.980 --> 13:46.350
Việc sử dụng các biến trả về bằng true là để giải phóng một số bộ nhớ và chúng ta cần giải

13:46.350 --> 13:48.900
phóng bộ nhớ vì chúng ta sẽ mất vài lần.

13:48.900 --> 13:52.650
Vì vậy, điều đó chắc chắn sẽ cải thiện hiệu suất đào tạo.

13:52.650 --> 13:58.890
Và cuối cùng, bước cuối cùng của chức năng học tập này là cập nhật trọng số theo sự lan truyền

13:58.890 --> 14:02.550
ngược, tức là theo trọng số đã góp phần gây ra lỗi.

14:02.550 --> 14:11.160
Và để làm điều này, chúng tôi sử dụng lại trình tối ưu hóa của chúng tôi, trình tối ưu hóa này đã được khởi tạo và khởi tạo lại

14:11.160 --> 14:19.110
và chúng tôi sử dụng hàm bước và đơn giản với dòng mã này bằng cách sử dụng hàm bước, điều này sẽ cập nhật trọng số.

14:19.260 --> 14:21.630
Đó là dòng mã cập nhật trọng lượng.

14:21.660 --> 14:28.710
Dòng mã trở lại này truyền lỗi vào mạng nơ-ron và dòng mã này sử dụng trình tối ưu hóa để cập nhật

14:28.710 --> 14:29.940
các trọng số.

14:30.210 --> 14:31.290
Và chúng ta bắt đầu.

14:31.290 --> 14:33.990
Chúng tôi có mạng nơ-ron học tập.

14:35.030 --> 14:35.360
Được rồi.

14:35.360 --> 14:36.650
Vì vậy, xin chúc mừng.

14:36.650 --> 14:42.200
Đây có lẽ là phần kỹ thuật và khó nhất của mô hình học sâu này.

14:42.200 --> 14:47.750
Tôi biết PyTorch đôi khi có thể phức tạp với những thứ này và bóp và bóp, nhưng cuối cùng tôi

14:47.750 --> 14:54.110
hứa bạn sẽ có được một mạng nơ-ron rất chức năng và do đó là mô hình học sâu và cuối cùng là một

14:54.110 --> 14:55.850
trí tuệ nhân tạo tuyệt vời.

14:56.360 --> 15:02.300
Vì vậy, bây giờ chúng ta hãy chuyển sang bước tiếp theo của mô hình học sâu của chúng tôi, đó sẽ là

15:02.300 --> 15:06.950
chức năng cập nhật rõ ràng sẽ cập nhật khi AI phát hiện ra trạng thái mới.

15:06.950 --> 15:12.140
Vì vậy, bạn biết đấy, nó sẽ phát hiện ra trạng thái mới và sau đó nó sẽ nhận được phần thưởng tùy thuộc

15:12.140 --> 15:14.960
vào hành động mà nó vừa chơi và trạng thái mới này.

15:14.960 --> 15:19.460
Vì vậy, chúng tôi sẽ giải quyết vấn đề này với chức năng cập nhật và chúng tôi sẽ thực hiện điều này trong hướng dẫn tiếp theo.

15:19.460 --> 15:20.810
Cho đến lúc đó, hãy tận hưởng.

15:20.810 --> 15:21.290
TÔI.
