Xin chào và chào mừng đến với hướng dẫn này.
Bây giờ chúng ta sẽ tạo một vòng lặp đầy đủ sẽ tính toán tổn thất chính sách và tổn thất giá trị.
Và một khi chúng tôi có hai khoản lỗ này, chúng tôi sẽ có thể sử dụng trình tối ưu hóa của mình để áp dụng
giảm độ dốc ngẫu nhiên để giảm tổn thất.
Được rồi.
Vậy là xong.
Chúng ta bắt đầu ở đây.
Nhân tiện, trong hướng dẫn trước, chúng tôi đã triển khai phần này và tôi đã quên loại bỏ các thụt lề.
Xin lỗi vì điều đó.
Vì vậy, bắt đầu từ r ở đây không có trong vòng lặp for và bây giờ chúng ta đang bắt đầu một vòng lặp for mới.
Vì vậy, tôi bắt đầu ở đây với bốn và bây giờ những gì chúng tôi sẽ làm là chúng tôi sẽ bắt đầu từ
bước cuối cùng đã được thực hiện trong thời gian hết hạn và chúng tôi sẽ lùi lại thời gian.
Vì vậy, đó là lý do tại sao ở đây tôi đang làm bốn Tôi trong phạm vi đảo ngược Len Phần thưởng vì phần thưởng là danh sách.
Và vì mỗi bước của cuộc khám phá được liên kết với một phần thưởng vì ở mỗi bước chúng ta nhận được phần
thưởng khi Len phần thưởng là số bước này và điều này ngược lại ở đây được sử dụng để chúng ta có thể quay ngược thời gian.
Vậy là xong.
Và bây giờ những gì chúng tôi sẽ làm là cập nhật phần thưởng tích lũy là R và chúng tôi sẽ cập nhật nó theo
cách này.
Điều đó thực sự giống như những gì chúng tôi đã làm cho Doom.
Nó sẽ bằng gamma, mà chúng tôi nhận được từ các tham số của mình.
Tôi đang sử dụng các thông số đầu tiên có gamma nhân với R cộng với phần thưởng của bước, mà chúng ta có thể nhận được bằng cách
lấy phần thưởng danh sách và lấy chỉ số cao.
Vì vậy, đầu tiên, đây sẽ là phần thưởng của bước cuối cùng, sau
đó sẽ là phần thưởng của bước trước và v.v. Và mỗi lần chúng tôi cập nhật bằng cách nhân nó với gamma và sau đó cộng phần thưởng này ở
bước này.
Và vì vậy khi làm điều này, hãy nhớ rằng, cuối cùng thì chúng ta cũng sẽ đạt được.
Vì vậy, tôi sẽ viết nó như một bình luận.
Chúng ta sẽ nhận được phần thưởng tích lũy sẽ bằng ở cuối vòng lặp với
r không, phần thưởng của bước 0 cộng với gamma lần r một, phần thưởng của bước đầu tiên cộng với gamma bình phương nhân với
R cho phần thưởng của bước thứ hai cộng với gamma đó cộng với lũy thừa của n trừ đi một lần phần thưởng thu được
ở bước và trừ đi một với n là số bước.
Nhưng sau đó hãy cẩn thận.
Cuối cùng, chúng ta sẽ có gamma theo lũy thừa của số bước.
Nhân lần giá trị giá trị của hàm V được áp dụng cho trạng thái cuối cùng.
Đây là những gì chúng ta sẽ nhận được ở cuối và điều này chúng ta sẽ nhận được điều đó bởi vì hãy nhớ ở đây chúng ta đã lấy giá trị này của bước cuối
cùng vì điều này đã được thực hiện ở cuối vòng lặp for này ở đây.
Và vì vậy chúng tôi đã nhận được giá trị và chúng tôi đặt giá trị của chúng tôi bằng với giá trị đó.
Vì vậy, ngay bây giờ ở đầu vòng lặp thứ hai này ở đây sẽ bằng giá trị này của trạng thái
nhỏ hơn.
Nhưng sau đó, bằng cách này, đây là những gì chúng ta sẽ nhận được cuối cùng hoặc bằng hoặc không cộng với gamma r một cộng với
gamma bình phương hoặc hai cộng gamma với lũy thừa của n trừ một lần phần thưởng ở bước n trừ một cộng với gamma
là lũy thừa của số bước, nhân với giá trị này của trạng thái nhỏ hơn.
Vì vậy, đó là điều chính cần hiểu trong cách tính phần thưởng tích lũy này.
Và đó là lý do tại sao điều quan trọng là phải bắt đầu từ nó bằng cách khởi tạo của chúng tôi với giá trị ở đây và
thực hiện điều này đảo ngược vòng lặp for để có được phương trình cuối cùng này hoàn hảo.
Và bây giờ chúng ta đã có giá trị phù hợp cho phần thưởng tích lũy, chúng ta sẽ tính toán lợi thế.
Và lợi thế ở đây chỉ là lợi thế khi nhận được phần thưởng này so với giá trị.
Vì vậy, tôi sẽ giới thiệu một lợi thế biến mới và do đó nó sẽ bằng phần thưởng tích
lũy này trừ đi giá trị của hàm V thu được ở Bước II.
Vì vậy, đó là lỗi trừ các giá trị tức là hoàn hảo.
Và bây giờ chúng ta có phần thưởng tích lũy và lợi thế, sau đó chúng ta có thể nhận được khoản lỗ giá trị.
Đây là lớp đầu tiên chúng ta có thể nhận được ngay bây giờ, vì vậy chúng ta sẽ lấy biến mất giá trị của mình và biến
này sẽ được cập nhật theo cách sau.
Hãy nhớ cho đến nay rằng tổn thất giá trị đã được khởi tạo bằng 0 và vì vậy chúng
ta sẽ lấy mất giá trị một lần nữa và thêm 0. 5 lần căn bậc hai của lợi thế để chúng ta có thể nhận được nó theo cách này.
Lợi thế chấm POW hai.
Vì vậy, điều đó chỉ có nghĩa là bình phương của lợi thế, lợi thế ở sức mạnh của hai.
Và đó chính xác là tổn thất giá trị, tổn thất được tạo ra bởi các dự đoán về giá trị của đầu ra hàm
V của nhà phê bình.
Và do đó, nó có ý nghĩa rằng đây là mất giá trị bởi vì hãy nhớ lợi ích a của hành động A ở trạng
thái trạng thái là sự khác biệt giữa giá trị Q và giá trị của hàm V.
Và vì vậy, khi chúng ta chơi tốt các pha hành động tối ưu, chúng ta sẽ có được trạng thái tĩnh.
Q tối ưu của hành động tối ưu mà một ngôi sao chơi ở trạng thái như.
Bằng giá trị tối ưu mà chúng tôi lưu trữ của các trạng thái.
Vì vậy, khá trực quan để hiểu rằng khi lợi thế không bằng 0, thì sẽ có sự khác biệt
giữa hai điều này và do đó đó là cách đo lường tổn thất.
Vì vậy, tổn thất giá trị được tính ít hơn một chút.
Bây giờ chúng ta còn một cái nữa để đi.
Đó là sự mất mát về chính sách và đó chính xác là những gì chúng tôi sẽ tính toán ngay bây giờ.
Và để tính toán nó, chúng ta cần xem xét lại ước tính lợi thế tổng quát, bởi vì để tính toán tổn thất chính sách,
chúng ta cần ước tính lợi thế tổng quát và để có được ước tính lợi thế tổng quát, trước tiên chúng
ta cần sự khác biệt theo thời gian của các giá trị trạng thái.
Vì vậy, chúng tôi có nhiều thứ để tính toán ở đây.
Và chúng ta sẽ bắt đầu với sự khác biệt về thời gian này.
Khi chúng tôi có được sự khác biệt theo thời gian, chúng tôi sẽ có được ước tính lợi thế tổng quát.
Và một khi chúng tôi nhận được ước tính lợi thế tổng quát, chúng tôi sẽ nhận được phần thiệt hại về chính sách.
Được rồi.
Vì vậy, hãy bắt đầu với sự khác biệt về thời gian.
T so t bằng phần thưởng của bước II cộng với gamma mà chúng ta nhận được nhờ vào danh sách tham số của chúng ta.
Vì vậy, tham số gamma nhân với giá trị của Bước II cộng với một và chúng tôi thêm dữ liệu đó để truy cập nó
trừ đi giá trị của bước i.
Và chúng tôi cũng thêm dữ liệu đó.
Được rồi.
Vì vậy, đó là công thức của sự khác biệt theo thời gian của các giá trị trạng thái.
Và bây giờ chúng tôi có thể cập nhật lên ước tính lợi thế tổng quát.
Và nó được cập nhật như thế nào khi chúng ta lấy khí của mình và chúng ta nhân nó với tham số gamma, ô thời gian gamma, mà chúng tôi cũng đã truy
cập bằng các tham số của mình.
Vì vậy, chúng tôi lấy ô tham số và chúng tôi thêm sự khác biệt theo thời gian này của các giá trị trạng thái.
Vì vậy, hãy cẩn thận.
Chúng ta đang ở trong một vòng lặp for và mỗi lần chúng ta nhân khí với gamma và với tau và chúng ta cộng thêm sự chênh lệch thời gian.
Vì vậy, điều quan trọng là phải hiểu rằng ở cuối vòng lặp này, tốt, ước
tính lợi thế tổng quát này sẽ bằng với mặt trời trên tất cả các bước của thời gian gamma.
Tau trước sức mạnh của thời đại AI.
Sự khác biệt về thời gian ở từng bước.
Được rồi.
Vì vậy, điều quan trọng cần ghi nhớ.
Và bây giờ chúng ta có lợi thế tổng quát, ước tính và sự khác biệt theo thời gian, cuối cùng chúng ta có thể
tính toán tổn thất chính sách.
Vì vậy, chúng ta hãy làm điều này.
Chúng tôi sẽ cập nhật tổn thất chính sách của mình theo cách sau đây bằng cách lấy tổn thất chính sách cũ và chúng tôi trừ
xác suất log thu được ở Bước II mà chúng tôi nhân với ước tính lợi thế tổng quát này mà chúng tôi phải đưa vào một biến,
vì khi đó chúng tôi sẽ tính toán gradient.
Vì vậy, nó phải được gắn với một gradient trong đồ thị động.
Và sau đó chúng tôi cộng trừ 0. 01 lần entropi, entropi thu được ở bước II trong vòng lặp for.
Và một lần nữa, bây giờ hãy cẩn thận.
Đây là tính toán bên trong vòng lặp for, có nghĩa là khi kết thúc vòng lặp for, những gì
chúng ta sẽ nhận được là mất chính sách.
Bằng tổng trừ qua các bước.
Trong nhật ký sản phẩm của chính sách ở Bước II nhân với ước tính lợi thế tổng quát cộng với 0
này. 01 cái.
Đôi khi entropy ở bậc cao.
Vậy là xong.
Và bây giờ chính sách ở bước là gì?
Tôi tốt đó là xác suất tối đa mềm của các hành động và entropy ở bước.
Tôi Chà, bạn biết đó là gì, đó là những gì chúng tôi đã tính toán trước đó và những gì chúng tôi đã thêm vào danh sách.
Vì vậy, chúng tôi đã có điều đó.
Nhưng chiếc bánh này ở đây là xác suất tối đa mềm của các hành động.
Và tại sao chúng ta lại đặt dấu trừ ở đây?
Đó là bởi vì log của xác suất và entropy là các giá trị âm.
Và vì chúng ta muốn giảm thiểu giá trị tuyệt đối của chúng, chúng ta phải xem điều này cuối cùng là khả năng xảy ra của nhật ký
thay vì khoảng cách.
Bạn biết đấy, chúng tôi muốn tối đa hóa xác suất chơi hành động sẽ tối đa hóa lợi thế.
Đó là toàn bộ ý tưởng đằng sau nó.
Chúng tôi muốn tối đa hóa xác suất chơi hành động sẽ tối đa hóa lợi thế.
Và đối với những người trong số các bạn có thể tự hỏi mục đích của hệ số entropy là hệ số 0
này là gì. 01 đây?
Chà, mục đích của nó chỉ là để tránh rơi quá nhanh vào một cái bẫy trong đó chúng ta có phân phối xác suất
bằng số không cho tất cả các hành động ngoại trừ một hành động có xác suất là một.
Và nếu điều đó xảy ra, điều đó sẽ giảm thiểu entropy.
Vì vậy, đó là lý do tại sao chúng tôi thêm hệ số 0 nhỏ này. 01 ở đây sẽ làm cho entropy tăng lên trong sự
giảm dần gradient.
Được chứ.
Vì vậy, bây giờ tin tốt là phần khó khăn nhất đã được thực hiện.
Chúng tôi có hai khoản lỗ và do đó điều chúng tôi chỉ cần làm bây giờ và chúng tôi đã biết cách làm
là thực hiện giảm độ dốc ngẫu nhiên để giảm hai khoản lỗ này.
Và vì vậy những gì chúng ta sẽ làm bây giờ là thoát ra khỏi vòng lặp này và chúng ta sẽ sử dụng trình tối ưu hóa của mình, công
cụ mà chúng tôi đã tạo riêng.
Sau đó, hãy nhớ rằng, điều đầu tiên chúng ta phải làm là khởi tạo tất cả các tham số gradient về 0.
Và để làm điều này, chúng tôi thêm dấu chấm rồi đến phương pháp lưới không gạch dưới.
Được rồi, vậy là xong.
Bây giờ chúng ta sẽ thực hiện tuyên truyền ngược, nhưng chúng ta sẽ đánh giá tầm quan trọng của chính sách
nhiều gấp đôi so với giá trị bị mất vì tổn thất chính sách nhỏ hơn.
Vì vậy, để làm điều này, chúng ta sẽ đưa vào chính sách dấu ngoặc đơn, dấu gạch dưới mất cộng với 0. Giảm giá trị 5.
Vì vậy, 4. Giảm giá trị gấp 5 lần.
Và chúng tôi sẽ thêm dấu chấm ở đây và chúng tôi đã áp dụng phương pháp quay ngược để thực hiện truyền ngược.
Và nhờ thủ thuật này ở đây với khoản lỗ chính sách cộng với một nửa phần giá trị bị mất, chúng tôi đánh giá tầm quan trọng
của chính sách ít hơn gấp đôi so với giá trị bị mất.
Sau đó, chúng ta sẽ sử dụng một thủ thuật khác, đó là ngăn không cho gradient nhận các giá trị
cực lớn và do đó để tạo ra thuật toán.
Và mẹo để làm điều đó là đầu tiên lấy thư viện ngọn đuốc của chúng ta, sau đó là mô-đun bên trong từ
thư viện ngọn đuốc, sau đó là mô-đun phụ utils.
Và bây giờ chúng ta sẽ sử dụng clip chức năng, gạch dưới điểm số trên tiêu chuẩn điểm số và
chúng ta sẽ nhập các thông số mô hình của mình với đầu vào thứ hai sẽ là 40.
Và thủ thuật đó về cơ bản sẽ đảm bảo rằng gradient sẽ không nhận các giá trị cực lớn và
thuật toán tạo ra.
Và đối với những người trong số các bạn, những người có thể tự hỏi 40 năm này chính xác là gì.
Điều đó chỉ có nghĩa là chúng ta đang sử dụng giá trị này để tiêu chuẩn của gradient nằm trong khoảng từ
0 đến 40.
Và do đó, đó là cách chúng tôi ngăn không cho gradient nhận các giá trị quá lớn.
Vì vậy, bây giờ chúng tôi gần như hoàn thành.
Hãy nhớ rằng, chúng tôi đã thực hiện chức năng đảm bảo chia sẻ này ở đầu tệp, nghĩa là để đảm bảo rằng tác nhân và mô
hình được chia sẻ chia sẻ cùng một gradient và làm điều này để đảm bảo rằng chúng tôi có thể áp dụng chức năng
này tại đây.
Và vì vậy, chúng tôi sẽ thêm các mạng chung đảm bảo để đảm bảo rằng mô hình và mô hình được chia sẻ có cùng
độ dốc.
Được rồi.
Vì vậy, đó chỉ là một biện pháp phòng ngừa.
Tôi không chắc điều đó có hoàn toàn cần thiết hay không, nhưng bạn biết đấy, ít nhất chúng tôi sẽ không gặp bất kỳ vấn đề nào ở đây.
Và cuối cùng, dòng mã cuối cùng, tất nhiên, chúng tôi sẽ thực hiện bước tối ưu hóa để giảm tổn thất
và bạn biết cách thực hiện.
Tất nhiên, chúng tôi sử dụng trình tối ưu hóa của mình và chúng tôi thêm bước đó với dấu ngoặc đơn và chúng tôi bắt đầu.
Quá trình đào tạo bộ não của chúng ta đã kết thúc.
Vì vậy, xin chúc mừng.
Tôi hy vọng điều này không quá áp đảo.
Đừng lo lắng, tôi sẽ cung cấp mã với tất cả các ý kiến.
Vì vậy, nếu bạn bỏ lỡ bất kỳ chi tiết, bạn có thể xem các ý kiến.
Và đừng lo lắng nếu bạn chưa hiểu gì.
Điều này là rất tiên tiến.
Nhưng yên tâm, đây cũng là loại mạnh nhất.
Hãy nhớ rằng, nó được tạo ra từ người tạo ra PyTorch là ai.
Vì vậy, chúng tôi đang thực sự làm việc với những gì tốt nhất ở đây, hiện đại nhất.
Vì vậy, điều đó là hoàn toàn bình thường nếu bạn không đạt được mọi thứ trong lần đầu tiên, nhưng bằng cách làm việc nhiều lần, bạn
chắc chắn sẽ ngày càng cảm thấy thoải mái hơn.
Vì vậy, bây giờ chúng ta đã hoàn thành khóa đào tạo.
Vì vậy, về cơ bản chúng tôi đã làm tất cả những thứ quan trọng nhất.
Bạn biết đấy, chúng tôi đã tạo ra bộ não bằng cách xây dựng kiến trúc của mạng nơ-ron với các lớp chập,
lshtm và các lớp được kết nối đầy đủ.
Chúng tôi đào tạo bộ não này bằng cách tạo mã tàu này ở đây.
Vậy là cơ bản đã xong phần trung tâm của thuật toán.
Bạn đã làm được a3c, xin chúc mừng.
Bây giờ chúng tôi có một số việc phải làm nữa, nhưng đó chỉ là để có được một phần thú vị.
Bạn biết đấy, chúng tôi cần thực hiện thử nghiệm này mà mọi người thất bại, điều này sẽ kiểm tra tác nhân và cung cấp video về
sự đột phá của AI.
Vì vậy, điều này sẽ rất thú vị để xem.
Chúng tôi sẽ không viết mã tất cả các dòng của bài kiểm tra này trên tệp PI vì như chúng tôi đã nói, chúng tôi đã làm điều quan
trọng nhất.
Tôi sẽ liên hệ nó với a3c, nhưng tất nhiên tôi sẽ giải thích mã.
Và cuối cùng chúng ta có tệp da pi chính này sẽ thực thi mã.
Và kể từ thời điểm chúng tôi thực thi mã này, tất cả các mã sẽ được tạo.
Vì vậy, bộ não sẽ được tạo ra, quá trình đào tạo sẽ diễn ra và AI sẽ chơi các trò chơi đột phá mới và chúng
tôi sẽ nhận được tất cả các video.
Vì vậy, tôi không thể chờ đợi để cuối cùng xem chúng.
Chúng ta sẽ xem liệu AI có đủ thông minh để bắt bóng hay không.
Vì vậy, bây giờ tôi sẽ gặp bạn trong hướng dẫn tiếp theo cho bài kiểm tra PI này để chúng ta có thể kiểm tra AI trên một số trò
chơi mới và cho đến lúc đó, hãy tận hưởng AI.