Tại sao chúng ta bình thường hóa phần thưởng giảm giá khi thực hiện học tập tăng cường chính sách?


11

Tôi đang cố gắng hiểu cách tiếp cận độ dốc chính sách để giải quyết vấn đề cartpole . Theo cách tiếp cận này, chúng tôi biểu thị độ dốc của tổn thất ghi từng tham số trong chính sách của chúng tôi như là một kỳ vọng về tổng độ dốc của độ dốc chính sách của chúng tôi cho tất cả các hành động, được tính bằng tổng số phần thưởng giảm giá trong chuỗi đó:

θL(θ)=E[G(S0:T,A0:T)t=0Tθlogπθ(At|St)]

và chúng tôi ước tính nó bằng cách sử dụng trung bình theo kinh nghiệm trên tất cả các mẫu trong một tập - điều này có ý nghĩa bằng trực giác.

NHƯNG phần ít trực quan hơn là tôi đã thấy một thực tiễn phổ biến để bình thường hóa lợi thế giữa các tập trong một số triển khai (và thực sự nó hoạt động tốt hơn). Vì vậy, sau khi họ tính toán, họ sẽ không trực tiếp sử dụng lợi thế, mà sẽ bình thường hóa nó, ví dụ như ở đây họ làm sau mỗi tập phim:

discounted_epr = discount_rewards(epr)
discounted_epr -= np.mean(discounted_epr)
discounted_epr /= np.std(discounted_epr)

những gì biện minh cho điều đó - cả về lý thuyết và trực giác? Dường như với tôi rằng nếu một tập phim dài và như vậy có lợi thế lớn, thì đáng để học hỏi nhiều hơn từ tập đó hơn là từ tập 3 di chuyển. Tôi đang thiếu gì?


Bạn có thể thấy câu trả lời này hữu ích: stackoverflow.com/a/56464156/6541879
sg3,14

Câu trả lời:


12

Nói chung, chúng tôi muốn bình thường hóa lợi nhuận cho mục đích ổn định. Nếu bạn thực hiện các phương trình backpropagation, bạn sẽ thấy rằng lợi nhuận ảnh hưởng đến độ dốc. Vì vậy, chúng tôi muốn giữ các giá trị của nó trong một phạm vi thuận tiện cụ thể. Chúng tôi không tuân theo thực tiễn này để đảm bảo lý thuyết nhưng vì lý do thực tế. Cùng đi với cắt chức năng giá trị trong Q-learning kết hợp với NNS. Tất nhiên, có một số nhược điểm với các cách tiếp cận này nhưng nhìn chung thuật toán hoạt động tốt hơn vì việc truyền ngược không dẫn đến trọng số mạng của bạn đến các giá trị cực đoan. Xin hãy xem bài viết xuất sắc này của Andrej Karpathy (Tôi đính kèm phần liên quan đến câu hỏi của bạn dưới dạng một blockquote) cung cấp thêm thông tin chi tiết:Q

Nhiều chức năng lợi thế chung. Tôi cũng hứa sẽ thảo luận thêm một chút về lợi nhuận. Cho đến nay chúng tôi đã đánh giá sự tốt đẹp của mỗi hành động cá nhân dựa trên việc chúng tôi có thắng trò chơi hay không. Trong cài đặt RL tổng quát hơn, chúng tôi sẽ nhận được một số phần thưởng mỗi lần. Một lựa chọn phổ biến là sử dụng phần thưởng được giảm giá, do đó, phần thưởng cuối cùng của trong sơ đồ trên sẽ trở thành , trong đó là một số trong khoảng 0 và 1 được gọi là hệ số chiết khấu (ví dụ 0,99). Biểu thức nói rằng sức mạnh mà chúng tôi khuyến khích một hành động được lấy mẫu là tổng trọng số của tất cả các phần thưởng sau đó, nhưng phần thưởng sau đó ít quan trọng hơn theo cấp số nhân. Trong thực tế, nó cũng có thể quan trọng để bình thường hóa những điều này. Ví dụ: giả sử chúng ta tính toánrtRt= =Σk= =0γkrt+kγRt cho tất cả 20.000 hành động trong lô 100 lần giới thiệu trò chơi Pông ở trên. Một ý tưởng hay là để tiêu chuẩn hóa các lợi nhuận này (ví dụ: trừ trung bình, chia cho độ lệch chuẩn) trước khi chúng tôi cắm chúng vào backprop. Bằng cách này, chúng tôi luôn khuyến khích và khuyến khích khoảng một nửa các hành động được thực hiện. Về mặt toán học, bạn cũng có thể diễn giải các thủ thuật này như một cách kiểm soát phương sai của công cụ ước tính độ dốc chính sách. Một khám phá sâu hơn có thể được tìm thấy ở đây.


Tôi không quen thuộc với ký hiệu trích dẫn khối và tôi không muốn OP bị lạc trong blog dài. Tôi sẽ chỉnh sửa câu trả lời. Xin lỗi vì điều này!
Constantinos

Bạn có thể vui lòng giải thích lý do tại sao nó có ý nghĩa để bình thường hóa TẠI MỌI HÌNH THỨC ĐỘC LẬP? Tôi đã xây dựng câu hỏi ở đây ai.stackexchange.com/questions/10196/ và thực sự đánh giá cao một câu trả lời Cảm ơn!
Gulzar

0

Bạn có thể thấy các tài liệu tham khảo sau hữu ích:

  • Mục 4.1.2 Bình thường hóa lợi thế : Họ đề cập rằng bình thường hóa lợi thế là một mẹo hữu ích cho đào tạo. Nó thường dẫn đến kết quả học tập nhanh hơn.
  • Học các giá trị theo nhiều bậc độ lớn : Chúng đưa ra một thuật toán để bình thường hóa phần thưởng và đưa ra thử nghiệm chi tiết trên môi trường Atari. Ý tưởng cơ bản là phần thưởng có thể thay đổi trong phạm vi độ lớn và các hàm xấp xỉ hàm được sử dụng trong RL (như mạng nơ ron) thường không bất biến đối với thang đo của đầu vào. Vì vậy, bình thường hóa trở thành một bước quan trọng. Hãy kiểm tra giấy này để biết thêm chi tiết.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.