WEBVTT

00:00.360 --> 00:02.700
Xin chào và chào mừng đến với hướng dẫn này.

00:02.850 --> 00:06.940
Được rồi, bây giờ chúng ta sẽ triển khai trí tuệ nhân tạo của mình từ đầu.

00:06.960 --> 00:08.790
Chúng ta sẽ gọi nó từng dòng một.

00:08.790 --> 00:12.300
Và trong phần mã đầu tiên này, chúng ta sẽ nhập các thư viện.

00:12.300 --> 00:17.880
Nhưng trước khi chúng ta bắt đầu với phần mã đầu tiên này, tôi muốn giải thích mối liên hệ giữa

00:17.880 --> 00:20.310
AI và bản đồ của chúng ta, tệp P.

00:20.340 --> 00:23.940
Đó là, tại sao chúng tôi triển khai điều này cho bản đồ?

00:23.940 --> 00:27.620
Mục đích của AI của chúng ta là gì và chúng ta sẽ sử dụng nó ở đâu?

00:27.630 --> 00:29.940
Vì vậy, nó thực sự rất đơn giản.

00:29.940 --> 00:38.340
Chúng tôi chỉ làm cho AI của mình để chọn hành động phù hợp vào mỗi thời điểm, vì vậy chúng tôi nhập nội dung trong lớp từ tệp AI của

00:38.340 --> 00:39.030
chúng tôi.

00:39.030 --> 00:47.460
Vì vậy, chúng tôi sẽ tạo lớp tài liệu này trong tệp này, nhưng sau đó chúng tôi nhập nó chỉ để chọn hành động phù hợp

00:47.460 --> 00:49.560
để phát tại mỗi thời điểm.

00:49.590 --> 00:52.830
Và chúng tôi chọn hành động này chính xác tại dòng này.

00:52.860 --> 00:54.900
Hành động tương đương với cập nhật của não.

00:54.900 --> 00:56.910
Phần thưởng ít hơn, tín hiệu ít hơn.

00:56.940 --> 01:00.510
Ít tín hiệu hơn sẽ là đầu vào của mạng nơ-ron.

01:00.930 --> 01:05.880
Nó bao gồm ba tín hiệu của cảm biến, cộng với định hướng và định hướng trừ.

01:05.880 --> 01:07.170
Vì vậy, đó là đầu vào.

01:07.170 --> 01:13.620
Nhưng sau đó đầu ra là hành động để chơi, và đó chỉ là những gì chúng tôi sẽ lấy từ chúng tôi mà tôi cảm thấy rằng chúng

01:13.620 --> 01:14.670
tôi sắp thực hiện.

01:15.060 --> 01:16.230
Vì vậy, hãy ghi nhớ điều đó.

01:16.230 --> 01:17.340
Nó rất đơn giản.

01:17.340 --> 01:26.130
Đầu tiên, chúng tôi nhập lớp từ AI, sau đó chúng tôi tạo bộ não đối tượng từ lớp tài liệu, bộ não này nhận làm đầu vào các

01:26.130 --> 01:32.220
vectơ được mã hóa cho các trạng thái của năm chiều, ba tín hiệu cộng với định hướng cộng với

01:32.220 --> 01:33.570
định hướng trừ đi.

01:33.570 --> 01:36.810
Ba hành động đi trái, đi thẳng hoặc đi phải.

01:36.810 --> 01:42.210
Và sau đó là tham số gamma, đó là tham số duy nhất của lớp mà chúng ta sẽ tạo.

01:42.210 --> 01:49.950
Và sau đó khi chúng tôi tạo đối tượng đó, chúng tôi chọn hành động để chơi trong lớp trò chơi tại mỗi thời điểm.

01:49.950 --> 01:53.670
Và điều đó phụ thuộc vào phần thưởng cuối cùng và tín hiệu cuối cùng, là đầu vào.

01:53.670 --> 02:00.990
Và đó là tất cả mục đích duy nhất của việc tạo ra AI này, đó là để trí tuệ nhân tạo thực sự thực hiện các hành

02:00.990 --> 02:06.630
động phù hợp, mỗi lần di chuyển đúng thay vì có các hành động ngẫu nhiên như chúng ta đã quan sát

02:06.630 --> 02:07.830
trong hướng dẫn trước.

02:08.340 --> 02:09.600
Được rồi, hãy làm điều này.

02:09.600 --> 02:12.510
Hãy triển khai trí tuệ nhân tạo của chúng tôi.

02:12.510 --> 02:17.850
Và như chúng tôi đã nói, chúng tôi sẽ bắt đầu bằng cách nhập tất cả các thư viện sẽ sử dụng để triển khai

02:17.850 --> 02:18.210
nó.

02:18.210 --> 02:20.760
Vì vậy, bằng cách đó chúng tôi sẽ có tất cả các công cụ chúng tôi cần.

02:21.000 --> 02:21.330
Được rồi.

02:21.330 --> 02:22.680
Vì vậy, hãy bắt đầu với cái đầu tiên.

02:22.680 --> 02:25.830
Điều đầu tiên là không thể tránh khỏi.

02:25.830 --> 02:27.360
Thư viện NumPy.

02:27.360 --> 02:28.710
Thư viện NumPy.

02:28.710 --> 02:30.630
Tôi luôn khuyên bạn nên nhập khẩu nó.

02:30.630 --> 02:35.160
Đó là thư viện cho phép chúng ta chơi và làm việc với các mảng.

02:35.370 --> 02:39.900
Và this và B ở đây chỉ là một phím tắt thuận tiện hơn khi chúng ta muốn sử dụng numpy.

02:40.380 --> 02:41.220
Được rồi.

02:41.220 --> 02:43.800
Thư viện thứ hai là ngẫu nhiên.

02:43.800 --> 02:50.460
Vì vậy, đây chỉ là vì chúng tôi sẽ lấy một số mẫu ngẫu nhiên từ các lô khác nhau khi triển khai

02:50.460 --> 02:51.690
phát lại trải nghiệm.

02:51.690 --> 02:54.210
Vì vậy, chúng tôi cũng phải nhập thư viện ngẫu nhiên này.

02:54.630 --> 02:58.070
Sau đó, chúng tôi sẽ nhập PMNM.

02:58.080 --> 03:03.210
Điều đó sẽ chỉ hữu ích khi chúng tôi muốn tải mô hình vì bạn biết đấy, khi mô hình đã sẵn

03:03.210 --> 03:08.610
sàng, chúng tôi sẽ thực hiện một số mã để lưu mô hình và sau đó là một mã khác để tải mô hình.

03:08.610 --> 03:13.950
Đó là khi chúng ta muốn, bạn biết đấy, lưu bộ não và tải bộ não bất cứ khi nào bạn muốn tắt

03:13.950 --> 03:18.810
máy tính và sử dụng lại bộ não đã được đào tạo trước đó cho một số thí nghiệm mới.

03:18.960 --> 03:20.160
Vì vậy, đó là điều quan trọng.

03:20.460 --> 03:27.090
Sau đó, chúng tôi sẽ nhập thư viện ngọn đuốc thiết yếu.

03:27.090 --> 03:32.130
Đó là bởi vì chúng tôi sẽ triển khai mạng nơ-ron của mình với PyTorch, mà tôi khuyên dùng nhiều hơn những

03:32.130 --> 03:36.450
mạng khác dành cho trí tuệ nhân tạo vì nó có thể xử lý các đồ thị động.

03:36.450 --> 03:37.920
Vì vậy, chúng tôi đi với ngọn đuốc.

03:38.310 --> 03:44.880
Sau đó, từ ngọn đuốc, chúng ta sẽ nhập Torch DOT và NW.

03:44.970 --> 03:47.280
Mô-đun NW là mô-đun cần thiết nhất.

03:47.280 --> 03:51.510
Đó là mô-đun chứa tất cả các công cụ để triển khai một số mạng nơ-ron.

03:51.510 --> 03:57.300
Và tất nhiên sẽ có một mạng nơ-ron sâu sẽ nhận ba tín hiệu của ba cảm biến cộng với

03:57.300 --> 04:03.870
định hướng và định hướng trừ, và sẽ trả về khi xuất ra hành động để chơi tốt, thực sự nó sẽ trả

04:03.870 --> 04:07.440
về giá trị Q của các hành động khác nhau .

04:07.440 --> 04:14.220
Và sử dụng giá trị tối đa mềm, chúng tôi sẽ trả lại hành động để chỉ phát một hành động, hành động phù hợp nhất để hoàn thành mục

04:14.220 --> 04:15.030
tiêu khóa học.

04:15.030 --> 04:17.640
Vì vậy, Torsten thiết yếu nhất.

04:17.910 --> 04:24.300
Sau đó, chúng tôi sẽ cung cấp một phím tắt cho chức năng.

04:25.430 --> 04:29.720
Gói từ đây chúng ta đi, gói chức năng từ mô-đun PN.

04:29.720 --> 04:36.080
Vì vậy, gói chức năng này chứa các chức năng khác nhau mà chúng ta sử dụng khi triển khai mạng nơ-ron.

04:36.080 --> 04:42.170
Vì vậy, thông thường, chức năng cuối cùng mà chúng tôi sẽ sử dụng Uber plus vì điều đó cải thiện sự hội

04:42.170 --> 04:47.000
tụ và sự mất mát của Uber được chứa trong mô-đun con chức năng này từ mô-đun GN.

04:47.000 --> 04:53.600
Và vì tất cả những điều này khá dài, chúng ta sẽ tạo cho nó một phím tắt và chúng ta sẽ gọi nó là F một cách đơn giản.

04:54.210 --> 04:57.050
Sau đó, chỉ có ba mô-đun để nhập khẩu còn lại.

04:57.060 --> 05:02.430
Vì vậy, cái tiếp theo là một cái cần thiết khác đã lên.

05:02.430 --> 05:06.720
Tim và chúng tôi lấy nó từ thư viện ngọn đuốc và sau đó lên.

05:06.720 --> 05:08.280
Tim Đó, chúng ta đi.

05:08.580 --> 05:10.650
Và chúng ta hãy gọi nó lên.

05:10.650 --> 05:15.150
Tim thay vì đốt lên Tim Vì vậy, đó là tất nhiên cho trình tối ưu hóa.

05:15.150 --> 05:20.880
Chúng tôi sẽ nhập một số trình tối ưu hóa để thực hiện giảm độ dốc ngẫu nhiên, vì vậy chúng tôi chắc chắn sẽ

05:20.880 --> 05:21.570
cần nó.

05:21.570 --> 05:28.560
Và sau đó chúng ta cần nhập tự động và điều đó chỉ để lấy lớp biến từ grad.

05:28.950 --> 05:31.380
Vì vậy, mục đích của nó là một chút kỹ thuật.

05:31.410 --> 05:38.670
Về cơ bản, chúng ta cần nhập lớp biến để thực hiện một số chuyển đổi từ các cảm biến giống

05:38.670 --> 05:42.930
như các mảng nâng cao hơn sang một biến có chứa gradient.

05:42.930 --> 05:46.470
Vì vậy, nó giống như chúng ta không muốn chỉ có một tensor.

05:46.470 --> 05:50.730
Chúng ta muốn đặt tensor vào một biến cũng sẽ chứa một gradient.

05:50.730 --> 05:56.160
Và để làm điều này, chúng ta cần sử dụng lớp biến để chuyển tensor này thành

05:56.160 --> 05:58.230
một biến chứa tensor và gradient.

05:58.230 --> 06:02.460
Vì vậy, đó là một chút kỹ thuật, nhưng đó là những gì chúng tôi phải làm khi làm việc với PyTorch.

06:02.460 --> 06:08.010
Và chúng ta thực hiện điều này nhờ vào lớp biến, nhưng trước khi nhận được

06:08.160 --> 06:13.860
lớp biến, chúng ta cần nhập theo gradient R2 đó và hãy cung cấp một phím tắt.

06:14.340 --> 06:17.310
Undergrad và sau đó từ.

06:18.300 --> 06:21.060
Ngọn đuốc có chữ ký.

06:22.180 --> 06:25.240
Chúng tôi nhập khẩu bóng chuyền.

06:25.660 --> 06:26.410
Chúng ta bắt đầu.

06:26.410 --> 06:32.800
Và bây giờ chúng tôi có tất cả các thư viện sẽ sử dụng để triển khai API của chúng tôi, vì vậy chúng tôi sẽ không bận tâm đến việc nhập bất

06:32.800 --> 06:33.850
kỳ thư viện nào khác.

06:33.850 --> 06:39.610
Chúng tôi có tất cả các công cụ cần thiết và bây giờ chúng tôi đã sẵn sàng để tạo ra kiến trúc của mạng nơ-ron.

06:39.760 --> 06:42.550
Vì vậy, đó chính xác là những gì chúng ta sẽ làm trong hướng dẫn tiếp theo.

06:42.550 --> 06:43.900
Và cho đến khi đó, hãy tận hưởng.

06:43.900 --> 06:44.470
TÔI.
