WEBVTT

00:00.180 --> 00:02.580
Xin chào và chào mừng bạn đến với hướng dẫn Python này.

00:02.730 --> 00:08.160
Được rồi, vì vậy chúng ta vừa xây dựng kiến trúc của mạng nơ-ron với hàm init của lớp mạng của

00:08.160 --> 00:12.870
chúng ta, và bây giờ chúng ta sẽ tạo một hàm thứ hai, sẽ là hàm chuyển tiếp.

00:12.870 --> 00:15.630
Và đó là chức năng sẽ kích hoạt các tế bào thần kinh.

00:15.630 --> 00:19.200
Đó là, đó là chức năng sẽ thực hiện truyền về phía trước.

00:19.710 --> 00:20.730
Vì vậy, chúng ta hãy làm điều này.

00:20.730 --> 00:25.500
Hãy tạo chức năng này, hãy gọi nó về phía trước, như chúng ta vừa nói.

00:25.500 --> 00:29.420
Và hàm này sẽ nhận hai đối số.

00:29.430 --> 00:34.830
Đầu tiên, như thường lệ, bạn biết đấy, có thể sử dụng các biến của đối tượng vì chúng ta

00:34.830 --> 00:37.250
sẽ sử dụng FC một và FC hai.

00:37.260 --> 00:38.640
Vì vậy, chúng ta cần cái tôi.

00:39.320 --> 00:41.120
Để có thể sử dụng các biến này.

00:41.120 --> 00:46.910
Và sau đó chúng ta sẽ cần đối số thứ hai, là đầu vào của chúng ta, và chúng ta sẽ gọi nó là trạng

00:46.910 --> 00:50.480
thái vì trạng thái chính xác là đầu vào của mạng nơ-ron của chúng ta.

00:50.720 --> 00:54.560
Đó là các trạng thái là đầu vào đi vào mạng nơ-ron.

00:54.560 --> 00:59.720
Và sau đó là kết quả đầu ra, chúng ta sẽ có các giá trị cue mà ba hành động có thể đi sang trái, đi thẳng hoặc

00:59.720 --> 01:00.470
đi sang phải.

01:00.470 --> 01:05.620
Nhưng chúng ta không cần nhập nó làm đối số ở đây vì đó chính xác là những gì chúng ta muốn trả về.

01:05.630 --> 01:11.270
Vì vậy, hàm chuyển tiếp này sẽ không chỉ để kích hoạt các nơ-ron mà còn và chủ yếu là nó sẽ trả về các

01:11.270 --> 01:15.860
giá trị cue cho mỗi hành động có thể xảy ra tùy thuộc vào trạng thái đầu vào ở đây.

01:16.430 --> 01:18.920
Được rồi, đó là hai đối số mà chúng ta cần.

01:18.920 --> 01:24.020
Và bây giờ chúng ta hãy đi vào bên trong hàm và xác định những gì chúng ta muốn nó làm.

01:24.650 --> 01:24.920
Được chứ.

01:24.920 --> 01:30.110
Vì vậy, điều đầu tiên chúng tôi sẽ làm là kích hoạt các nơ-ron ẩn và chúng tôi sẽ

01:30.110 --> 01:32.030
gọi các nơ-ron ẩn bằng biến X.

01:32.030 --> 01:34.550
Vì vậy, X đại diện cho các tế bào thần kinh ẩn.

01:34.550 --> 01:36.620
Và vậy chúng ta sẽ kích hoạt chúng như thế nào?

01:36.650 --> 01:39.890
Tất nhiên, chúng ta sẽ lấy các tế bào thần kinh đầu vào của chúng ta.

01:39.920 --> 01:45.320
Chúng tôi sẽ sử dụng kết nối đầy đủ FC đầu tiên của chúng tôi để lấy các nơ-ron ẩn và sau đó chúng

01:45.320 --> 01:49.430
tôi sẽ áp dụng một chức năng kích hoạt trên chúng, đó sẽ là chức năng chỉnh lưu.

01:49.580 --> 01:51.160
Vì vậy, làm thế nào chúng ta sẽ làm điều đó?

01:51.170 --> 01:59.720
Hãy nhớ rằng chúng tôi đã nhập mô-đun chức năng dot net dot torch có chứa tất cả các chức năng trong PyTorch để triển khai mạng nơ-ron và

01:59.720 --> 02:02.570
chúng tôi đã cung cấp cho nó phím tắt.

02:02.570 --> 02:08.060
F Vì vậy, thực sự những gì chúng ta sẽ làm bây giờ là chúng ta sẽ sử dụng một trong những

02:08.060 --> 02:11.180
hàm này từ mô-đun chức năng và hàm này là hàm thực.

02:11.180 --> 02:12.290
Vậy giá trị là gì?

02:12.320 --> 02:16.370
Giá trị là chức năng chỉnh lưu mà bạn đã thấy trong các bài giảng về trực giác.

02:16.370 --> 02:18.950
Đó chỉ là tên được đặt cho chức năng Chỉnh lưu.

02:18.950 --> 02:26.060
Nhưng vì chức năng này được lấy từ một trong chức năng đó đã được cung cấp phím tắt f nên chúng ta cần nhập vào

02:26.060 --> 02:31.730
đây dấu chấm f trước tiên và sau đó đó là nơi chúng ta có thể sử dụng hàm này.

02:31.730 --> 02:36.140
Và thực ra nếu tôi gõ r e, thì ở đây, chúng ta có hàm giá trị.

02:36.410 --> 02:41.600
Vì vậy, đó là chức năng chỉnh lưu sẽ kích hoạt các nơ-ron ẩn đó là X.

02:41.780 --> 02:46.160
Vì vậy, trong hàm giá trị này bây giờ chúng ta hiểu hoàn toàn những gì chúng ta phải nhập.

02:46.160 --> 02:50.570
Đó là các tế bào thần kinh mà chúng ta muốn kích hoạt, đó là các tế bào thần kinh ẩn.

02:50.570 --> 02:54.290
Và vì vậy, để có được những tế bào thần kinh ẩn này, chúng ta sẽ thực hiện kết nối đầy đủ đầu tiên của chúng ta.

02:54.290 --> 03:01.430
FC One mà chúng ta sẽ áp dụng cho các nơ-ron đầu vào của mình để đi từ các nơ-ron đầu vào đến các nơ-ron ẩn.

03:01.580 --> 03:03.710
Vì vậy, hãy thực hiện kết nối đầy đủ đầu tiên của chúng tôi.

03:03.710 --> 03:07.970
FC one Nhưng kết nối đầy đủ đầu tiên của chúng ta là một biến đối tượng của chúng ta.

03:07.970 --> 03:13.460
Vì vậy, chúng ta cần gõ vào đây trước tiên tự chấm FC một ở đây chúng ta bắt đầu.

03:13.460 --> 03:16.670
Đó là kết nối đầy đủ đầu tiên của mạng nơ-ron của chúng tôi.

03:16.700 --> 03:22.820
Và bên trong kết nối đầu tiên này, chúng ta sẽ nhập các trạng thái đầu vào của mình để đi từ các nơ-ron đầu

03:22.820 --> 03:24.080
vào đến các nơ-ron ẩn.

03:24.170 --> 03:30.530
Và vì chúng tôi đã đặt cho nó trạng thái tên, nên ở đây chúng tôi phải nhập trạng thái và chúng tôi bắt đầu.

03:30.530 --> 03:33.530
Bây giờ chúng ta nhận được các tế bào thần kinh ẩn được kích hoạt.

03:34.390 --> 03:34.900
Được rồi.

03:34.900 --> 03:40.300
Và bây giờ chúng ta đã có các tế bào thần kinh ẩn, chúng ta sẽ trả về các tế bào thần kinh đầu ra.

03:40.420 --> 03:46.180
Vì vậy, dòng tiếp theo và như bạn đã hiểu, các nơ-ron đầu ra tương ứng với các hành động của chúng ta.

03:46.180 --> 03:48.060
Nhưng đây không phải là những hành động trực tiếp.

03:48.070 --> 03:54.190
Đây là những giá trị Q, bởi vì chúng tôi đang xây dựng một mô hình học sâu kết hợp một mô hình học

03:54.190 --> 03:55.840
sâu để tiếp tục học hỏi.

03:55.840 --> 04:00.820
Và do đó, chúng tôi sử dụng khóa học ở đây để nhận các giá trị Q cho mỗi hành động của chúng tôi.

04:00.820 --> 04:05.770
Và sau đó sử dụng max soft hoặc ARG max, chúng ta sẽ có hành động cuối cùng.

04:06.590 --> 04:11.060
Vì vậy, ở đây biến mà tôi sắp giới thiệu sẽ tương ứng với các nơ-ron đầu ra.

04:11.060 --> 04:17.360
Và vì các nơ-ron đầu ra là giá trị Q, nên tôi sẽ gọi biến này là giá trị Q.

04:18.030 --> 04:18.710
Chúng ta bắt đầu.

04:18.720 --> 04:24.470
Vì vậy, các giá trị cue và bây giờ chúng ta trực tiếp nhận kết nối đầy đủ của chúng ta, đó là biến.

04:24.480 --> 04:26.850
FC hai Nhưng một biến từ đối tượng của chúng tôi.

04:26.850 --> 04:28.500
Vì vậy, chúng tôi tự ở đây.

04:28.920 --> 04:34.660
FC hai Và tất nhiên ở đây chúng tôi nhập các nơ-ron của phía bên trái của kết nối này.

04:34.680 --> 04:38.010
Đó là những gì chúng ta nhận được từ dòng đầu tiên, là x.

04:38.010 --> 04:40.600
Vậy X, chúng ta bắt đầu.

04:40.620 --> 04:42.510
Bây giờ chúng tôi nhận được giá trị Q của chúng tôi.

04:42.510 --> 04:45.570
Đó là các nơ-ron đầu ra của mạng nơ-ron của chúng ta.

04:46.800 --> 04:48.700
Và sau đó là dòng mã cuối cùng.

04:48.720 --> 04:55.140
Tất nhiên, hàm thứ tư này được sử dụng để trả về các giá trị Q này, vì vậy chúng ta chỉ cần thêm

04:55.710 --> 04:57.840
một trả về và chỉ cần Q.

04:58.750 --> 05:03.370
Giá trị và điều đó sẽ trả về giá trị Q cho mỗi hành động có thể xảy ra.

05:03.370 --> 05:05.500
Đi sang trái, đi thẳng hoặc đi sang phải.

05:06.240 --> 05:08.280
Được rồi, xin chúc mừng.

05:08.280 --> 05:09.990
Chúng tôi đã hoàn thành với lớp học đầu tiên của chúng tôi.

05:09.990 --> 05:13.440
Và trên thực tế, chúng tôi đã hoàn thành việc tạo ra kiến trúc của mạng nơ-ron.

05:13.470 --> 05:15.390
Hãy nhớ rằng, đây không phải là một công việc đã hoàn thành.

05:15.390 --> 05:19.800
Bạn luôn có thể cải thiện kiến trúc của mạng nơ-ron bằng cách thử các kiến trúc khác nhau.

05:19.800 --> 05:22.710
Vì vậy, hãy thoải mái làm điều đó bằng cách bổ sung thêm nhiều nơ-ron ở đây.

05:22.710 --> 05:28.020
Ví dụ: nếu bạn muốn thêm 50 nơ-ron ẩn, bạn có thể thay thế 30 ở đây và 30

05:28.020 --> 05:30.270
ở đây bằng 50, 50 và 50.

05:30.480 --> 05:34.740
Và sau đó, bạn có thể thêm một số lớp ẩn hơn bằng cách tạo một số kết nối đầy đủ mới.

05:34.740 --> 05:37.440
Chà, đó thực sự là công việc của một nghệ sĩ.

05:37.440 --> 05:41.790
Không có quy tắc chung nào về kiến trúc tốt nhất trong mỗi tình huống.

05:41.790 --> 05:43.620
Vì vậy, đó là lý do tại sao chúng ta phải thử nghiệm.

05:43.620 --> 05:45.780
Nhưng chúng ta hãy thử với điều đó.

05:45.780 --> 05:49.530
Bạn sẽ thấy rằng cuối cùng chúng ta sẽ có được một chiếc xe hơi tự lái khá tốt.

05:50.010 --> 05:50.520
Được rồi.

05:50.520 --> 05:54.570
Và bây giờ chúng ta sẽ thực hiện lớp tiếp theo, đó là về trải nghiệm chơi lại.

05:54.570 --> 05:57.420
Và chúng tôi sẽ thực hiện điều đó trong ba hướng dẫn tiếp theo.

05:57.420 --> 05:58.620
Cho đến lúc đó, hãy tận hưởng.

05:58.620 --> 05:59.160
TÔI.
