WEBVTT

00:00.150 --> 00:02.370
Xin chào và chào mừng bạn đến với hướng dẫn Python này.

00:02.400 --> 00:06.150
Bây giờ chúng ta phải xác định năm biến của hàm init này.

00:06.150 --> 00:09.420
Đó là ba chập và hai kết nối đầy đủ.

00:09.510 --> 00:11.040
Vì vậy, hãy bắt đầu với cái đầu tiên.

00:11.070 --> 00:15.960
Convolution một áp dụng tích chập cho các hình ảnh đầu vào.

00:15.960 --> 00:17.970
Vì vậy, đó là những hình ảnh ban đầu.

00:17.970 --> 00:22.580
Và bây giờ bạn sẽ thấy mọi thứ sẽ trở nên đơn giản như thế nào để tạo ra tích chập này.

00:22.590 --> 00:29.010
Chà, những gì chúng ta phải làm thực sự là tạo một đối tượng của một số lớp cụ thể, và lớp này

00:29.010 --> 00:32.400
được lấy từ một RN và sau đó các lớp có thể.

00:33.000 --> 00:34.260
Để DH.

00:34.380 --> 00:34.830
Để DH.

00:34.830 --> 00:37.260
Bởi vì chúng tôi đang làm việc với hai hình ảnh DH.

00:37.620 --> 00:40.670
Và bây giờ, như bạn có thể thấy, chúng ta cần nhập một số đối số.

00:40.680 --> 00:45.450
Đầu tiên là trong các kênh, vì vậy hãy đặt nó vào các kênh.

00:45.870 --> 00:48.810
Cái thứ hai là ra khỏi các kênh.

00:49.200 --> 00:56.910
Cái thứ ba là kích thước hạt nhân và phần còn lại của chúng bị phá hủy, độn các nhóm giãn nở và độ lệch.

00:56.910 --> 00:59.040
Và chúng tôi có các giá trị mặc định cho tất cả những giá trị này.

00:59.040 --> 01:00.450
Vì vậy, chúng tôi sẽ không nhập chúng.

01:00.450 --> 01:02.220
Chúng tôi sẽ giữ các giá trị mặc định.

01:02.220 --> 01:07.560
Nhưng điều quan trọng là ba đối số này trong kênh, kênh thay thế và kích thước cột.

01:07.560 --> 01:09.660
Và bạn có đoán chúng tương ứng với những gì không?

01:09.690 --> 01:15.570
Vâng, rất đơn giản trong các kênh tương ứng với đầu vào của tích chập và các kênh alt tương

01:15.570 --> 01:17.670
ứng với đầu ra của tích chập.

01:17.670 --> 01:19.850
Vậy trong các kênh, nó sẽ như thế nào?

01:19.860 --> 01:24.330
Rất đơn giản, đó sẽ là số kênh trong hình ảnh của chúng tôi.

01:24.330 --> 01:29.670
Và trên thực tế, chúng tôi sẽ làm việc với hình ảnh đen trắng vì về cơ bản chúng tôi không cần màu sắc

01:29.670 --> 01:31.230
để nhận ra những con quái vật.

01:31.260 --> 01:36.780
AI hoàn toàn có khả năng nhận dạng những con quái vật bằng màu đen và trắng, vì vậy chúng ta không cần màu sắc.

01:36.780 --> 01:41.550
Nó sẽ chỉ nhận ra chúng bằng hình dạng của chúng và do đó chúng tôi sẽ sử dụng một kênh.

01:41.550 --> 01:46.650
Vì vậy, một kênh là khi bạn có hình ảnh đen trắng và ba kênh là khi bạn có hình ảnh màu.

01:46.650 --> 01:51.270
Và do đó, vì chúng tôi đang làm việc với hình ảnh đen trắng trong các kênh sẽ bằng

01:51.270 --> 01:51.720
một.

01:52.580 --> 01:54.010
Sau đó, các kênh của chúng tôi.

01:54.020 --> 02:00.500
Vì vậy, các kênh của chúng tôi sẽ bằng với các hình ảnh bạn muốn có trong lớp tích chập, là

02:00.500 --> 02:02.750
đầu ra của lớp tích chập này.

02:02.750 --> 02:08.960
Và về cơ bản, con số này bằng với số lượng tính năng bạn muốn phát hiện trong hình ảnh gốc của mình, bởi vì chúng tôi sẽ

02:08.960 --> 02:14.870
tạo một hình ảnh cho mỗi tính năng mà chúng tôi muốn phát hiện vì về cơ bản, bạn biết nó hoạt động như thế nào.

02:14.870 --> 02:21.290
Chúng tôi áp dụng một bộ dò tính năng cho hình ảnh đầu vào để phát hiện một tính năng cụ thể trong hình ảnh đầu vào và do đó

02:21.290 --> 02:23.000
là số lượng hình ảnh đầu ra.

02:23.000 --> 02:25.970
Đây là số lượng tính năng chúng tôi muốn phát hiện.

02:26.210 --> 02:29.990
Vì vậy, bây giờ câu hỏi là chúng ta muốn phát hiện bao nhiêu tính năng?

02:30.020 --> 02:34.640
Thực tế phổ biến là bắt đầu với 32 bộ phát hiện tính năng.

02:34.850 --> 02:41.240
Và điều đó sẽ dẫn chúng ta đến 32 hình ảnh được xử lý trong lớp phức hợp đầu tiên này.

02:41.240 --> 02:45.710
Vì vậy, đầu vào là một hình ảnh đen trắng, một hình ảnh thực.

02:45.710 --> 02:51.200
Và đầu ra trong lớp chập đầu tiên là 32 hình ảnh đã được xử lý.

02:51.200 --> 02:57.530
Và bằng cách xử lý, tất nhiên ý tôi là phép tích chập được áp dụng cho hình ảnh đầu vào để có được 32 hình ảnh

02:57.530 --> 02:59.510
mới với các tính năng được phát hiện.

02:59.960 --> 03:06.440
Và sau đó chúng ta cần chỉ định kích thước hạt nhân, không có gì khác ngoài kích thước của hình

03:06.440 --> 03:09.350
vuông sẽ đi qua hình ảnh ban đầu.

03:09.350 --> 03:16.610
Và trong thực tế phổ biến, chúng tôi sử dụng hai x hai hoặc ba x ba hoặc năm x năm, và đối với cái

03:16.610 --> 03:20.720
đầu tiên, chúng tôi sẽ sử dụng bộ dò tính năng 5 x 5.

03:20.840 --> 03:24.410
Đó là một máy dò tính năng sẽ có 5 x 5 chiều.

03:24.560 --> 03:28.910
Và sau đó chúng ta sẽ giảm kích thước của nhân này cho các lớp tích chập tiếp theo.

03:29.090 --> 03:32.150
Và nói về nó, đây chính xác là những gì chúng ta sẽ làm bây giờ.

03:32.150 --> 03:37.490
Chúng tôi sẽ sao chép điều này để xác định tích chập thứ hai.

03:37.790 --> 03:40.820
Và do đó, tôi đang căn cứ điều đó ở đây và bây giờ.

03:40.820 --> 03:42.080
Nó rất buồn cười và rất dễ dàng.

03:42.080 --> 03:43.280
Nó giống như một quân cờ domino.

03:43.310 --> 03:49.190
Kênh đầu vào của lớp chập thứ hai là kênh đầu ra của lớp chập đầu

03:49.190 --> 03:49.700
tiên.

03:49.700 --> 03:55.250
Vì vậy, số lượng đầu ra 32 ở đây chính là số lượng đầu vào 32 ở đây.

03:55.250 --> 04:01.160
Và đó là bởi vì chúng ta có 32 hình ảnh trong lớp tích chập đầu vào của tích chập thứ hai này.

04:01.160 --> 04:09.770
Và do đó, tích chập thứ hai được áp dụng cho lớp tích chập thứ hai này để trả về lớp tích chập thứ

04:09.770 --> 04:10.280
ba.

04:10.280 --> 04:15.860
Và bây giờ câu hỏi là chúng ta muốn có bao nhiêu hình ảnh mới trong khi cùng một hình ảnh, hãy tạo 32 hình ảnh mới.

04:15.860 --> 04:19.760
32 thực sự là một con số rất phổ biến trong mạng nơ-ron tích tụ.

04:19.760 --> 04:23.630
Nếu bạn nhìn vào các kiến trúc, bạn sẽ tìm thấy 32 trong số đó.

04:23.780 --> 04:29.360
Và đối với phía hạt nhân, chúng ta cần giảm kích thước hạt nhân, đó là kích thước của bộ phát hiện tính

04:29.360 --> 04:30.530
năng của chúng ta.

04:30.530 --> 04:37.400
Và bây giờ chúng ta sẽ đi từ con mắt năm đến con mắt của bốn hoặc thậm chí ba con mắt, và sau đó chúng tôi sẽ đi nhỏ hơn nữa.

04:37.700 --> 04:38.090
Được rồi.

04:38.090 --> 04:40.520
Vì vậy, tích chập thứ hai của chúng tôi đã sẵn sàng.

04:40.580 --> 04:47.750
Nó lấy làm đầu vào, 32 hình ảnh được xử lý, mỗi hình ảnh phát hiện một đặc điểm đầu tiên của hình ảnh đầu

04:47.750 --> 04:48.350
vào gốc.

04:48.350 --> 04:54.650
Và nó tạo ra 32 hình ảnh mới nhờ vào việc giảm kích thước này của bộ dò tính năng.

04:54.890 --> 04:57.140
Và vì vậy bây giờ chúng ta hãy thúc đẩy điều này nhiều hơn nữa.

04:57.140 --> 05:05.120
Vì vậy, tôi đang sao chép cái này và dán cái đó vào đây để tạo một phép chập thứ ba nhằm phát hiện một số tính năng.

05:05.210 --> 05:07.940
Và bây giờ đó là các kênh đầu vào giống nhau.

05:07.940 --> 05:13.640
Đây là số hình ảnh đầu vào ở bên trái của kết nối chập và đó là số hình

05:13.640 --> 05:17.570
ảnh đã xử lý ở bên phải của kết nối chập trước đó.

05:17.580 --> 05:18.620
Vì vậy, đó là 32.

05:18.620 --> 05:19.970
Do đó chúng tôi giữ 32 ở đây.

05:19.970 --> 05:20.900
Thật hoàn hảo.

05:20.900 --> 05:24.950
Và bây giờ câu hỏi đặt ra là chúng ta muốn phát hiện bao nhiêu hình ảnh mới?

05:25.040 --> 05:30.980
Bây giờ chúng tôi sẽ lấy 64 trong đó cho 64 đầu ra, hình ảnh đã xử lý.

05:30.980 --> 05:36.170
Và tất nhiên, bây giờ chúng ta lấy kích thước hạt nhân nhỏ hơn và chúng ta sẽ lấy hai.

05:36.560 --> 05:42.620
Và đó là một kiến trúc rất cổ điển của một lớp phức hợp và rất hiệu quả khi có mức

05:42.620 --> 05:45.620
độ phát hiện tính năng cao bên trong hình ảnh.

05:46.070 --> 05:46.550
Được rồi.

05:46.550 --> 05:52.940
Và bây giờ chúng ta đã có ba lớp tích chập của mình, nhờ ba kết nối tích chập của chúng ta ở đây, tốt, bây giờ

05:52.940 --> 05:57.350
là lúc để có được hai kết nối đầy đủ của chúng ta mà tôi nhắc nhở.

05:57.350 --> 06:04.430
Chúng ta sẽ lấy vectơ khổng lồ này mà chúng ta thu được sau khi làm phẳng tất cả 64 lần, 32 lần 32.

06:04.430 --> 06:07.910
Một lần nữa, những hình ảnh mà chúng tôi nhận được từ tất cả những sự phức tạp này.

06:07.910 --> 06:14.000
Vì vậy, chúng tôi đã làm phẳng tất cả các pixel của những hình ảnh này và chúng tôi có thể có một vectơ khổng lồ sẽ trở thành

06:14.000 --> 06:16.580
đầu vào của một mạng nơ-ron mới được kết nối đầy đủ.

06:16.580 --> 06:21.800
Và đó là lúc chúng ta phải tạo các kết nối đầy đủ này giữa đầu tiên là vectơ khổng lồ này và

06:21.800 --> 06:27.170
một lớp ẩn, sau đó là kết nối đầy đủ thứ hai giữa lớp ẩn và lớp đầu ra bao gồm các nơ-ron đầu

06:27.170 --> 06:31.580
ra, mỗi nơ-ron tương ứng với một giá trị q của giá trị có thể các hành động.

06:31.700 --> 06:33.830
Vì vậy, chúng ta hãy tạo ra hai kết nối đầy đủ này.

06:33.830 --> 06:35.060
Bạn biết làm thế nào để làm điều đó.

06:35.060 --> 06:37.400
Đó chính xác là những gì chúng tôi đã làm cho xe tự lái.

06:37.400 --> 06:38.720
Vì vậy, chúng ta hãy làm điều đó một lần nữa.

06:38.720 --> 06:46.340
Vâng, đầu tiên chúng ta lấy mô-đun RN của mình, sau đó chúng ta lấy lớp tuyến tính bởi vì một lần nữa, kết nối đầy đủ mà chúng ta

06:46.340 --> 06:48.830
tạo là một đối tượng của lớp tuyến tính.

06:49.040 --> 06:52.100
Và sau đó trong dấu ngoặc đơn, tốt, điều đó đầu tiên giống nhau.

06:52.240 --> 06:58.210
Nhập các tính năng đầu vào, đó là số lượng của chúng sau đó là các tính năng đầu ra.

06:58.630 --> 07:03.060
Và các tính năng đầu vào cho kết nối đầy đủ đầu tiên, nó sẽ như thế nào?

07:03.070 --> 07:09.610
Chà, con số đó sẽ bằng số pixel có và vectơ khổng lồ này thu được sau khi làm phẳng tất

07:09.610 --> 07:13.420
cả các hình ảnh được xử lý sau ba lần chập.

07:13.540 --> 07:14.970
Và vậy con số này là bao nhiêu?

07:14.980 --> 07:17.170
Thực ra, có một mẹo nhỏ ở đây.

07:17.220 --> 07:19.390
Con số này thực sự khó có được.

07:19.420 --> 07:22.690
Chúng ta thực sự cần tạo một hàm để tính toán con số đó.

07:22.690 --> 07:25.510
Chúng tôi không có một biến số sẽ cho chúng tôi con số này.

07:25.510 --> 07:26.680
Chúng tôi phải tính toán nó.

07:26.680 --> 07:32.470
Và do đó, những gì chúng ta sẽ làm bây giờ và bây giờ, điều rất quan trọng là phải hiểu tư duy lập trình

07:32.470 --> 07:33.910
mà chúng ta phải có.

07:33.910 --> 07:40.150
Tôi đang cố gắng đưa ra suy nghĩ rằng đó là điều bạn phải nghĩ ngay bây giờ để làm gì để vượt qua trở

07:40.150 --> 07:40.900
ngại này.

07:40.900 --> 07:45.610
Bởi vì lần đầu tiên bạn có thể nói, Này, tôi không có số lượng tế bào thần kinh này trong vectơ dẹt,

07:45.610 --> 07:46.450
tôi phải làm gì?

07:46.450 --> 07:47.500
Tôi bị kẹt ở đây.

07:47.500 --> 07:54.760
Thực ra thì không, bởi vì những gì bạn có thể làm bây giờ chỉ đơn giản là nhập bất kỳ tên nào ở đây sẽ đại diện cho số lượng

07:54.760 --> 07:56.140
tế bào thần kinh này.

07:56.140 --> 07:58.180
Vì vậy, tôi gọi nó là số tế bào thần kinh.

07:58.180 --> 07:59.320
Số lượng tế bào thần kinh.

07:59.320 --> 08:05.620
Và sau đó chúng ta sẽ tạo một hàm sẽ trả về số lượng biến nơ-ron này, số lượng pixel mà chúng

08:05.620 --> 08:07.030
ta đang tìm kiếm.

08:07.120 --> 08:08.800
Vì vậy chúng ta hoàn toàn có thể làm được điều đó.

08:08.800 --> 08:10.540
Chúng ta hoàn toàn có thể đặt biến này.

08:10.540 --> 08:15.970
Tất nhiên, chúng tôi sẽ nhận được cảnh báo vì nó chưa tồn tại, nhưng chúng tôi sẽ tạo nó sau đó

08:15.970 --> 08:20.920
với hàm và chúng tôi hoàn toàn được phép làm điều đó ngay cả khi hàm xuất hiện sau đó.

08:20.920 --> 08:25.780
Vì vậy, đó là một tư duy lập trình điển hình mà bạn phải có khi gặp phải trở ngại đó.

08:25.780 --> 08:28.840
Chà, bạn có thể tạo một hàm để lấy những gì bạn đang thiếu.

08:29.560 --> 08:29.980
Được rồi.

08:29.980 --> 08:36.130
Và sau đó loại bỏ các tính năng và loại bỏ các tính năng, đó là số lượng tế bào thần kinh trong lớp ẩn và thời gian

08:36.130 --> 08:37.720
này là tùy thuộc vào bạn.

08:37.720 --> 08:40.960
Điều đó phụ thuộc vào kiến trúc của mạng nơ-ron mà bạn muốn tạo.

08:40.960 --> 08:44.050
Và do đó, một con số tốt sẽ là một con số nhỏ.

08:44.050 --> 08:46.900
Vì vậy, ví dụ, 40 tế bào thần kinh có thể ổn.

08:46.900 --> 08:48.610
Chúng tôi có thể cố gắng tăng nó.

08:48.610 --> 08:51.100
Nếu quá trình luyện tập không quá chậm, bạn có thể cố gắng tăng lên.

08:51.100 --> 08:53.560
Có thể điều đó sẽ cải thiện các dự đoán.

08:53.560 --> 08:54.760
Nhưng hãy bắt đầu với 40.

08:54.760 --> 08:56.530
Có lẽ chúng tôi sẽ tăng điều đó sau đó.

08:56.950 --> 08:57.280
Được rồi.

08:57.280 --> 08:59.800
Vì vậy, đó là nó cho kết nối đầy đủ đầu tiên.

08:59.800 --> 09:05.290
Sau đó, chúng tôi sẽ sao chép trang này xuống đây cho kết nối đầy đủ thứ hai.

09:05.290 --> 09:09.040
Đó là kết nối giữa lớp ẩn và lớp xuất.

09:09.040 --> 09:15.610
Và do đó, các tính năng bên trong ở đây trở thành các tính năng bên ngoài của lớp trước và đó là 40.

09:15.610 --> 09:17.830
Vì vậy, ở đây chúng tôi đặt 40.

09:18.010 --> 09:22.900
Tất nhiên đó là số lượng tế bào thần kinh trong lớp ẩn và các tính năng của chúng ta ở đây sẽ

09:22.900 --> 09:27.070
bằng số lượng tế bào thần kinh đầu ra cần có trong mạng thần kinh của chúng ta.

09:27.070 --> 09:32.950
Và vì mỗi nơ-ron đầu ra tương ứng với một giá trị khóa và một giá trị khóa tương ứng với một hành động,

09:32.950 --> 09:36.730
nên số lượng nơ-ron đầu ra ở đây tất nhiên là số hành động.

09:36.730 --> 09:39.820
Và chúng tôi có một biến cho điều này, đó là các hành động số.

09:39.820 --> 09:42.970
Và do đó ở đây chúng tôi nhập số.

09:43.880 --> 09:44.750
Các hành động.

09:44.840 --> 09:45.950
Và chúng ta bắt đầu.

09:45.980 --> 09:47.160
Xin chúc mừng.

09:47.180 --> 09:50.540
Chúng tôi đã xác định kiến trúc của mạng nơ-ron của chúng tôi.

09:50.750 --> 09:55.880
Mạng nơ-ron của chúng tôi bao gồm ba lớp chập và một lớp ẩn.

09:55.910 --> 09:59.030
Tất cả điều này trong một CNN lớn và điều này.

09:59.030 --> 10:04.490
CNN sẽ phát hiện các tính năng trong trò chơi để AI biết nó phải làm gì, phải đi

10:04.490 --> 10:06.380
đâu và cần quay ở đâu.

10:06.650 --> 10:08.180
Vì vậy, chúng ta bắt đầu bước này.

10:08.180 --> 10:10.430
Đó là bước đầu tiên rất quan trọng được thực hiện.

10:10.460 --> 10:15.860
Bây giờ chúng ta sẽ chuyển sang bước tiếp theo, tất nhiên là lấy số lượng tế bào thần kinh vẫn

10:15.860 --> 10:16.820
còn thiếu này.

10:16.820 --> 10:18.710
Đó thực sự là lý do tại sao chúng tôi có cảnh báo ở đây.

10:18.710 --> 10:21.720
Không xác định tên số lượng tế bào thần kinh, nhưng đừng lo lắng.

10:21.740 --> 10:26.720
Bây giờ chúng ta sẽ tạo một hàm sẽ trả về số lượng nơ-ron trong vectơ khổng lồ này, và chúng ta

10:26.720 --> 10:30.030
sẽ đặt số đó vào một biến mà chúng ta gọi là nơ-ron số.

10:30.050 --> 10:31.940
Vì vậy, chúng ta hãy làm điều này trong hướng dẫn tiếp theo.

10:31.940 --> 10:33.020
Đó là bước tiếp theo của chúng tôi.

10:33.020 --> 10:34.280
Và cho đến khi đó, hãy tận hưởng.

10:34.280 --> 10:34.640
TÔI.
