WEBVTT

00:00.240 --> 00:03.300
Xin chào và chào mừng đến với bước cuối cùng của phần này.

00:03.300 --> 00:04.620
Một tòa nhà cái tôi.

00:04.650 --> 00:10.200
Bây giờ, điều duy nhất mà chúng ta phải làm là tạo ra chức năng chuyển tiếp lớn này

00:10.200 --> 00:16.110
sẽ truyền tín hiệu ngay từ đầu khi não đang nhận được hình ảnh cho đến cuối cùng, khi mắt thực

00:16.140 --> 00:17.160
hiện hành động.

00:17.160 --> 00:21.060
Vì vậy, chúng tôi sẽ tạo toàn bộ chức năng này và đó sẽ là bước cuối cùng của chúng tôi.

00:21.090 --> 00:26.430
Trước khi chúng ta chuyển sang phần hai, hãy đào tạo AI của chúng ta bằng phương pháp học tích hợp sâu sắc.

00:26.670 --> 00:27.840
Vì vậy, chúng ta hãy làm điều này.

00:27.840 --> 00:33.600
Chúng ta sẽ sử dụng lệnh gọi hàm thực sự tương tự như hàm init.

00:33.600 --> 00:39.240
Đó là một chức năng hiện có, nhưng lần này chúng tôi sử dụng nó để gọi một số chức năng khác là chức năng mà chúng

00:39.240 --> 00:44.070
tôi đã thực hiện trước đây vì bạn biết đấy, chúng tôi sẽ sử dụng chức năng chuyển tiếp từ não và chức

00:44.070 --> 00:45.390
năng chuyển tiếp từ cơ thể.

00:45.390 --> 00:50.070
Và vì vậy bây giờ chúng ta đang sử dụng hàm gọi này để gọi các hàm này về cơ bản.

00:50.280 --> 00:53.040
Vì vậy, cuộc gọi sẽ có hai đối số.

00:53.040 --> 00:55.830
Cái đầu tiên là bản thân, tất nhiên, đối tượng.

00:55.830 --> 01:00.120
Và lập luận thứ hai mà theo bạn, nó sẽ như thế nào?

01:00.120 --> 01:02.700
Chà, chúng tôi đang thực hiện toàn bộ việc tuyên truyền lần này.

01:02.700 --> 01:08.370
Vì vậy, những gì chúng tôi muốn lấy làm đầu vào tất nhiên là hình ảnh đầu vào vì tất nhiên đó là điểm

01:08.370 --> 01:14.010
bắt đầu khi AI chơi trò chơi, trước tiên nó hình dung ra hình ảnh của trò chơi, sau đó truyền tín hiệu

01:14.010 --> 01:16.680
trong não và sau đó đóng vai trò hành động.

01:17.010 --> 01:24.360
Do đó, đối số thứ hai sẽ là đầu vào và bây giờ chúng tôi đã sẵn sàng để thực hiện toàn bộ việc truyền bá này.

01:24.600 --> 01:25.830
Vì vậy, chúng ta hãy làm điều này.

01:25.860 --> 01:27.750
Được rồi, vậy bước đầu tiên, nó là gì?

01:27.750 --> 01:31.740
Bước đầu tiên là nhận các hình ảnh đầu vào từ trò chơi.

01:31.950 --> 01:37.320
Và vì những hình ảnh này sẽ đi vào mạng nơ-ron, nên bạn có thể tưởng tượng rằng chúng ta phải định

01:37.320 --> 01:39.570
dạng chúng theo một cấu trúc đặc biệt.

01:39.570 --> 01:42.480
Và cấu trúc, tất nhiên, là cấu trúc ngọn đuốc.

01:42.570 --> 01:48.510
Vì vậy, điều đầu tiên sẽ xảy ra là chúng ta sẽ chuyển những hình ảnh này thành một mảng, sau đó

01:48.510 --> 01:54.330
chúng ta sẽ chuyển đổi mảng numpy thành một tensor ngọn đuốc, và cuối cùng chúng ta sẽ đặt tensor ngọn đuốc

01:54.330 --> 01:58.140
bên trong một biến ngọn đuốc sẽ chứa cả tensor và một gradient.

01:58.140 --> 02:03.720
Đó là để đồ thị động của chúng tôi tính toán rất hiệu quả lớp gradient cho sự giảm dần gradient

02:03.720 --> 02:04.350
ngẫu nhiên.

02:04.350 --> 02:06.090
Vì vậy, đó là bước đầu tiên của chúng tôi.

02:06.090 --> 02:12.180
Và sau đó khi chúng ta có được định dạng hình ảnh phù hợp, chúng sẽ có thể đi vào mạng nơ-ron và đó là

02:12.180 --> 02:15.510
nơi chúng ta sẽ thực hiện toàn bộ quá trình truyền tín hiệu.

02:16.150 --> 02:20.200
Vì vậy, chúng ta hãy thực hiện bước đầu tiên này, chuyển đổi hình ảnh sang định dạng phù hợp.

02:20.200 --> 02:22.980
Vì vậy, hình ảnh của chúng tôi cho đến nay là đầu vào.

02:22.990 --> 02:26.620
Vì vậy, bây giờ chúng ta sẽ tạo một biến mới, mà tôi đang gọi là đầu vào.

02:26.620 --> 02:29.290
Vì vậy, đó là đầu vào thực sự của mạng nơ-ron.

02:29.290 --> 02:31.690
Và đầu vào này, nó sẽ ở đâu?

02:31.690 --> 02:34.300
Vâng, trước tiên chúng ta cần phải lấy ý kiến của mình.

02:34.300 --> 02:36.580
Đó là hình ảnh ban đầu của chúng tôi.

02:36.580 --> 02:42.130
Sau đó, như chúng tôi đã nói, chúng tôi muốn chuyển đổi những hình ảnh này thành các mảng numpy.

02:42.130 --> 02:49.150
Vì vậy, để làm điều này, chúng ta chỉ cần sử dụng NumPy, có một phím tắt và P sau đó là mảng hàm.

02:49.240 --> 02:52.660
Vì vậy, chúng tôi đặt đầu vào trong dấu ngoặc đơn của mảng hàm.

02:52.690 --> 02:53.260
Chúng ta bắt đầu.

02:53.260 --> 02:55.930
Bây giờ nó được chuyển đổi thành một cái gì đó bởi các mảng.

02:55.930 --> 03:02.740
Nhưng sau đó vì các ô của mảng numpy sẽ chứa các pixel nên thực sự an toàn hơn khi

03:02.740 --> 03:04.330
chỉ định kiểu float.

03:04.360 --> 03:11.680
Tốt hơn hết là bạn nên đảm bảo rằng chúng ta có một số phao nổi ngay bây giờ và để đảm bảo nó, chúng ta có thể sử dụng NP float 32

03:11.710 --> 03:12.160
tại đây.

03:12.550 --> 03:13.180
Được rồi.

03:13.180 --> 03:17.080
Vì vậy, bây giờ chúng ta vẫn có một mảng trọng tài nhưng với kiểu float.

03:17.680 --> 03:18.040
Được rồi.

03:18.040 --> 03:19.510
Và đó cũng là một lý do khác.

03:19.510 --> 03:24.040
Đó là các cảm biến theo định nghĩa là các mảng của một loại duy nhất.

03:24.040 --> 03:27.340
Và vì vậy chúng tôi chọn loại đơn là float, float 32.

03:27.910 --> 03:28.210
Được rồi.

03:28.210 --> 03:33.730
Vì vậy, bây giờ chúng ta đã có các mảng numpy của mình, bước tiếp theo là chuyển đổi nó thành một tensor ngọn đuốc.

03:33.730 --> 03:42.610
Và để làm điều này, chúng tôi có thể sử dụng, ví dụ, ngọn đuốc và sau đó là hàm numpy from gạch dưới để chúng tôi chuyển

03:42.610 --> 03:44.920
đổi nó thành một tensor ngọn đuốc.

03:45.160 --> 03:46.000
Chúng ta bắt đầu.

03:46.000 --> 03:52.240
Và bây giờ bước cuối cùng là đặt các cảm biến ngọn đuốc này vào một biến ngọn đuốc có chứa cả

03:52.240 --> 03:53.140
tensor và gradient.

03:53.140 --> 03:54.850
Và bạn biết làm thế nào để làm điều đó.

03:54.850 --> 04:03.340
Tất nhiên, chúng tôi sử dụng lớp biến của chúng tôi bởi vì thực sự mọi thứ bên trong biến này thực sự là

04:03.340 --> 04:05.470
đầu vào của lớp biến.

04:05.470 --> 04:11.530
Nhưng tôi muốn cho bạn thấy điều đó theo cách này bởi vì chúng tôi bắt đầu với hình ảnh đầu vào của mình, sau đó chúng tôi chuyển đổi

04:11.530 --> 04:15.880
chúng thành các mảng phức tạp, sau đó thành các cảm biến ngọn đuốc và sau đó là biến thể.

04:15.880 --> 04:17.020
Và bây giờ chúng tôi tốt.

04:17.020 --> 04:23.350
Chúng được phép đi vào mạng nơ-ron mà trước tiên là mắt của AI và sau đó là các lớp được kết nối đầy

04:23.350 --> 04:25.450
đủ để dẫn đến các dự đoán.

04:25.930 --> 04:30.100
Vì vậy, nói về mắt, về đôi mắt, đó chính xác là những gì chúng ta sẽ làm bây giờ.

04:30.280 --> 04:37.210
Bây giờ chúng ta sẽ truyền bá những hình ảnh được phép này vào mắt người nhìn qua ba

04:37.210 --> 04:38.590
lớp phức tạp.

04:38.590 --> 04:41.410
Và để làm điều này, bạn sẽ thấy bây giờ nó đơn giản như thế nào.

04:41.410 --> 04:46.030
Đó là bởi vì chúng ta đã có bộ não trong cơ thể từ chức năng init.

04:46.030 --> 04:55.780
Chúng ta đơn giản chỉ cần đưa bộ não của mình để não tự chấm và áp dụng bộ não này vào các hình ảnh đầu vào và

04:55.780 --> 05:02.530
điều đó sẽ lan truyền nhờ chức năng chuyển tiếp từ não sẽ truyền các tín hiệu bên trong

05:02.530 --> 05:03.160
não.

05:03.160 --> 05:08.740
Và kể từ khi chức năng thứ tư của não trở lại, các tín hiệu đầu ra, đó là các nơ-ron của

05:08.740 --> 05:11.170
lớp đầu ra chứa các giá trị tín hiệu.

05:11.170 --> 05:17.770
Chà, bản thân nó, đầu vào của não ở đây sẽ trả lại tín hiệu đầu ra này và do đó chúng ta sẽ đặt

05:17.770 --> 05:23.230
ở đây khi nó trở thành một biến và chúng ta sẽ gọi nó rất đơn giản là đầu ra.

05:24.040 --> 05:26.570
Và đầu ra này là tín hiệu đầu ra của não.

05:26.590 --> 05:31.930
Và bây giờ chúng ta đã có tín hiệu đầu ra của não, chúng ta phải truyền tín hiệu đầu ra này

05:31.930 --> 05:32.690
đến cơ thể.

05:32.710 --> 05:36.790
Và để làm điều này, chúng ta sẽ sử dụng hàm chuyển tiếp thứ hai từ cơ thể.

05:36.790 --> 05:45.250
Và để làm điều này, chúng ta chỉ cần lấy cơ thể của mình và áp dụng nó cho đầu ra, bởi vì

05:45.250 --> 05:50.470
chức năng chuyển tiếp của cơ thể lấy tín hiệu đầu ra của não.

05:50.470 --> 05:55.780
Vì vậy, đó chính xác là kết quả đầu ra ngay bây giờ và trả về các hành động.

05:55.780 --> 06:02.650
Và do đó, vì nó trả về các hành động, tốt, ở đây chúng ta sẽ thêm các hành động bằng với đầu ra của cơ

06:02.650 --> 06:03.340
thể tự.

06:03.760 --> 06:04.090
Được rồi.

06:04.090 --> 06:09.670
Vì vậy, bây giờ bạn có thể thấy rất đơn giản, chúng tôi truyền các tín hiệu bên trong não và sau

06:09.670 --> 06:16.000
đó từ não đến cơ thể trước tiên bằng cách sử dụng toàn bộ chức năng từ não, nơi nhận các hình ảnh đầu vào

06:16.000 --> 06:19.660
và sau đó truyền chúng vào não để trở lại. các giá trị cue.

06:19.960 --> 06:25.420
Và sau đó chúng tôi truyền tín hiệu đầu ra này vào cơ thể với chức năng chuyển tiếp của cơ thể để có được

06:25.420 --> 06:26.530
hành động để phát.

06:26.590 --> 06:32.260
Và bây giờ, điều duy nhất còn lại mà chúng ta phải làm, và đó là dòng mã cuối cùng của

06:32.260 --> 06:34.150
phần một này, xây dựng con mắt.

06:34.180 --> 06:39.040
Chà, chúng ta phải trả lại hành động để chơi, và đó là hành động.

06:39.310 --> 06:45.040
Tuy nhiên, ngay bây giờ các hành động có định dạng ngọn đuốc và chúng ta cần chuyển đổi chúng trở lại thành mảng numpy.

06:45.040 --> 06:51.640
Và để làm điều này, chúng ta sẽ lấy cấu trúc dữ liệu của các hành động này và sau đó thêm vào đây hàm

06:51.640 --> 06:53.650
non pi và chúng ta bắt đầu.

06:53.650 --> 06:56.470
Bây giờ chúng ta có các hành động được trả về ở định dạng phù hợp.

06:56.470 --> 06:57.910
Vì vậy, xin chúc mừng.

06:57.910 --> 07:00.520
Bây giờ chúng ta đã hoàn thành phần đầu tiên này.

07:00.520 --> 07:03.190
Chúng tôi đã xây dựng AI theo ba bước.

07:03.190 --> 07:06.640
Đầu tiên, chúng tôi tạo ra bộ não, thứ hai, chúng tôi tạo ra cơ thể.

07:06.640 --> 07:13.390
Và thứ ba, chúng tôi tập hợp bộ não trong cơ thể và chúng tôi truyền toàn bộ tín hiệu từ mắt đến thời điểm chúng

07:13.390 --> 07:14.860
tôi thực hiện hành động.

07:15.310 --> 07:16.960
Vậy là xong bước đầu tiên.

07:16.960 --> 07:18.280
Đó là một bước tiến lớn.

07:18.280 --> 07:22.030
Nhưng bây giờ, như bạn đã hiểu, chúng tôi xây dựng một AI, nhưng nó vẫn còn ngu ngốc.

07:22.030 --> 07:26.410
Chúng ta cần huấn luyện nó trở nên thông minh, vì vậy chúng ta cần huấn luyện nó làm những gì chúng ta muốn làm.

07:26.410 --> 07:31.450
Và để làm điều này, chúng ta sẽ sử dụng phần thưởng sau môi trường ngu ngốc vì nó học hỏi

07:31.450 --> 07:37.570
từ phần thưởng bằng cách được củng cố khi nhận được phần thưởng tốt và bằng cách bị trừng phạt hoặc suy yếu khi nhận được

07:37.570 --> 07:38.500
phần thưởng kém.

07:38.530 --> 07:41.410
Vì vậy, đó là nơi mà Q học sẽ phát huy tác dụng.

07:41.410 --> 07:47.260
Và đó chính xác là những gì chúng ta sẽ làm trong phần hai này đào tạo AI với khả năng học tập tích hợp sâu sắc.

07:47.260 --> 07:50.440
Tôi không thể chờ đợi để bắt đầu và cho đến khi đó, hãy tận hưởng AI.
