WEBVTT

00:00.180 --> 00:06.570
Xin chào và chào mừng bạn đến với phần đầu tiên của bài viết này, tôi thực hiện phần một là xây dựng AI và như

00:06.570 --> 00:13.110
bạn có thể thấy, tôi đã thêm một thứ nguyên trong cấu trúc của việc triển khai này với ba phần tạo nên phần một cho thấy

00:13.110 --> 00:15.900
rõ ràng cách chúng ta sẽ xây dựng cái này .

00:15.900 --> 00:20.760
Đầu tiên tôi sẽ tạo ra bộ não không gì khác ngoài mạng nơ-ron.

00:20.760 --> 00:25.320
Sau đó, chúng tôi sẽ tạo phần nội dung sẽ xác định cách các hành động sẽ được thực hiện.

00:25.320 --> 00:31.290
Và sau đó khi chúng ta có bộ não và cơ thể, chúng ta sẽ lắp ráp chúng để tạo thành AI, sẽ có trong

00:31.290 --> 00:33.420
phần cuối cùng của phần đầu tiên này.

00:33.630 --> 00:37.680
Vì vậy, bây giờ bạn đã có thể có một tầm nhìn tốt về cấu trúc của việc triển khai này.

00:37.680 --> 00:42.660
Đầu tiên, chúng tôi tạo ra bộ não, sau đó chúng tôi tạo ra cơ thể, và sau đó chúng tôi tập hợp các bộ phận để tạo ra AI.

00:42.750 --> 00:48.510
Và sau đó là hướng dẫn này, chúng ta sẽ bắt đầu với phần đầu tiên nói về cấu tạo não bộ và phần

00:48.510 --> 00:51.210
này sẽ đưa chúng ta đến với các bài hướng dẫn.

00:51.210 --> 00:54.720
Bạn có thể tưởng tượng rằng việc tạo ra một bộ não không giống như làm một chiếc bánh.

00:54.720 --> 00:57.000
Vì vậy, điều này sẽ yêu cầu nhiều hơn một hướng dẫn.

00:57.000 --> 01:03.630
Và tất nhiên, như thường lệ, chúng tôi sẽ đại diện cho bộ não đó với lớp vì chúng tôi sẽ cần một số chức năng

01:03.630 --> 01:10.140
và để có cấu trúc của một số chức năng sẽ được tổ chức theo một số loại hướng dẫn, tốt, tất nhiên chúng tôi

01:10.140 --> 01:15.300
cần một lớp, và điều đó thật hoàn hảo, bởi vì một khi chúng ta làm tốt lớp đó, chúng

01:15.300 --> 01:21.270
ta sẽ có thể tạo bao nhiêu bộ não mà chúng ta muốn bằng cách chỉ tạo một số đối tượng của lớp

01:21.270 --> 01:21.780
này.

01:21.780 --> 01:28.050
Vì vậy, một lần nữa, các lớp trong Python và nói chung trong các ngôn ngữ lập trình hướng đối tượng rất thực tế bởi vì bạn

01:28.050 --> 01:33.420
tạo mô hình của mình về thứ gì đó bạn muốn xây dựng và sau đó bạn có thể tạo bao nhiêu đối

01:33.420 --> 01:37.710
tượng tùy thích và chúng sẽ có tất cả các tính năng mà bạn xác định trong lớp.

01:37.710 --> 01:40.380
Và đối với bộ não của chúng ta, tất nhiên sẽ có các tính năng.

01:40.380 --> 01:45.870
Trước hết, kiến trúc của mạng nơ-ron mà tôi nhắc nhở sẽ là một CNN và tất nhiên,

01:45.870 --> 01:51.720
các chức năng khác nhau, chẳng hạn như truyền tín hiệu từ các nơ-ron đầu vào đến các nơ-ron đầu

01:51.720 --> 01:52.230
ra.

01:52.230 --> 01:55.290
Vì vậy, đó là những gì chúng tôi tất nhiên, chức năng thứ tư mà chúng tôi sẽ thực hiện.

01:55.680 --> 01:58.770
Vì vậy, chúng ta hãy làm điều này, chúng ta hãy bắt đầu tạo ra bộ não.

01:58.770 --> 02:00.510
Điều này sẽ khá thú vị.

02:00.510 --> 02:04.650
Đó là một trong những phần yêu thích của tôi và do đó chúng ta hãy đi thẳng vào nó.

02:04.650 --> 02:10.740
Vì vậy, chúng tôi sẽ bắt đầu bằng cách giới thiệu một lớp học, tất nhiên, và chúng tôi sẽ gọi lớp học này.

02:10.740 --> 02:18.270
Chà, tôi đã do dự khi gọi nó là não, nhưng hãy thẳng thắn hơn và hãy gọi nó là CNN, bởi vì

02:18.270 --> 02:22.290
thực ra não là một mạng CNN, một mạng nơ-ron phức tạp.

02:22.290 --> 02:24.360
Vì vậy, khi bạn muốn, bạn có thể gọi nó là bộ não nếu bạn muốn.

02:24.360 --> 02:27.450
Nhưng ít nhất bây giờ chúng tôi biết những gì chúng tôi đang xây dựng.

02:28.490 --> 02:34.960
Và CNN về mạng lưới xe tự lái sẽ kế thừa từ mô-đun GN.

02:34.970 --> 02:43.040
Vì vậy, hãy nhớ mô-đun DN là những gì chúng tôi đã nhập ở đây và chúng tôi muốn có thể sử dụng tất cả các công cụ của mô-đun động

02:43.040 --> 02:49.010
cơ này và do đó chúng tôi muốn sử dụng kỹ thuật này trong lập trình hướng đối tượng, đó là

02:49.010 --> 02:55.100
sự kế thừa và cho phép chúng tôi, bạn biết đấy, tốt, sử dụng tất cả các công cụ từ một lớp cha.

02:55.100 --> 02:59.240
Và lớp cha này sẽ là một mô-đun RN DOT.

02:59.810 --> 03:00.710
Chúng ta bắt đầu.

03:00.710 --> 03:05.060
Và bây giờ chúng ta có thể sử dụng tất cả các công cụ và đối tượng của mô-đun ghi chú.

03:05.360 --> 03:06.020
Được rồi.

03:06.020 --> 03:11.990
Vì vậy, bây giờ chúng ta đã có thừa kế của mình, chúng ta có thể đi vào lớp để tạo hàm đầu tiên của chúng ta.

03:11.990 --> 03:18.500
Và như bạn có thể đoán, hàm đầu tiên là hàm init sẽ xác định tất cả các biến của các

03:18.500 --> 03:23.390
đối tượng não bộ trong tương lai, các đối tượng CNN sẽ được tạo ra.

03:23.480 --> 03:30.770
Được rồi, chúng ta hãy làm điều này def sau đó đến khóa học này trong nó để gạch dưới một lần nữa và bây giờ chúng ta cần

03:30.770 --> 03:31.850
nhập một số biến.

03:31.850 --> 03:34.640
Vì vậy, đầu tiên, biến đầu tiên sẽ là self.

03:35.150 --> 03:37.250
Đó là tất nhiên để chỉ đối tượng.

03:37.280 --> 03:39.620
Bây giờ tôi đoán bạn khá thoải mái với điều này.

03:39.620 --> 03:45.260
Sau đó, chúng ta sẽ thêm một biến khác, sẽ là số lượng hành động trong môi trường câm.

03:45.260 --> 03:50.000
Vì vậy, chúng tôi sẽ gọi nó là số hành động, một số hành động.

03:50.300 --> 03:54.230
Và thực ra biến này không bắt buộc đối với hàm init.

03:54.230 --> 03:59.690
Chỉ là nếu bạn muốn kiểm tra API mà chúng tôi sẽ xây dựng trên các môi trường khác, thì

03:59.690 --> 04:06.590
điều này sẽ rất thực tế vì chúng tôi sẽ nhập số lượng biến hành động này từ các trình bao bọc môi trường Dhoom

04:06.590 --> 04:08.270
với hai biến rời rạc.

04:08.270 --> 04:13.880
Và khi làm điều đó, bạn biết đấy, nhập tên của môi trường diệt vong bằng 0.

04:13.880 --> 04:20.990
Và vì vậy nếu bạn muốn thử nghiệm với I này trên các môi trường diệt vong khác và chơi trên các trò chơi khác, thì bạn sẽ

04:20.990 --> 04:26.240
không phải làm gì vì số lượng hành động này sẽ trực tiếp lấy số lượng hành động trong môi

04:26.240 --> 04:28.460
trường diệt vong mà bạn sẽ chơi với.

04:28.940 --> 04:32.600
Được rồi, vậy là xong cho hai đối số của hàm init này.

04:32.600 --> 04:36.290
Vì vậy, bây giờ chúng ta có thể vào bên trong và bây giờ hãy nhớ những gì chúng ta phải làm.

04:36.320 --> 04:41.330
Điều đầu tiên chúng ta phải làm là kích hoạt thừa kế với siêu chức năng.

04:41.480 --> 04:43.730
Vì vậy, điều đó hoàn toàn giống với xe tự lái.

04:43.730 --> 04:45.800
Chúng tôi có chức năng siêu.

04:45.890 --> 04:53.000
Sau đó, bên trong chúng ta bắt đầu bằng cách nhập lớp sẽ xác định mạng nơ-ron và đó là CNN.

04:53.450 --> 04:56.930
Sau đó, chúng ta phải nhập self để tham chiếu đến đối tượng.

04:56.930 --> 05:04.970
Nhưng hãy nhớ rằng, đó không phải là tất cả những gì chúng ta cần thêm vào đây một dấu chấm và sau đó là hàm init với một số dấu ngoặc đơn.

05:04.970 --> 05:10.970
Và bằng cách đó, chúng tôi kích hoạt sự kế thừa và bây giờ chúng tôi có thể sử dụng tất cả các công cụ từ mô-đun cuối.

05:11.330 --> 05:17.000
Được rồi, bây giờ tôi nghĩ đã đến lúc xây dựng kiến trúc của mạng nơ-ron.

05:17.000 --> 05:23.120
Và vì vậy, như bạn nhớ, chúng tôi sẽ xây dựng CNN, một mạng nơ-ron phức hợp, đơn

05:23.120 --> 05:30.230
giản vì lần này AI sẽ có mắt và mắt của AI sẽ là các lớp phức hợp của mạng nơ-ron phức

05:30.230 --> 05:31.130
tạp này.

05:31.220 --> 05:38.150
Và sau khi AI trực quan hóa các hình ảnh với các lớp phức hợp, nó sẽ truyền các tín hiệu

05:38.150 --> 05:41.000
vào một mạng nơ-ron nhân tạo cổ điển.

05:41.000 --> 05:46.310
Vì vậy, đó là cái mà chúng tôi đã có trước đây với các lớp được kết nối đầy đủ và đó là nơi nó sẽ cố

05:46.310 --> 05:50.300
gắng dự đoán các giá trị tín hiệu cho mỗi hành động có thể mà chúng tôi có thể chơi.

05:51.020 --> 05:53.540
Vì vậy, bạn có kiến trúc trong tâm trí.

05:53.540 --> 05:58.700
Đầu tiên, chúng ta sẽ có một số lớp phức hợp và sau đó là một số lớp được kết nối hoàn chỉnh và

05:58.700 --> 06:01.100
đây sẽ là bộ não của AI của chúng ta.

06:01.280 --> 06:07.460
Vậy chúng ta sẽ làm gì để có thể lùi lại một bước với những gì chúng ta đang tạo ra?

06:07.460 --> 06:11.450
Chúng ta hãy tạo kiến trúc này với các biến mà chúng ta muốn tạo.

06:11.600 --> 06:18.740
Vì vậy, thực sự, nói về kiến trúc này, chúng ta sẽ xây dựng một CNN với ba lớp phức hợp và sau đó

06:18.740 --> 06:24.200
là một lớp ẩn, điều đó có nghĩa là chúng ta sẽ cần ba kết nối chập và

06:24.200 --> 06:25.940
hai kết nối đầy đủ.

06:25.940 --> 06:29.480
Và nói về kết nối, đó chính xác là những gì chúng ta sắp xác định.

06:29.480 --> 06:32.330
Đó sẽ là các biến của lớp CNN của chúng tôi.

06:32.330 --> 06:37.250
Và do đó, ngay bây giờ, tôi sẽ xác định năm biến, ba cho các kết nối chập và

06:37.250 --> 06:39.080
hai cho các kết nối đầy đủ.

06:39.080 --> 06:40.010
Vì vậy, chúng ta hãy làm điều này.

06:40.010 --> 06:42.530
Chúng ta sẽ bắt đầu với các kết nối phức tạp.

06:42.530 --> 06:48.080
Vì vậy, tôi sẽ gọi chúng là tích chập tự chấm.

06:48.440 --> 06:50.780
Tôi sẽ sao chép nó và.

06:52.360 --> 06:54.890
Pace chúng bên dưới và chúng ta bắt đầu.

06:54.910 --> 06:58.570
Tự chập hai và tự chập ba.

06:58.810 --> 07:01.150
Đó là kết nối chập của chúng tôi.

07:01.150 --> 07:08.380
Vì vậy, phép chập đầu tiên này ở đây sẽ áp dụng một số phép chập cho các hình ảnh đầu vào để có được lớp tích chập

07:08.380 --> 07:11.020
đầu tiên, sau đó là phép tích chập thứ hai.

07:11.020 --> 07:17.230
Hai ở đây sẽ lấy lớp chập đầu tiên làm đầu vào và bằng cách áp dụng lại một số phép chập,

07:17.230 --> 07:19.540
nó sẽ tạo ra lớp chập thứ hai.

07:19.540 --> 07:25.810
Và trong lớp phức hợp này, chúng ta sẽ nhận được một số hình ảnh mới, mỗi hình ảnh trong số họ phát hiện một tính năng cụ thể.

07:25.810 --> 07:28.870
Vì vậy, chúng tôi sẽ nhận được những hình ảnh mới này trong một lớp phức hợp.

07:28.870 --> 07:36.520
Sau đó, chúng tôi sẽ áp dụng tích chập này vào đây để kết nối các hình ảnh mới này từ lớp tích chập đầu tiên này

07:36.520 --> 07:40.210
với một số hình ảnh mới của lớp tích chập thứ hai.

07:40.210 --> 07:46.030
Và những hình ảnh mới này, một lần nữa, sẽ phát hiện một số đặc điểm trong hình ảnh của lớp chập đầu tiên.

07:46.030 --> 07:52.570
Vì vậy, nó chỉ để củng cố tính năng phát hiện và sau đó là các hình ảnh của lớp phức hợp thứ hai.

07:52.570 --> 08:00.160
Chúng tôi áp dụng phép chập thứ ba ở đây để có thêm một số hình ảnh cho mỗi hình ảnh phát hiện nhiều tính năng hơn bên trong

08:00.160 --> 08:01.780
các hình ảnh đầu vào.

08:01.780 --> 08:07.240
Và do đó, chúng tôi càng làm điều này, chúng tôi càng áp dụng một số phức hợp cho các lớp hình ảnh khác nhau.

08:07.270 --> 08:10.210
Chà, chúng tôi càng có thể phát hiện ra một số tính năng.

08:10.210 --> 08:15.460
Và đó là cách bằng cách phát hiện các tính năng, AI sẽ hiểu được quái vật ở đâu, nơi nó

08:15.460 --> 08:18.280
phải bắn để giết chúng và nó sẽ đi đến đâu.

08:18.310 --> 08:23.110
Nó cũng sẽ phát hiện ra các bức tường, các chướng ngại vật, đúng nghĩa là nơi nó phải đi.

08:23.110 --> 08:29.620
Và đó là nhờ những gì mà tất cả các lớp phức hợp này phát hiện được trong các hình ảnh đầu vào ban đầu.

08:30.290 --> 08:30.650
Được rồi.

08:30.650 --> 08:34.910
Vì vậy, đó là phần tích hợp của CNN.

08:34.910 --> 08:42.350
Nhưng sau đó hãy nhớ sau các lớp chập, chúng ta phải làm phẳng tất cả các pixel thu được bằng các chuỗi

08:42.350 --> 08:44.660
chập khác nhau đã được áp dụng.

08:44.660 --> 08:51.350
Và bằng cách làm phẳng tất cả các mảng pixel, chúng ta có được vectơ khổng lồ này sẽ trở thành đầu vào của một

08:51.350 --> 08:53.270
mạng nơ-ron nhân tạo cổ điển.

08:53.270 --> 08:58.250
Và đó là nơi chúng tôi có được các lớp được kết nối đầy đủ của chúng tôi và do đó là các kết nối đầy đủ của chúng tôi.

08:58.430 --> 09:04.580
Và bây giờ những gì chúng ta phải làm là tạo hai biến mới bởi vì chúng ta sẽ có một lớp ẩn trong

09:04.580 --> 09:07.400
mạng nơ-ron nhân tạo cổ điển này xuất hiện tiếp theo.

09:07.400 --> 09:13.340
Và do đó, chúng ta cần một kết nối đầy đủ từ vector phẳng khổng lồ này đến một lớp ẩn này

09:13.340 --> 09:19.220
và một kết nối đầy đủ thứ hai giữa một lớp ẩn này và lớp đầu ra bao gồm các nơ-ron

09:19.220 --> 09:21.440
đầu ra là các giá trị cue.

09:21.680 --> 09:26.870
Vì vậy, hãy tạo các kết nối 2/1 này và sau đó chúng ta sẽ xác định tất cả các kết nối này.

09:26.990 --> 09:35.510
Vì vậy, đối với xe tự lái, chúng tôi sẽ gọi chúng là tự chấm FC một và sau đó tự chấm FC hai.

09:36.080 --> 09:41.030
Được rồi, bây giờ chúng ta có tất cả các biến của mình và vì vậy bây giờ những gì chúng ta phải làm

09:41.030 --> 09:43.820
tất nhiên là xác định chúng với các lớp của mô-đun RN.

09:44.060 --> 09:48.860
Vì vậy, điều đó có nghĩa là về cơ bản chúng ta sẽ tạo ra kiến trúc của mạng nơ-ron và đó là những gì chúng ta

09:48.860 --> 09:50.260
sẽ làm trong hướng dẫn tiếp theo.

09:50.270 --> 09:51.470
Cho đến lúc đó, hãy tận hưởng.

09:51.470 --> 09:51.890
TÔI.
