WEBVTT

00:00.270 --> 00:02.910
Xin chào và chào mừng bạn đến với hướng dẫn Python này.

00:02.940 --> 00:09.120
Vì vậy, bây giờ chúng tôi đã sẵn sàng đào tạo mạng lưới để giảm thiểu khoảng cách bình phương giữa đầu ra và mục tiêu, nhờ những

00:09.120 --> 00:14.760
gì chúng tôi đã làm với theo dõi tính đủ điều kiện trong phần trước, về cơ bản chúng tôi đã sẵn sàng bắt đầu

00:14.760 --> 00:20.640
toàn bộ quá trình đào tạo bằng cách nhận được đầu vào của chúng tôi , mục tiêu của chúng tôi, dự đoán của chúng tôi,

00:20.640 --> 00:25.860
sau đó tính toán lỗi cuối cùng giữa các dự đoán và mục tiêu, sau đó thực hiện lan truyền ngược với

00:25.860 --> 00:28.260
giảm độ dốc ngẫu nhiên để cập nhật trọng số.

00:28.260 --> 00:35.220
Vì vậy, chúng tôi đã sẵn sàng làm tất cả những điều này, nhưng vì chúng tôi muốn tính toán đường trung bình động trên 100 bước, bạn biết

00:35.220 --> 00:40.770
đấy, để theo dõi mức trung bình khi thực hiện bài huấn luyện, tốt, ngay trước khi chúng ta thực hiện toàn bộ

00:40.770 --> 00:47.250
quá trình đào tạo này, chúng ta sẽ thực hiện một lớp học ngay bây giờ sẽ nhận được mức trung bình động này trên 100 bước.

00:47.250 --> 00:48.180
Vì vậy, không phải lo lắng.

00:48.180 --> 00:49.350
Chúng tôi sẽ làm điều đó một cách nhanh chóng.

00:49.350 --> 00:53.580
Chúng tôi sẽ tạo một lớp có ba hàm, nhưng chúng tôi sẽ thực hiện tất cả những điều này trong hướng dẫn duy nhất này.

00:53.580 --> 00:54.810
Vì vậy, chúng tôi sẽ làm điều đó một cách nhanh chóng.

00:54.810 --> 00:55.770
Chúng tôi đã làm điều đó.

00:55.770 --> 01:00.630
Và bên cạnh đó, chúng tôi muốn tập trung vào việc đào tạo ngay bây giờ vì đó là điều quan trọng nhất.

01:00.630 --> 01:03.990
Vì vậy, hãy tạo lớp này ngay bây giờ trong hướng dẫn duy nhất này.

01:04.350 --> 01:04.740
Được rồi.

01:04.740 --> 01:10.800
Vì vậy, chúng tôi sẽ giới thiệu một lớp mới, mà chúng tôi sẽ gọi là đường trung bình động bốn.

01:10.950 --> 01:13.230
Và sau đó ở đây chúng tôi đi với chức năng đầu tiên của chúng tôi.

01:13.230 --> 01:18.720
Vì vậy, đó là tất nhiên, hàm init không bao giờ thay đổi trong nó.

01:18.720 --> 01:21.900
Và hàm init này sẽ nhận hai đối số.

01:21.900 --> 01:30.390
Cái đầu tiên là tự cho đối tượng và kích thước của đường trung bình động trong tương lai, sẽ tương ứng với kích thước của danh

01:30.390 --> 01:34.440
sách phần thưởng mà chúng tôi sẽ tính giá trị trung bình.

01:34.440 --> 01:36.240
Vì vậy, đây sẽ là 100.

01:36.720 --> 01:37.080
Được rồi.

01:37.080 --> 01:41.880
Vì vậy, chúng tôi có đối số của chúng tôi cho hàm init và bây giờ chúng ta hãy đi vào bên trong hàm.

01:41.890 --> 01:43.050
Bây giờ bạn biết phải làm gì.

01:43.080 --> 01:47.220
Chúng ta phải khởi tạo các biến cụ thể cho đối tượng.

01:47.220 --> 01:54.120
Và đây là những thứ tốt nhất, đầu tiên sẽ là danh sách các phần thưởng.

01:54.120 --> 01:59.130
Vì vậy, đó sẽ là danh sách chứa 100 phần thưởng mà chúng tôi sẽ tính toán mức trung bình.

01:59.130 --> 02:05.220
Vì vậy, ở đây ngay bây giờ, chúng tôi chỉ đơn giản khởi tạo danh sách này với danh sách trống ở đây.

02:05.640 --> 02:06.720
Vì vậy, danh sách các phần thưởng.

02:06.720 --> 02:14.040
Và sau đó, biến thứ hai của các đối tượng trong tương lai của chúng ta, tất nhiên sẽ là kích thước

02:14.040 --> 02:21.000
và kích thước sẽ bằng với đối số mà chúng ta sẽ nhập khi tạo các đối tượng trung bình động

02:21.000 --> 02:29.250
trong tương lai vì vậy kích thước ở đây và chúng ta đã sẵn sàng chuyển sang chức năng tiếp theo sẽ là chức năng

02:29.250 --> 02:32.100
THÊM và sẽ thêm phần thưởng tích lũy.

02:32.100 --> 02:35.430
Hãy cẩn thận không phải là phần thưởng đơn giản, đó là phần thưởng tích lũy.

02:35.430 --> 02:40.560
Và đó là bởi vì, bạn biết đấy, chúng tôi đang thực hiện theo dõi tính đủ điều kiện và do đó học mỗi

02:40.560 --> 02:44.430
mười bước và do đó học với phần thưởng tích lũy chứ không phải phần thưởng đơn giản.

02:44.430 --> 02:52.440
Vì vậy, chức năng thêm này mà chúng tôi sắp thực hiện sẽ thêm phần thưởng tích lũy vào danh sách phần thưởng đó.

02:52.590 --> 02:59.220
Vì vậy, def, tất nhiên chúng ta sẽ gọi nó là ADD, và hàm ADD này sẽ nhận hai đối số.

02:59.220 --> 03:05.010
Đầu tiên là bản thân vì chúng tôi sẽ sử dụng danh sách phần thưởng này ở đây vì đơn giản là chúng tôi

03:05.010 --> 03:08.250
sẽ thêm phần thưởng tích lũy vào danh sách phần thưởng này.

03:08.250 --> 03:11.550
Vì vậy, chúng ta cần cái tôi này để có thể có được cái tôi như vậy.

03:11.550 --> 03:17.760
Và cái thứ hai sẽ là phần thưởng, sẽ đại diện cho phần thưởng tích lũy.

03:18.420 --> 03:18.810
Được rồi.

03:18.810 --> 03:21.620
Vì vậy, đó là hai đối số của chúng ta về hàm ADD.

03:21.750 --> 03:25.230
Bây giờ chúng ta hãy đi vào bên trong hàm và xác định những gì nó phải làm.

03:25.590 --> 03:25.850
Được chứ.

03:25.890 --> 03:32.190
Rất đơn giản, điều đầu tiên nó phải làm là bất cứ khi nào chúng tôi nhận được phần thưởng tích lũy, một phần thưởng mới,

03:32.190 --> 03:38.160
bạn biết đấy, khi chúng tôi tiến bộ trên mười bước mới, tốt, việc chúng tôi phải làm là thêm phần thưởng tích lũy này

03:38.160 --> 03:39.060
vào danh sách.

03:39.060 --> 03:40.410
Và đó chính xác là những gì chúng tôi sẽ làm.

03:40.410 --> 03:45.540
Chúng tôi sẽ viết một dòng mã sẽ thêm phần thưởng tích lũy mới này mà chúng tôi nhận được sau khi

03:45.540 --> 03:48.840
thực hiện mười bước để có danh sách phần thưởng này tại đây.

03:49.050 --> 03:55.920
Và để làm điều này, chúng ta phải tách biệt hai điều kiện, bởi vì chúng ta sẽ làm việc với các lô, nên phần thưởng sẽ

03:55.920 --> 04:01.440
nằm trong một số danh sách, nhưng trong một số trường hợp khác, phần thưởng cũng có thể là một phần tử

04:01.440 --> 04:02.040
duy nhất.

04:02.040 --> 04:09.480
Và cú pháp để thêm một phần tử vào danh sách, đó là danh sách phần thưởng ở đây không giống nhau cho dù bạn

04:09.480 --> 04:13.080
đang thêm một danh sách hay một phần tử đơn lẻ.

04:13.080 --> 04:16.860
Vì vậy, chúng ta chỉ cần thực hiện điều kiện này sẽ tách biệt hai trường hợp này.

04:16.860 --> 04:22.530
Và hãy bắt đầu với trường hợp đầu tiên, đó là trường hợp những gì chúng ta đang thêm vào danh sách phần thưởng này là

04:22.530 --> 04:23.430
một danh sách.

04:23.430 --> 04:29.700
Và để làm điều này, chúng ta sẽ thêm is instance và trong ngoặc đơn, chúng ta nhập hai đối số.

04:29.700 --> 04:34.080
Đầu tiên là phần thưởng của chúng tôi mà chúng tôi đang thêm phần thưởng đó.

04:34.440 --> 04:37.170
Và cái thứ hai là danh sách.

04:37.410 --> 04:47.340
Và vì vậy, nếu đó là trường hợp, danh sách phần thưởng có nghĩa là nếu phần thưởng nằm trong danh sách và vì vậy nếu phần thưởng

04:47.340 --> 04:54.870
nằm trong danh sách, những gì chúng ta làm rất đơn giản là chúng ta lấy danh sách của mình.

04:55.680 --> 04:56.520
Phần thưởng.

04:57.450 --> 05:05.040
Và chúng ta sẽ thêm danh sách này bởi vì đây là một danh sách, những gì chúng ta có thể làm là sử dụng một phép toán cộng đơn giản

05:05.040 --> 05:08.250
vì chúng ta có thể tính tổng hai danh sách với nhau.

05:08.580 --> 05:09.180
Phần thưởng.

05:09.180 --> 05:11.670
Đây là danh sách, bởi vì điều này sẽ bằng với true.

05:11.700 --> 05:13.110
Ý tôi là, nếu chúng ta ở trong trường hợp này.

05:13.110 --> 05:21.000
Và vì vậy, chúng tôi có thể chỉ cần tổng hợp danh sách này vào danh sách phần thưởng của chúng tôi, và do đó chúng tôi có thể chỉ cần thêm

05:21.000 --> 05:23.970
vào đây danh sách phần thưởng cộng với phần thưởng tương đương.

05:24.660 --> 05:30.300
Và bằng cách làm điều này, chúng tôi chỉ mở rộng danh sách bằng cách cộng hai danh sách này lại với nhau.

05:30.930 --> 05:31.440
Được rồi.

05:31.440 --> 05:33.390
Và sau đó là điều kiện thứ hai.

05:33.660 --> 05:35.910
Vì vậy, chúng tôi có thể chỉ cần thêm khác.

05:36.030 --> 05:41.640
Vì vậy, đó là nếu phần thưởng không phải là một danh sách và do đó, nếu nó là một phần tử đơn lẻ.

05:41.880 --> 05:44.180
Và do đó, điều gì xảy ra trong trường hợp đó?

05:44.190 --> 05:45.210
Chà, cũng vậy thôi.

05:45.210 --> 05:52.650
Chúng tôi muốn thêm phần thưởng vào danh sách phần thưởng của mình, nhưng chúng tôi không thể sử dụng cú pháp này vì phần thưởng sẽ không còn

05:52.650 --> 05:53.690
là danh sách nữa.

05:53.700 --> 05:55.250
Nó sẽ là một phần tử duy nhất.

05:55.260 --> 05:59.850
Và những gì chúng ta cần sử dụng là một cú pháp khác, đó là hàm append.

05:59.850 --> 06:05.040
Khi bạn muốn thêm một phần tử vào danh sách, bạn có thể thêm một số phần tử mà bạn có để sử dụng

06:05.040 --> 06:05.670
hàm append.

06:05.670 --> 06:07.770
Và đây chính xác là những gì chúng ta sẽ làm bây giờ.

06:07.770 --> 06:18.110
Chúng tôi sẽ lấy danh sách phần thưởng của đối tượng và dán nó vào đây và sau đó thêm dấu chấm.

06:18.120 --> 06:18.930
Chúng ta bắt đầu.

06:18.930 --> 06:24.540
Đầu tiên và tất nhiên trong ngoặc đơn, chúng ta nhập các phần tử mà chúng ta muốn thêm vào.

06:24.540 --> 06:26.220
Và đây tất nhiên là phần thưởng.

06:26.220 --> 06:29.280
Nhưng phần thưởng trong trường hợp đó sẽ không phải là một danh sách.

06:29.280 --> 06:34.110
Nó sẽ là một phần tử duy nhất, giống như một phần thưởng tích lũy duy nhất, không nằm trong danh sách.

06:34.740 --> 06:35.160
Được rồi.

06:35.160 --> 06:39.300
Và sau đó chúng tôi muốn làm điều này, nhưng bây giờ chúng tôi phải thêm một cái gì đó nữa.

06:39.300 --> 06:45.180
Đó là điều sẽ xảy ra khi danh sách phần thưởng này có hơn 100 yếu tố.

06:45.270 --> 06:51.210
Trong trường hợp đó, việc chúng ta phải làm là xóa phần tử đầu tiên của danh sách phần thưởng này

06:51.210 --> 06:56.160
để đảm bảo rằng danh sách phần thưởng này luôn chứa không quá 100 phần tử.

06:56.160 --> 07:00.330
Vì vậy, chính xác như những gì chúng tôi đã làm cho xe tự lái khi thực hiện cửa sổ tỷ số.

07:00.330 --> 07:08.640
Và vì vậy, để đảm bảo điều này, chúng tôi sẽ thêm một điều kiện tốt chỉ định rằng bất cứ khi nào độ dài của danh sách

07:08.910 --> 07:15.720
phần thưởng của chúng tôi, đó là số phần tử trong danh sách phần thưởng của chúng tôi bất cứ khi nào

07:15.720 --> 07:23.040
con số này lớn hơn chính nó, kích thước đó, đó là kích thước mà chúng ta đặt ở đây và sau này sẽ bằng

07:23.040 --> 07:25.350
100 khi chúng ta tạo đối tượng.

07:25.350 --> 07:30.180
Chà, ngay khi số phần tử của danh sách phần thưởng này lớn hơn 100.

07:30.180 --> 07:38.790
Chà, những gì chúng tôi muốn làm là xóa phần tử đầu tiên trong danh sách phần thưởng mà chúng tôi có thể nhận được bằng cách lấy

07:38.790 --> 07:40.320
chỉ số bằng không.

07:40.320 --> 07:43.110
Đó là chỉ số đầu tiên trong danh sách phần thưởng của chúng tôi.

07:43.350 --> 07:50.730
Đây là yếu tố đầu tiên trong danh sách phần thưởng của chúng tôi và chúng tôi muốn xóa nó bất cứ khi nào danh sách phần thưởng

07:50.730 --> 07:52.890
của chúng tôi chứa hơn 100 yếu tố.

07:53.340 --> 08:00.030
Vì vậy, với điều kiện này ở đây, chúng tôi đảm bảo rằng danh sách phần thưởng của chúng tôi không bao giờ chứa

08:00.030 --> 08:01.620
nhiều hơn 100 phần tử.

08:01.950 --> 08:09.300
Và do đó, bây giờ những gì chúng ta có thể làm là tạo một hàm mới để tính giá trị trung bình của danh

08:09.300 --> 08:16.290
sách phần thưởng sẽ chứa 100 phần tử khi chạy, và do đó chúng ta sẽ tính toán trung bình động trên 100

08:16.290 --> 08:17.280
bước mỗi lần.

08:17.880 --> 08:19.590
Vì vậy, hãy tạo chức năng mới này.

08:19.590 --> 08:24.600
Nó sẽ rất dễ dàng vì có hàm chính trong Python, là một hàm từ NumPy để tính

08:24.630 --> 08:27.180
giá trị trung bình của một danh sách.

08:27.480 --> 08:31.710
Và vì vậy chúng ta hãy giới thiệu hàm cuối cùng của chúng ta ở đây, mà chúng ta sẽ gọi là trung bình.

08:31.980 --> 08:37.050
Và hàm này sẽ nhận một đối số sẽ là chính nó, bởi vì chúng ta sẽ sử dụng, tất nhiên,

08:37.050 --> 08:41.430
vẫn là danh sách phần thưởng của chúng ta, là một biến số đối tượng của chúng ta.

08:41.430 --> 08:44.220
Vì vậy, tự và dấu hai chấm.

08:44.490 --> 08:51.630
Và bây giờ chúng ta hãy tính giá trị trung bình và do đó trực tiếp chúng ta sẽ trả về giá trị trung bình vì chúng ta có

08:51.630 --> 08:55.500
thể lấy nó bằng hàm trung bình mà tất nhiên chúng ta đang áp dụng.

08:55.590 --> 09:00.000
Chà, những gì chúng tôi muốn tính toán, ý nghĩa của điều đó là danh sách phần thưởng của chúng tôi.

09:00.000 --> 09:01.770
Tôi nghĩ rằng tôi vẫn sao chép nó.

09:01.770 --> 09:02.100
Đúng.

09:02.100 --> 09:02.910
Chúng ta bắt đầu.

09:02.910 --> 09:07.050
Vì vậy, chúng tôi chỉ trả về giá trị trung bình của danh sách phần thưởng của chúng tôi.

09:07.050 --> 09:11.210
Và giá trị trung bình, như tôi đã nói, là một hàm của số không pi.

09:11.220 --> 09:16.500
Vì vậy, ở đây tôi thêm phím tắt và p có nghĩa là danh sách tự nhận phần thưởng.

09:16.500 --> 09:17.460
Và chúng ta bắt đầu.

09:17.460 --> 09:20.370
Chúng tôi có trung bình của chúng tôi trên 100 bước.

09:20.850 --> 09:21.540
Hoàn hảo.

09:21.540 --> 09:23.970
Vì vậy, chúng tôi đã thực hiện lớp học đó rất hiệu quả.

09:23.970 --> 09:28.980
Bây giờ chúng tôi nhận được hướng dẫn về cách lấy trung bình động trên 100 bước.

09:28.980 --> 09:36.300
Và vì chúng ta sẽ sử dụng một đối tượng trung bình động khi thực hiện đào tạo, nên chúng ta hãy tạo

09:36.300 --> 09:38.490
đối tượng trung bình động này.

09:38.490 --> 09:46.260
Và vì vậy chúng ta sẽ gọi nó là A và đơn giản là Mar sẽ là một đối tượng của lớp A.

09:46.260 --> 09:54.810
Và như chúng tôi đã nói, chúng tôi muốn kích thước là 100 vì chúng tôi muốn tính toán đường trung bình động trên 100 bước.

09:54.900 --> 09:55.920
Rất hoàn hảo.

09:55.920 --> 09:56.670
Chúng ta bắt đầu.

09:56.890 --> 10:01.600
Giờ đây, chúng tôi đã sẵn sàng đào tạo AI của mình để cuối cùng trở nên thông minh.

10:01.630 --> 10:02.780
Đên luc rôi đây.

10:02.800 --> 10:05.960
Chính từ thời điểm này, AI của chúng ta sẽ trở nên thông minh.

10:05.980 --> 10:07.660
Vì vậy, tôi nóng lòng muốn huấn luyện nó.

10:07.690 --> 10:11.190
Nó sẽ khá dễ dàng vì đây là điều chúng tôi đã làm.

10:11.200 --> 10:12.580
Nhưng điều này sẽ rất vui.

10:12.580 --> 10:18.010
Và bên cạnh đó, sau đó, sẽ đến lúc phải vui hơn nữa vì về cơ bản mắt của chúng ta sẽ hoàn toàn

10:18.010 --> 10:18.640
sẵn sàng.

10:18.640 --> 10:24.850
Điều đó được xây dựng và cũng thông minh, và do đó chúng tôi sẽ thực thi mã và sau đó AI của chúng tôi sẽ chơi

10:24.850 --> 10:32.080
diệt vong và cuối cùng chúng tôi sẽ xem các video AI của chúng tôi chơi trò diệt vong và chúng tôi sẽ xem liệu nó có tiếp cận được chiếc

10:32.080 --> 10:33.240
áo khoác hay không.

10:33.250 --> 10:34.340
Vì vậy, tôi không thể chờ đợi.

10:34.360 --> 10:35.650
Hãy thực hiện đào tạo đó.

10:35.650 --> 10:36.460
Và cho đến lúc đó.

10:36.460 --> 10:37.360
Và tôi.
