Xin chào và chào mừng đến với hướng dẫn này.
Được rồi, chúng tôi vừa tính toán entropy và thêm nó vào danh sách entropy.
Và bây giờ những gì chúng ta sẽ làm là thực hiện rút thăm ngẫu nhiên một hành động theo phân phối xác suất của giá
trị tối đa đã đặt.
Vì vậy, chúng ta hãy làm điều này.
Đó là bước tiếp theo.
Chúng tôi vẫn ở trong vòng lặp vì chúng tôi vẫn đang chạy trên các bước ở đây.
Và vì vậy bây giờ bạn biết cách chơi hành động.
Đầu tiên chúng ta sẽ giới thiệu một biến cho hành động được gọi là action, sau
đó chúng ta lấy phân phối xác suất và chúng ta sẽ sử dụng hàm đa chuẩn để lấy ngẫu nhiên từ phân phối xác
suất này.
Và sau đó chúng tôi thêm dữ liệu đó.
Vì vậy, điều quan trọng cần lưu ý là hành động thực sự sẽ là một tensor chỉ có một giá trị.
Nhưng bạn không nên xem đây là một giá trị đơn giản.
Bạn sẽ thấy đây là một hàng chục thứ nguyên, từng thứ một chứa giá trị này cho hành động.
Và đó là bởi vì nó không được vắt.
Và bây giờ vẫn trong vòng lặp tương tự, chúng ta sẽ lấy xác suất nhật ký liên quan đến hành động vừa
được chơi.
Và vì vậy tôi đang cập nhật xác suất nhật ký của mình ở đây bằng cách lấy cái trước, bài toán nhật ký trước đó mà chúng tôi
đã tính toán ở đây.
Và sau đó tôi sẽ sử dụng phương thức thu thập mà tôi sẽ nhập một và hành động được hiển thị bởi vì
chúng tôi muốn nhận được xác suất nhật ký được liên kết với hành động này.
Và như đối số thứ hai ở đây, tôi sẽ nhập hành động của mình, nhưng đó phải là một biến theo yêu cầu
của hàm getter và hàm tập hợp chỉ lập chỉ mục với số nguyên tensor.
Được rồi.
Vì vậy, bây giờ chúng ta chỉ có phần hỗ trợ nhật ký được liên kết với hành động được hiển thị.
Và bây giờ bước tiếp theo là thêm những gì chúng ta có vào danh sách ở đây.
Vì vậy, chúng tôi đã có giá trị.
Đó là những gì chúng tôi nhận được ở đây như là đầu ra của mô hình.
Sau đó, chúng tôi cũng nhận được bản ghi.
Vì vậy, chúng tôi sẽ thêm cột chống nhật ký vào danh sách đạo cụ nhật ký.
Chúng tôi đã thêm entropy vào danh sách entropy.
Vì vậy, chúng tôi tốt và phần thưởng, chúng tôi sẽ nhận được nó sau đó.
Vì vậy, bây giờ chúng ta sẽ thêm giá trị và phần hỗ trợ nhật ký vào danh sách giá trị và danh sách đạo cụ nhật ký.
Làm thôi nào.
Chúng tôi lấy danh sách các giá trị của chúng tôi.
Chúng tôi nói thêm rằng chúng tôi sử dụng hàm append và chúng tôi thêm giá trị vừa được trả về bởi mô hình.
Hoàn hảo.
Sau đó, tương tự cho các probs nhật ký.
Chúng tôi vừa có các thăm dò nhật ký mới và chúng tôi sẽ thêm nó vào danh sách thăm dò nhật ký.
Và vì vậy trong hàm append này, chúng tôi nhập nhật ký vào đề xuất nhật ký của chúng tôi vừa được tính toán ở đây.
Được rồi.
Vì vậy, danh sách của chúng tôi hiện đã được cập nhật tốt.
Vì vậy, bây giờ những gì chúng tôi sẽ làm là chơi hành động, bởi vì thực sự ngay tại đây, chúng tôi đã chọn
hành động bằng cách lấy ngẫu nhiên từ phân phối xác suất này ở đây.
Nhưng chúng tôi thực sự chưa chơi nó, và chúng tôi sẽ chơi nó ngay bây giờ để chúng tôi có thể đạt đến trạng
thái mới và do đó nhận được đường truyền mới và chơi nó.
Chúng ta sẽ sử dụng môi trường của chúng ta bởi vì chúng ta thực hiện hành động trong môi trường của chúng ta.
Sau đó, chúng tôi sẽ sử dụng phương pháp bước và bên trong chúng tôi chỉ định hành động đã được chọn để chơi nó.
Và để làm điều này, chúng tôi thực hiện hành động của mình và chúng tôi thêm numpy đó bởi vì đó là những gì được mong đợi bởi
hàm bước.
Nhưng điều này trở lại.
Trên thực tế, trạng thái mới và cũng là phần thưởng mới, bởi vì khi đạt đến trạng thái mới, chúng ta nhận được phần thưởng mới và chúng ta cũng
nhận được giá trị mới cho việc hoàn thành để biết liệu trò chơi đã hoàn thành hay chưa.
Được rồi.
Vì vậy, với điều này, chúng tôi chơi hành động, chúng tôi đạt đến trạng thái mới và chúng tôi nhận được phần thưởng mới.
Và chúng tôi biết nếu chúng tôi đã hoàn thành trò chơi.
Và nói về việc hoàn thành trò chơi, thì, chúng tôi sẽ thêm một số thứ ở đây để đảm bảo
rằng một đặc vụ không bị mắc kẹt trong một số trạng thái.
Và để làm điều đó, chúng tôi sẽ cập nhật biến darn theo cách sau.
Chà, coi như xong, hoặc chúng ta sẽ thêm một điều kiện nói rằng tập của trò chơi không nên kéo
dài quá nhiều thời gian.
Và bạn sẽ thấy trong hàm main sẽ có thông số độ dài tập tối đa
sẽ bằng 10.000.
Và chúng tôi không muốn một tập phim kéo dài hơn 10.000 đơn vị.
Vì vậy, chúng tôi sẽ thêm vào đây độ dài tập, là độ dài của một tập và
chúng tôi sẽ viết điều kiện lớn hơn Max.
Độ dài tập.
Chúng ta bắt đầu.
Và thực sự thời lượng tập tối đa, chúng tôi đang lấy nó từ các thông số của mình.
Do đó, tôi thêm vào đây params dot params dot chiều dài tập tối đa.
Vì vậy, điều này có nghĩa là nếu trò chơi đã hoàn thành hoặc thời lượng của tập lớn hơn thời lượng tối đa của tập đã đặt, sẽ bằng
10.000, tốt, trò chơi sẽ kết thúc và chúng ta sẽ bắt đầu một trò chơi
mới.
Vì vậy, đó chỉ là một biện pháp phòng ngừa.
Và nói về đề phòng, chúng ta sẽ thêm một biện pháp phòng ngừa khác.
Đó là để kẹp phần thưởng giữa trừ một và cộng một.
Chúng tôi đã nhận được phần thưởng ở đây, nhưng chúng tôi muốn đảm bảo rằng phần thưởng nằm trong khoảng từ trừ một đến
cộng một.
Và để làm điều này, chúng ta chỉ cần cập nhật phần thưởng bằng cách thực hiện việc này, lấy điểm tối đa, sau đó
lấy phần thưởng cho người đàn ông.
Và một.
Và ở đây chúng tôi lấy giá trị tối đa của phần thưởng tối thiểu là một và trừ đi một.
Và đó là chúng tôi sẽ đảm bảo phần thưởng nằm trong khoảng từ trừ một đến cộng một.
Được rồi.
Vì vậy, một biện pháp phòng ngừa khác.
Và bây giờ chúng tôi chỉ muốn kiểm tra xem trò chơi đã hoàn tất chưa, trong trường hợp đó chúng tôi sẽ khởi động lại môi trường.
Và tại sao chúng ta cần kiểm tra điều đó ngay bây giờ?
Đó là bởi vì chúng tôi vừa đạt đến một trạng thái mới.
Chúng tôi vừa thông qua một đường truyền mới.
Vì vậy, chúng ta cần kiểm tra xem sau khi chuyển đường truyền mới này trong khi trò chơi chưa hoàn tất.
Vì vậy, nếu thực hiện lại, nếu được thực hiện, thì trong trường hợp đó chúng ta sẽ khởi động lại môi trường bằng
cách đặt độ dài tập bằng 0 và trạng thái cũng sẽ được khởi tạo và khởi tạo lại nó.
Chúng tôi sử dụng môi trường của chúng tôi và chúng tôi sử dụng chức năng đặt lại.
Ôi!
Bây giờ chúng ta thoát khỏi tình trạng này.
Đó chỉ là một cuộc kiểm tra.
Và bây giờ những gì chúng ta sẽ làm là kể từ khi chúng ta đạt đến một trạng thái mới, tốt, trạng thái mới này
ngay bây giờ và sau đó là của Ray, bởi vì hãy nhớ rằng, các trạng thái là hình ảnh đầu vào ban đầu được thực hiện bởi các mảng.
Và bây giờ những gì chúng ta phải làm là chuyển đổi trạng thái mới thành một bó đuốc.
Vì vậy, chúng tôi sẽ cập nhật trạng thái của mình và chúng tôi sẽ sử dụng thư viện ngọn đuốc và
tất nhiên là hàm from numpy để chuyển đổi mảng numpy này, xác định các hình ảnh đầu vào thành một bộ căng đuốc.
Hoàn hảo.
Và bây giờ điều cuối cùng chúng ta cần làm trước khi thoát khỏi vòng lặp for này, đó là vòng lặp trên các bước của chúng tôi.
Tất nhiên, đó là để thêm phần thưởng vào danh sách phần thưởng.
Đó là điều cuối cùng cần được cập nhật.
Chúng tôi đã cập nhật tất cả các danh sách ở đây ngoại trừ phần thưởng.
Vì vậy, chúng tôi sẽ làm điều đó ngay bây giờ.
Chúng tôi lấy phần thưởng của mình và chúng tôi sử dụng chức năng nối thêm để nối phần thưởng cuối cùng vừa nhận được.
Hoàn hảo.
Và ngay trước khi thoát ra khỏi vòng lặp, chúng ta chỉ cần thực hiện một lần kiểm tra cuối cùng để kiểm tra điều đó.
Nếu nó được thực hiện, thì chúng tôi muốn dừng khám phá.
Và vì vậy, chúng tôi chỉ đơn giản là sẽ thêm vào đây một khoảng thời gian nghỉ, nghĩa là nếu quá trình này hoàn thành, chúng tôi ngừng khám phá
và chúng tôi trực tiếp chuyển sang bước tiếp theo, đây sẽ là bản cập nhật của mô hình được chia sẻ.
Và bây giờ chúng ta đã hoàn thành với vòng lặp for này.
Bây giờ tác nhân đã thực hiện thăm dò, nó sẽ cập nhật mô hình được chia sẻ và chúng tôi sẽ giải quyết vấn đề
đó trong hướng dẫn tiếp theo.
Cho đến lúc đó, hãy tận hưởng.
TÔI.