WEBVTT

00:00.180 --> 00:02.070
Xin chào và chào mừng đến với hướng dẫn này.

00:02.290 --> 00:06.060
Được rồi, chúng tôi vừa tính toán entropy và thêm nó vào danh sách entropy.

00:06.060 --> 00:11.580
Và bây giờ những gì chúng ta sẽ làm là thực hiện rút thăm ngẫu nhiên một hành động theo phân phối xác suất của giá

00:11.580 --> 00:12.660
trị tối đa đã đặt.

00:12.990 --> 00:14.460
Vì vậy, chúng ta hãy làm điều này.

00:14.460 --> 00:15.590
Đó là bước tiếp theo.

00:15.600 --> 00:19.840
Chúng tôi vẫn ở trong vòng lặp vì chúng tôi vẫn đang chạy trên các bước ở đây.

00:19.860 --> 00:22.370
Và vì vậy bây giờ bạn biết cách chơi hành động.

00:22.380 --> 00:28.560
Đầu tiên chúng ta sẽ giới thiệu một biến cho hành động được gọi là action, sau

00:28.560 --> 00:37.290
đó chúng ta lấy phân phối xác suất và chúng ta sẽ sử dụng hàm đa chuẩn để lấy ngẫu nhiên từ phân phối xác

00:37.290 --> 00:38.340
suất này.

00:39.030 --> 00:41.210
Và sau đó chúng tôi thêm dữ liệu đó.

00:41.220 --> 00:47.610
Vì vậy, điều quan trọng cần lưu ý là hành động thực sự sẽ là một tensor chỉ có một giá trị.

00:47.610 --> 00:50.820
Nhưng bạn không nên xem đây là một giá trị đơn giản.

00:50.820 --> 00:56.940
Bạn sẽ thấy đây là một hàng chục thứ nguyên, từng thứ một chứa giá trị này cho hành động.

00:56.940 --> 00:59.010
Và đó là bởi vì nó không được vắt.

00:59.550 --> 01:08.700
Và bây giờ vẫn trong vòng lặp tương tự, chúng ta sẽ lấy xác suất nhật ký liên quan đến hành động vừa

01:08.700 --> 01:09.720
được chơi.

01:09.990 --> 01:16.710
Và vì vậy tôi đang cập nhật xác suất nhật ký của mình ở đây bằng cách lấy cái trước, bài toán nhật ký trước đó mà chúng tôi

01:16.710 --> 01:18.000
đã tính toán ở đây.

01:18.000 --> 01:25.710
Và sau đó tôi sẽ sử dụng phương thức thu thập mà tôi sẽ nhập một và hành động được hiển thị bởi vì

01:25.710 --> 01:31.290
chúng tôi muốn nhận được xác suất nhật ký được liên kết với hành động này.

01:31.290 --> 01:38.940
Và như đối số thứ hai ở đây, tôi sẽ nhập hành động của mình, nhưng đó phải là một biến theo yêu cầu

01:38.940 --> 01:43.980
của hàm getter và hàm tập hợp chỉ lập chỉ mục với số nguyên tensor.

01:44.340 --> 01:44.700
Được rồi.

01:44.700 --> 01:48.780
Vì vậy, bây giờ chúng ta chỉ có phần hỗ trợ nhật ký được liên kết với hành động được hiển thị.

01:48.780 --> 01:53.610
Và bây giờ bước tiếp theo là thêm những gì chúng ta có vào danh sách ở đây.

01:53.610 --> 01:55.500
Vì vậy, chúng tôi đã có giá trị.

01:55.500 --> 01:58.560
Đó là những gì chúng tôi nhận được ở đây như là đầu ra của mô hình.

01:58.560 --> 02:00.720
Sau đó, chúng tôi cũng nhận được bản ghi.

02:00.720 --> 02:03.900
Vì vậy, chúng tôi sẽ thêm cột chống nhật ký vào danh sách đạo cụ nhật ký.

02:03.900 --> 02:06.810
Chúng tôi đã thêm entropy vào danh sách entropy.

02:06.810 --> 02:09.480
Vì vậy, chúng tôi tốt và phần thưởng, chúng tôi sẽ nhận được nó sau đó.

02:09.480 --> 02:15.060
Vì vậy, bây giờ chúng ta sẽ thêm giá trị và phần hỗ trợ nhật ký vào danh sách giá trị và danh sách đạo cụ nhật ký.

02:15.270 --> 02:16.110
Làm thôi nào.

02:16.110 --> 02:17.910
Chúng tôi lấy danh sách các giá trị của chúng tôi.

02:17.910 --> 02:24.690
Chúng tôi nói thêm rằng chúng tôi sử dụng hàm append và chúng tôi thêm giá trị vừa được trả về bởi mô hình.

02:24.780 --> 02:25.620
Hoàn hảo.

02:25.800 --> 02:28.470
Sau đó, tương tự cho các probs nhật ký.

02:28.560 --> 02:35.700
Chúng tôi vừa có các thăm dò nhật ký mới và chúng tôi sẽ thêm nó vào danh sách thăm dò nhật ký.

02:36.000 --> 02:42.570
Và vì vậy trong hàm append này, chúng tôi nhập nhật ký vào đề xuất nhật ký của chúng tôi vừa được tính toán ở đây.

02:43.870 --> 02:44.200
Được rồi.

02:44.200 --> 02:46.960
Vì vậy, danh sách của chúng tôi hiện đã được cập nhật tốt.

02:46.990 --> 02:52.690
Vì vậy, bây giờ những gì chúng tôi sẽ làm là chơi hành động, bởi vì thực sự ngay tại đây, chúng tôi đã chọn

02:52.690 --> 02:56.440
hành động bằng cách lấy ngẫu nhiên từ phân phối xác suất này ở đây.

02:56.440 --> 03:02.530
Nhưng chúng tôi thực sự chưa chơi nó, và chúng tôi sẽ chơi nó ngay bây giờ để chúng tôi có thể đạt đến trạng

03:02.530 --> 03:05.980
thái mới và do đó nhận được đường truyền mới và chơi nó.

03:05.980 --> 03:10.270
Chúng ta sẽ sử dụng môi trường của chúng ta bởi vì chúng ta thực hiện hành động trong môi trường của chúng ta.

03:10.270 --> 03:17.980
Sau đó, chúng tôi sẽ sử dụng phương pháp bước và bên trong chúng tôi chỉ định hành động đã được chọn để chơi nó.

03:17.980 --> 03:24.400
Và để làm điều này, chúng tôi thực hiện hành động của mình và chúng tôi thêm numpy đó bởi vì đó là những gì được mong đợi bởi

03:24.400 --> 03:25.060
hàm bước.

03:25.930 --> 03:27.610
Nhưng điều này trở lại.

03:28.770 --> 03:37.380
Trên thực tế, trạng thái mới và cũng là phần thưởng mới, bởi vì khi đạt đến trạng thái mới, chúng ta nhận được phần thưởng mới và chúng ta cũng

03:37.650 --> 03:42.990
nhận được giá trị mới cho việc hoàn thành để biết liệu trò chơi đã hoàn thành hay chưa.

03:43.350 --> 03:43.710
Được rồi.

03:43.710 --> 03:48.300
Vì vậy, với điều này, chúng tôi chơi hành động, chúng tôi đạt đến trạng thái mới và chúng tôi nhận được phần thưởng mới.

03:48.300 --> 03:50.070
Và chúng tôi biết nếu chúng tôi đã hoàn thành trò chơi.

03:50.250 --> 03:55.590
Và nói về việc hoàn thành trò chơi, thì, chúng tôi sẽ thêm một số thứ ở đây để đảm bảo

03:55.590 --> 03:59.100
rằng một đặc vụ không bị mắc kẹt trong một số trạng thái.

03:59.100 --> 04:03.780
Và để làm điều đó, chúng tôi sẽ cập nhật biến darn theo cách sau.

04:04.650 --> 04:11.760
Chà, coi như xong, hoặc chúng ta sẽ thêm một điều kiện nói rằng tập của trò chơi không nên kéo

04:11.760 --> 04:13.890
dài quá nhiều thời gian.

04:14.190 --> 04:20.550
Và bạn sẽ thấy trong hàm main sẽ có thông số độ dài tập tối đa

04:20.550 --> 04:21.900
sẽ bằng 10.000.

04:21.900 --> 04:25.620
Và chúng tôi không muốn một tập phim kéo dài hơn 10.000 đơn vị.

04:25.620 --> 04:33.480
Vì vậy, chúng tôi sẽ thêm vào đây độ dài tập, là độ dài của một tập và

04:33.480 --> 04:37.470
chúng tôi sẽ viết điều kiện lớn hơn Max.

04:38.200 --> 04:39.940
Độ dài tập.

04:40.420 --> 04:40.840
Chúng ta bắt đầu.

04:40.840 --> 04:45.880
Và thực sự thời lượng tập tối đa, chúng tôi đang lấy nó từ các thông số của mình.

04:45.880 --> 04:50.320
Do đó, tôi thêm vào đây params dot params dot chiều dài tập tối đa.

04:50.320 --> 04:59.260
Vì vậy, điều này có nghĩa là nếu trò chơi đã hoàn thành hoặc thời lượng của tập lớn hơn thời lượng tối đa của tập đã đặt, sẽ bằng

04:59.260 --> 05:04.330
10.000, tốt, trò chơi sẽ kết thúc và chúng ta sẽ bắt đầu một trò chơi

05:04.330 --> 05:04.780
mới.

05:06.150 --> 05:07.950
Vì vậy, đó chỉ là một biện pháp phòng ngừa.

05:07.950 --> 05:11.550
Và nói về đề phòng, chúng ta sẽ thêm một biện pháp phòng ngừa khác.

05:11.580 --> 05:15.160
Đó là để kẹp phần thưởng giữa trừ một và cộng một.

05:15.180 --> 05:20.370
Chúng tôi đã nhận được phần thưởng ở đây, nhưng chúng tôi muốn đảm bảo rằng phần thưởng nằm trong khoảng từ trừ một đến

05:20.370 --> 05:20.820
cộng một.

05:20.850 --> 05:27.300
Và để làm điều này, chúng ta chỉ cần cập nhật phần thưởng bằng cách thực hiện việc này, lấy điểm tối đa, sau đó

05:27.300 --> 05:29.220
lấy phần thưởng cho người đàn ông.

05:29.310 --> 05:30.780
Và một.

05:30.960 --> 05:35.670
Và ở đây chúng tôi lấy giá trị tối đa của phần thưởng tối thiểu là một và trừ đi một.

05:35.970 --> 05:39.300
Và đó là chúng tôi sẽ đảm bảo phần thưởng nằm trong khoảng từ trừ một đến cộng một.

05:40.030 --> 05:40.720
Được rồi.

05:40.720 --> 05:42.160
Vì vậy, một biện pháp phòng ngừa khác.

05:42.160 --> 05:49.000
Và bây giờ chúng tôi chỉ muốn kiểm tra xem trò chơi đã hoàn tất chưa, trong trường hợp đó chúng tôi sẽ khởi động lại môi trường.

05:49.000 --> 05:50.500
Và tại sao chúng ta cần kiểm tra điều đó ngay bây giờ?

05:50.500 --> 05:52.870
Đó là bởi vì chúng tôi vừa đạt đến một trạng thái mới.

05:52.900 --> 05:54.700
Chúng tôi vừa thông qua một đường truyền mới.

05:54.700 --> 05:59.410
Vì vậy, chúng ta cần kiểm tra xem sau khi chuyển đường truyền mới này trong khi trò chơi chưa hoàn tất.

05:59.650 --> 06:09.730
Vì vậy, nếu thực hiện lại, nếu được thực hiện, thì trong trường hợp đó chúng ta sẽ khởi động lại môi trường bằng

06:10.720 --> 06:19.150
cách đặt độ dài tập bằng 0 và trạng thái cũng sẽ được khởi tạo và khởi tạo lại nó.

06:19.150 --> 06:23.350
Chúng tôi sử dụng môi trường của chúng tôi và chúng tôi sử dụng chức năng đặt lại.

06:24.460 --> 06:24.770
Ôi!

06:25.060 --> 06:27.360
Bây giờ chúng ta thoát khỏi tình trạng này.

06:27.370 --> 06:28.750
Đó chỉ là một cuộc kiểm tra.

06:29.020 --> 06:34.420
Và bây giờ những gì chúng ta sẽ làm là kể từ khi chúng ta đạt đến một trạng thái mới, tốt, trạng thái mới này

06:34.420 --> 06:40.330
ngay bây giờ và sau đó là của Ray, bởi vì hãy nhớ rằng, các trạng thái là hình ảnh đầu vào ban đầu được thực hiện bởi các mảng.

06:40.330 --> 06:44.350
Và bây giờ những gì chúng ta phải làm là chuyển đổi trạng thái mới thành một bó đuốc.

06:44.350 --> 06:52.540
Vì vậy, chúng tôi sẽ cập nhật trạng thái của mình và chúng tôi sẽ sử dụng thư viện ngọn đuốc và

06:52.690 --> 07:01.420
tất nhiên là hàm from numpy để chuyển đổi mảng numpy này, xác định các hình ảnh đầu vào thành một bộ căng đuốc.

07:02.020 --> 07:02.860
Hoàn hảo.

07:02.980 --> 07:08.560
Và bây giờ điều cuối cùng chúng ta cần làm trước khi thoát khỏi vòng lặp for này, đó là vòng lặp trên các bước của chúng tôi.

07:08.560 --> 07:12.790
Tất nhiên, đó là để thêm phần thưởng vào danh sách phần thưởng.

07:12.790 --> 07:15.100
Đó là điều cuối cùng cần được cập nhật.

07:15.100 --> 07:18.130
Chúng tôi đã cập nhật tất cả các danh sách ở đây ngoại trừ phần thưởng.

07:18.130 --> 07:19.450
Vì vậy, chúng tôi sẽ làm điều đó ngay bây giờ.

07:19.450 --> 07:26.830
Chúng tôi lấy phần thưởng của mình và chúng tôi sử dụng chức năng nối thêm để nối phần thưởng cuối cùng vừa nhận được.

07:27.310 --> 07:28.060
Hoàn hảo.

07:28.060 --> 07:35.230
Và ngay trước khi thoát ra khỏi vòng lặp, chúng ta chỉ cần thực hiện một lần kiểm tra cuối cùng để kiểm tra điều đó.

07:35.230 --> 07:39.250
Nếu nó được thực hiện, thì chúng tôi muốn dừng khám phá.

07:39.250 --> 07:45.940
Và vì vậy, chúng tôi chỉ đơn giản là sẽ thêm vào đây một khoảng thời gian nghỉ, nghĩa là nếu quá trình này hoàn thành, chúng tôi ngừng khám phá

07:45.940 --> 07:50.890
và chúng tôi trực tiếp chuyển sang bước tiếp theo, đây sẽ là bản cập nhật của mô hình được chia sẻ.

07:51.370 --> 07:54.130
Và bây giờ chúng ta đã hoàn thành với vòng lặp for này.

07:54.310 --> 08:01.570
Bây giờ tác nhân đã thực hiện thăm dò, nó sẽ cập nhật mô hình được chia sẻ và chúng tôi sẽ giải quyết vấn đề

08:01.570 --> 08:03.250
đó trong hướng dẫn tiếp theo.

08:03.250 --> 08:04.480
Cho đến lúc đó, hãy tận hưởng.

08:04.480 --> 08:04.990
TÔI.
