WEBVTT

00:00.210 --> 00:06.870
Xin chào và chào mừng bạn đến với mô-đun thứ ba của diễn ngôn, Đạo luật không đồng bộ A3 C đối với tác nhân phê bình.

00:06.870 --> 00:11.760
Và vì vậy, bây giờ tôi thực sự có thể nói chào mừng bạn đến với công nghệ máy học hiện đại.

00:11.910 --> 00:16.500
Vào thời điểm đó, tôi đang nói điều này vì có thể một số bạn sẽ tham gia khóa học sau một hoặc hai năm.

00:16.500 --> 00:23.070
Nhưng vào thời điểm tôi đang nói điều này vào năm 2017, trong khi bạn chuẩn bị làm việc trên một trong những mô hình mạnh mẽ

00:23.070 --> 00:28.530
nhất trong trí tuệ nhân tạo, nhưng còn nhiều điều khác không phải là điều đặc biệt duy nhất về mô-đun này.

00:28.560 --> 00:34.620
Không chỉ chúng tôi sắp làm việc với mô hình AI mạnh mẽ nhất, mà chúng tôi sẽ triển khai phiên bản mạnh

00:34.620 --> 00:42.180
mẽ nhất của thuật toán này, phiên bản được tối ưu hóa nhất, phiên bản được triển khai của mô hình a3c, bởi vì bạn có thể tưởng tượng

00:42.180 --> 00:47.550
rằng có trái tim của ba thuật toán C, nhưng sau đó có rất nhiều công cụ mà chúng tôi có

00:47.550 --> 00:50.730
thể sử dụng để tối ưu hóa toàn bộ mô hình.

00:50.730 --> 00:55.650
Và vì vậy, bạn không chỉ nắm được trung tâm của thuật toán mà còn phải triển khai tất cả các công

00:55.650 --> 00:59.340
cụ này xung quanh nó để làm cho mô hình trở nên siêu mạnh mẽ.

00:59.340 --> 01:01.380
Và tại sao tôi muốn làm điều đó?

01:01.380 --> 01:02.900
Đó là vì hai lý do.

01:02.910 --> 01:06.090
Lý do đầu tiên là chúng tôi sắp kết thúc khóa học này.

01:06.090 --> 01:11.550
Khóa học này là khóa học cấp cao nhất giữa ba khóa học ML, DL và AI và Z.

01:11.550 --> 01:14.160
Vì vậy, bây giờ tôi nghĩ bạn đã sẵn sàng để đưa nó lên cấp độ tiếp theo.

01:14.160 --> 01:18.900
Và lý do thứ hai là việc giải quyết breakout thực sự rất khó.

01:18.930 --> 01:24.210
Hãy nhớ trong video quảng cáo, chúng tôi muốn đặt Breakout làm mô-đun đầu tiên vì chúng tôi nghĩ rằng đây sẽ là thử

01:24.210 --> 01:26.490
thách dễ dàng nhất, nhưng hoàn toàn không phải vậy.

01:26.490 --> 01:28.680
Đó thực sự là thử thách khó khăn nhất.

01:28.710 --> 01:35.460
Một cách dễ dàng để giải thích điều này là tốt, trong thời kỳ diệt vong, những con quái vật rất lớn và do đó dễ bị phát hiện hơn

01:35.460 --> 01:37.560
và do đó dễ dàng giết hoặc tránh hơn.

01:37.560 --> 01:44.100
Nhưng đột phá là chúng ta có quả bóng nhỏ này mà AI cũng phải phát hiện, vì AI vẫn sẽ có mắt

01:44.100 --> 01:44.850
ở đây.

01:44.850 --> 01:47.640
Chúng tôi vẫn sẽ thực hiện học tập củng cố sâu.

01:47.640 --> 01:53.670
Vì vậy, nó thực sự siêu thách thức và đó là lý do tại sao chúng tôi không thực sự có lựa chọn để triển

01:53.670 --> 01:55.740
khai phiên bản mạnh nhất của ba C.

01:55.770 --> 01:58.980
Bây giờ, tại sao tôi lại nói đây là phiên bản mạnh mẽ nhất?

01:58.980 --> 02:00.240
Đó là vì một lý do cụ thể.

02:00.240 --> 02:05.670
Nó không giống như tôi đang nói rằng tôi sẽ triển khai phiên bản mạnh mẽ nhất của ba chữ C bây giờ nó không phải

02:05.670 --> 02:06.330
là điều này.

02:06.330 --> 02:11.490
Lý do tôi nói điều này là phiên bản chúng tôi sắp triển khai và đây là điều

02:11.490 --> 02:18.030
rất đặc biệt mà chúng tôi sẽ thực hiện, thực sự là phiên bản C đã được thực hiện bởi ai đó nhưng được sửa

02:18.030 --> 02:24.300
chữa bởi một trong những người có ảnh hưởng nhất trong học máy ngày nay, người tình cờ là người tạo ra PyTorch.

02:24.600 --> 02:26.790
Tên anh ta là Adam Packer.

02:27.420 --> 02:33.120
Vì vậy, bây giờ những gì chúng ta sẽ làm, chúng ta sẽ truy cập GitHub trên trang chính

02:33.120 --> 02:39.660
của PyTorch, và nếu bạn cuộn xuống, xuống cuối, xuống dưới cùng, bạn sẽ thấy nhóm, nhóm của PyTorch người sáng tạo và

02:39.660 --> 02:40.560
người đóng góp.

02:40.560 --> 02:45.390
Và bạn có thể thấy ở đây rằng PyTorch hiện đang được duy trì bởi Adam Pascal.

02:45.420 --> 02:51.260
Đó là người mà chúng ta thực sự nên biết ơn vì có rất ít phiên bản của bộ ba

02:51.270 --> 02:53.040
khóa hoạt động tốt cho Breakout.

02:53.040 --> 02:58.020
Và anh ấy đã sửa một trong những mã cho RC để làm cho breakout hoạt động hoàn hảo.

02:58.170 --> 03:03.450
Vì vậy, Adam Pascal không chỉ duy trì PyTorch mà còn là một trong những người sáng tạo ra Pytorch.

03:03.630 --> 03:07.980
Và như tôi đã nói hôm nay, anh ấy nằm trong top 10 người có ảnh hưởng nhất trong lĩnh vực máy học.

03:07.980 --> 03:13.440
Vì vậy, chúng tôi có thể yên tâm rằng phiên bản mà chúng tôi sắp triển khai có lẽ là phiên bản mạnh nhất trong ba

03:13.440 --> 03:14.670
phiên bản C hiện nay.

03:14.970 --> 03:17.490
Và vì vậy thực hiện này là gì?

03:17.490 --> 03:22.900
Chà, ban đầu nó đến từ một nhà phát triển tên là Ilia Stoichkov.

03:22.920 --> 03:29.310
Và như bạn có thể thấy, anh ấy đã triển khai PyTorch cho a3c, vốn ban đầu không hoạt động tốt cho

03:29.310 --> 03:32.820
breakout, nhưng sau đó ai đó đã thực hiện yêu cầu kéo.

03:32.820 --> 03:38.670
Nếu chúng ta đi đến pull request ở đây, chúng ta có thể thấy rõ ràng rằng ở đó, chúng ta có cái này, một giải

03:38.670 --> 03:40.950
pháp rõ ràng hơn cho vấn đề tốt nghiệp.

03:40.950 --> 03:43.560
Và đoán xem yêu cầu hồ bơi này được thực hiện từ ai?

03:43.770 --> 03:47.220
Nó được tạo ra từ Adam Pascal, người tạo ra PyTorch.

03:47.220 --> 03:53.850
Và điều đó đã giải quyết được vấn đề khiến HRC hoạt động rất tốt trên Breakout mà không phải chờ ngày này qua

03:53.850 --> 03:54.480
ngày khác.

03:54.930 --> 04:01.470
Và do đó, nếu chúng ta quay lại quá trình triển khai này, chúng ta có thể thấy bốn người đóng góp cho việc triển khai

04:01.470 --> 04:04.410
mạnh mẽ nhất này và đây là những người đóng góp.

04:04.410 --> 04:06.450
Vì vậy, cảm ơn bạn rất nhiều cho tất cả họ.

04:06.450 --> 04:12.570
Và chúng ta có thể nói lời cảm ơn to lớn và đặc biệt tới Adam Paschke vì đã khắc phục sự cố chia sẻ gradient.

04:12.570 --> 04:18.030
Anh ấy bắt đầu bằng cách thực hiện một fork, là một nhánh con của mã, và sau đó anh ấy thực hiện một

04:18.030 --> 04:25.080
yêu cầu kéo tới nhà phát triển để khắc phục sự cố này trong mã, đây là một vấn đề chia sẻ tuyệt vời và đó là cách anh ấy

04:25.080 --> 04:30.210
trở thành một người đóng góp lớn. của việc triển khai này, làm cho toàn bộ hoạt động hoàn toàn tốt.

04:30.450 --> 04:34.290
Và tin tôi đi, tôi đã thử nghiệm rất nhiều trên mô hình ba C.

04:34.350 --> 04:36.240
Tôi thực sự đã thực hiện năm mô hình.

04:36.240 --> 04:40.920
Tôi thậm chí còn tuyệt vọng rằng nó không hoạt động tốt, vì vậy tôi đã thực hiện đột phá của riêng mình trên đường cong để

04:40.920 --> 04:44.070
có một quả bóng lớn hơn và do đó, xử lý trước hình ảnh dễ dàng hơn.

04:44.070 --> 04:51.180
Sau đó, tôi quay lại mở API và tự triển khai HRC, nhưng điều đó mất nhiều thời gian để chạy và đào tạo

04:51.180 --> 04:53.220
trên một máy tính khá mạnh.

04:53.220 --> 04:56.760
Vì vậy, tôi muốn tìm một cách tốt hơn và đó là cách của nó.

04:56.760 --> 04:59.820
Sự triển khai rất mạnh mẽ này của mô hình a3c.

05:00.130 --> 05:04.090
Trong đó một trong những người đóng góp chính là người tạo ra PyTorch.

05:04.300 --> 05:10.900
Vì vậy, những gì chúng ta sẽ làm trong mô-đun này, tôi nghĩ bạn đã sẵn sàng cho điều đó, là triển khai

05:10.900 --> 05:13.800
mã cấp cao nhất này để triển khai RC.

05:13.810 --> 05:19.660
Vì vậy, về cơ bản chúng tôi sẽ triển khai lại tất cả các tệp này và chúng tôi chủ yếu sẽ nhấn mạnh vào

05:19.660 --> 05:24.410
các tệp có liên quan trực tiếp đến RC cho tất cả các phần liên quan trực tiếp đến RC.

05:24.430 --> 05:27.670
Chúng tôi sẽ triển khai từng dòng mã cho những người khác.

05:27.670 --> 05:29.220
Tôi sẽ chỉ giải thích mã.

05:29.230 --> 05:33.460
Vì vậy, chúng ta sẽ có thể giải quyết vấn đề này mà không thấy nó quá áp đảo.

05:33.580 --> 05:34.560
Vậy là xong.

05:34.570 --> 05:36.040
Một mô-đun khá đặc biệt.

05:36.040 --> 05:41.650
Chúng tôi không chỉ làm việc trên một mô hình hiện đại của AI, mà còn tại thời điểm tôi đang phát biểu, tôi

05:41.650 --> 05:45.550
rất tự tin rằng chúng tôi đang triển khai phiên bản RC mạnh mẽ nhất.

05:45.820 --> 05:46.890
Vì vậy, chúng ta hãy làm điều đó.

05:46.900 --> 05:50.230
Hãy quay lại Python và bắt đầu tất cả những điều này.

05:50.500 --> 05:55.150
Trước khi bắt đầu, chúng ta sẽ làm điều đơn giản nhất mà chúng ta sẽ làm trong mô-đun này, thiết

05:55.150 --> 05:56.770
lập thư mục thư mục làm việc.

05:56.860 --> 05:59.580
Vì vậy, chúng ta hãy đi đến thư mục mẫu A-Z của chúng tôi.

05:59.590 --> 06:03.700
Mô-đun ba, hãy tìm ra mô-đun thách thức nhất và chúng ta bắt đầu.

06:03.700 --> 06:05.050
Đó là tất cả các tệp của chúng tôi.

06:05.050 --> 06:11.500
Vì vậy, hãy xem những cái nào liên quan trực tiếp đến a3c và vì vậy hãy xem cái nào chúng tôi sẽ triển khai từng

06:11.500 --> 06:14.200
dòng một và tập trung sức lực của chúng tôi.

06:14.590 --> 06:16.270
Vì vậy, thực tế có hai tệp.

06:16.270 --> 06:19.390
Cái đầu tiên được mô hình hóa tại PI, chính là cái này.

06:19.390 --> 06:22.840
Vì vậy, chúng tôi sẽ thực hiện lại từng dòng một vì đó là điều quan trọng nhất.

06:22.840 --> 06:25.330
Đó là nơi chúng tôi tạo ra ba bộ não quan trọng.

06:25.330 --> 06:30.550
Và điều quan trọng nhất cần hiểu ở đây là chúng ta sẽ có một mô hình được chia sẻ sẽ

06:30.550 --> 06:34.150
có cùng cập nhật về trọng số cho người diễn và người phê bình.

06:34.150 --> 06:39.010
Vì vậy, đó là một phần của phiên bản đặc biệt của RC, mô hình được chia sẻ với bản cập nhật được chia sẻ về

06:39.010 --> 06:39.550
trọng lượng.

06:39.880 --> 06:47.140
Và sau đó, tệp quan trọng nhất khác mà chúng tôi sẽ thực hiện từng dòng một là đoàn tàu mà PI đã rơi, tất

06:47.140 --> 06:51.160
nhiên là ngay sau khi chúng tôi tạo ra bộ não của RC.

06:51.280 --> 06:55.870
Chà, chúng ta phải đào tạo họ và chúng ta đào tạo họ trong chuyến tàu này, tệp PI đó.

06:55.870 --> 07:02.410
Vì vậy, đây là một đoạn mã khá dài, nhưng đây là phần chứa đựng trái tim của mô hình a3c, sẽ

07:02.410 --> 07:09.010
có hai tổn thất để giảm tổn thất giá trị, đó là tổn thất liên quan đến dự đoán của nhà phê bình

07:09.010 --> 07:14.590
và tổn thất chính sách, đó là cuối cùng liên quan đến các dự đoán của diễn viên.

07:14.590 --> 07:15.700
Vì vậy, điều này là khá mới.

07:15.700 --> 07:21.400
Nhưng bạn biết đấy, đó là bởi vì trong a3t, về cơ bản chúng ta đang làm việc với một số tác nhân, mỗi tác nhân có

07:21.400 --> 07:23.050
bản sao môi trường của riêng mình.

07:23.050 --> 07:28.540
Nhưng chúng ta cũng có lớp được kết nối đầy đủ này xuất ra giá trị của hàm V và về cơ bản đó là

07:28.540 --> 07:31.270
tầm nhìn chung về những gì đang xảy ra trong trò chơi.

07:31.270 --> 07:34.060
Vì vậy, điều này sẽ khá thách thức.

07:34.060 --> 07:38.170
Vì vậy, hãy đảm bảo ở trạng thái tốt và cho phần còn lại của các tệp.

07:38.170 --> 07:43.210
Vâng, tôi sẽ chỉ giải thích chúng chi tiết, nhưng không phải bằng cách dành quá nhiều thời gian cho chúng.

07:43.210 --> 07:45.670
Tin tôi đi, bạn muốn giữ sức cho việc này.

07:45.670 --> 07:47.020
Điều này sẽ được rất nhiều.

07:47.020 --> 07:55.330
Vì vậy, các tệp này chống lại PI, đó là một sự cải thiện của môi trường phòng tập thể dục nhờ vào vũ trụ.

07:55.330 --> 08:00.880
Vì vậy, về cơ bản tệp đó chỉ cải thiện môi trường phòng tập thể dục với vũ trụ và

08:00.880 --> 08:07.090
cho phép xử lý trước tối ưu hình ảnh và cũng để bình thường hóa tất cả các giá trị của môi

08:07.090 --> 08:10.030
trường, như cường độ màu hoặc cường độ phần thưởng.

08:10.030 --> 08:12.070
Vâng, tất cả các giá trị của môi trường.

08:12.070 --> 08:17.890
Tệp này chuẩn hóa tất cả các giá trị này và cũng đảm bảo rằng chúng tôi có quá trình xử lý trước hình ảnh tối ưu.

08:17.890 --> 08:24.610
Và như bạn có thể thấy, nó được lấy từ trang openai GitHub nơi đại lý cửa hàng vũ trụ.

08:24.610 --> 08:27.340
Vì vậy, chúng tôi sẽ không mất quá nhiều thời gian cho việc này.

08:27.340 --> 08:28.720
Chúng tôi thực sự sẽ dừng lại ở đây.

08:28.720 --> 08:35.200
Bạn chỉ cần hiểu rằng chúng tôi cải thiện môi trường phòng tập thể dục với vũ trụ để có được quá trình xử lý trước

08:35.200 --> 08:36.220
hình ảnh tối ưu.

08:36.220 --> 08:39.520
Phần còn lại không quá quan trọng, đặc biệt là đối với ba C.

08:40.120 --> 08:45.040
Sau đó, chúng ta có API chính, là mã sẽ thực thi toàn bộ.

08:45.040 --> 08:49.660
Vì vậy, bạn biết mã sẽ chạy toàn bộ nội dung, tạo ra bộ não, đào tạo bộ não và

08:49.660 --> 08:50.140
xuất video.

08:50.140 --> 08:53.680
Và đó là bởi vì nó sẽ chạy tất cả các mã này ở đây.

08:54.070 --> 08:56.710
Vì vậy, mô hình chúng tôi đã thấy nó là gì sau đó.

08:56.710 --> 09:00.130
Số pi tối ưu của tôi là một trình tối ưu hóa đặc biệt.

09:00.130 --> 09:06.070
Về cơ bản đó là trình tối ưu hóa nguyên tử, nhưng hãy điều chỉnh nó cho phù hợp với mô hình được chia sẻ này mà chúng tôi đang triển khai.

09:06.070 --> 09:08.860
Vì vậy, chúng tôi sẽ giải thích tất cả mã này trong một hướng dẫn.

09:09.040 --> 09:11.380
Sau đó, chúng tôi đã kiểm tra số pi.

09:11.410 --> 09:12.790
Đó thực sự là cái cuối cùng.

09:12.790 --> 09:17.290
Vì vậy, kiểm tra số pi về cơ bản là tệp sẽ triển khai tác nhân kiểm tra.

09:17.290 --> 09:22.270
Vì vậy, đó là một tác nhân sẽ chơi bùng phát mà không cần cập nhật mô hình.

09:22.270 --> 09:24.670
Vì vậy, điều đó hoàn toàn độc lập với việc đào tạo.

09:24.670 --> 09:27.370
Và chúng tôi cũng sẽ giải thích chi tiết về mã này.

09:27.370 --> 09:33.550
Bên cạnh đó, tin tốt là bạn sẽ có hai mã một mã, đây sẽ là mã chúng tôi thực hiện trong các bài hướng

09:33.550 --> 09:36.010
dẫn nhưng không có bất kỳ bình luận nào.

09:36.010 --> 09:41.860
Và một trong những mã là một trong thư mục mã có tất cả các mã lệnh nó, vì vậy với tất cả sáu tệp

09:41.860 --> 09:47.800
này, tất cả đều được chỉ huy tốt, vì vậy nếu bạn bỏ lỡ điều gì đó trong bất kỳ hướng dẫn nào, bạn sẽ có

09:47.800 --> 09:50.950
thể xem các lệnh tại mã để hiểu những gì đang xảy ra.

09:50.950 --> 09:51.970
Vậy là xong.

09:51.970 --> 09:54.340
Tôi hy vọng bạn vui mừng thực hiện điều này.

09:54.340 --> 09:58.960
Bạn thực sự đang ở trên đỉnh núi bây giờ hoặc ngay dưới đỉnh bởi vì bạn cần phải hiểu điều

09:58.960 --> 09:59.530
này trước.

10:00.010 --> 10:02.860
Bạn đang đến đó để hít thở đầy đủ oxy.

10:02.860 --> 10:05.410
Và chúng ta sẽ bắt đầu cuộc hành trình siêu thú vị này.

10:05.470 --> 10:06.810
Cho đến lúc đó, hãy tận hưởng.

10:06.820 --> 10:07.360
TÔI.
