Tại sao REINFORCE lại hoạt động?

Aug 15 2020

Đây là ảnh chụp màn hình của thuật toán gradient chính sách phổ biến từ cuốn sách của Sutton và Barto -

Tôi hiểu nguồn gốc toán học của quy tắc cập nhật - nhưng tôi không thể xây dựng trực giác về lý do tại sao thuật toán này nên hoạt động ngay từ đầu. Điều thực sự làm tôi khó chịu là chúng tôi bắt đầu với một chính sách không chính xác (tức là chúng tôi không biết các thông số$\theta$ chưa), và chúng tôi sử dụng chính sách này để tạo các tập và cập nhật do đó.

Tại sao REINFORCE lại hoạt động? Sau cùng, tập mà nó sử dụng cho cập nhật gradient được tạo bằng cách sử dụng chính sách được tham số hóa bởi các tham số$\theta$ vẫn chưa được cập nhật (tập không được tạo bằng chính sách tối ưu - không có cách nào chúng tôi có thể làm điều đó).

Tôi hy vọng rằng mối quan tâm của tôi là rõ ràng và tôi yêu cầu các bạn cung cấp một số trực giác về lý do tại sao điều này hoạt động! Tôi nghi ngờ rằng, bằng cách nào đó , mặc dù chúng tôi đang lấy mẫu một tập từ chính sách sai, chúng tôi tiến gần hơn đến tập đúng sau mỗi lần cập nhật (cải tiến đơn điệu). Ngoài ra, chúng ta có thể tiến gần hơn đến chính sách tối ưu (bộ thông số tối ưu$\theta$) Trung bình.

Vì vậy, những gì thực sự đang xảy ra ở đây?

Trả lời

4 DavidIreland Aug 15 2020 at 21:16

Chìa khóa để REINFORCE hoạt động là cách các thông số được dịch chuyển theo hướng $G \nabla \log \pi(a|s, \theta)$.

Lưu ý rằng $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. Điều này làm cho bản cập nhật khá trực quan - tử số dịch chuyển các tham số theo hướng làm tăng cao nhất xác suất hành động sẽ được lặp lại, với trạng thái, tỷ lệ thuận với lợi nhuận - điều này dễ thấy vì nó về cơ bản là một bước đi lên bươc. Mẫu số kiểm soát các hành động sẽ có lợi thế hơn các hành động khác bởi vì chúng sẽ được chọn thường xuyên hơn, bằng cách chia tỷ lệ nghịch đối với xác suất của hành động được thực hiện; hãy tưởng tượng nếu có phần thưởng cao nhưng hành động vào thời điểm$t$ có xác suất được chọn thấp (ví dụ: 0,1) thì điều này sẽ nhân lợi nhuận với 10 dẫn đến bước cập nhật lớn hơn theo hướng sẽ tăng xác suất hành động này được chọn nhiều nhất (đó là điều mà tử số kiểm soát, như đã đề cập ).

Đó là cho trực giác - để xem lý do tại sao nó không làm việc, sau đó suy nghĩ về những gì chúng tôi đã làm. Chúng tôi đã xác định một hàm mục tiêu,$v_\pi(s)$, mà chúng tôi quan tâm đến việc tối đa hóa với các thông số của chúng tôi $\theta$. Chúng tôi tìm đạo hàm của mục tiêu này đối với các tham số của chúng tôi và sau đó chúng tôi thực hiện tăng độ dốc trên các tham số của mình để tối đa hóa mục tiêu của chúng tôi, tức là để tối đa hóa$v_\pi(s)$, do đó, nếu chúng tôi tiếp tục thực hiện tăng độ dốc thì các tham số chính sách của chúng tôi sẽ hội tụ (cuối cùng) thành các giá trị tối đa hóa $v$ và do đó chính sách của chúng tôi sẽ là tối ưu.