7

tôi đã thực hiện Q-Learning như mô tả trong,Các câu hỏi về Q-Learning sử dụng Neural Networks

http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf

Để xấp xỉ. Q (S, A) Tôi sử dụng một cấu trúc mạng thần kinh như sau,

  • kích hoạt sigmoid
  • đầu vào, số lượng đầu vào + 1 cho tế bào thần kinh Action (Tất cả các đầu vào Scaled 0-1)
  • đầu ra, sản lượng duy nhất. Q-Value
  • Số N lớp ẩn.
  • thăm dò phương pháp ngẫu nhiên 0 < rand() < propExplore

Tại mỗi học lặp bằng cách sử dụng công thức sau,

enter image description here

tôi tính toán một giá trị Q-Target sau đó tính toán một lỗi sử dụng,

error = QTarget - LastQValueReturnedFromNN 

và ngược lại truyền bá lỗi h mạng thần kinh.

Q1, Tôi có đi đúng hướng không? Tôi đã thấy một số bài báo thực hiện một NN với một nơron đầu ra cho mỗi hành động.

Q2, chức năng phần thưởng của tôi trả về một con số nằm giữa -1 và 1. Is it ok để trả về một con số nằm giữa -1 và 1 khi chức năng kích hoạt là sigmoid (0 1)

Q3, Từ sự hiểu biết của tôi về phương pháp này cho đủ các trường hợp đào tạo cần được kiểm dịch để tìm ra một chính sách tối ưu? Khi đào tạo cho XOR đôi khi nó học nó sau 2k lặp đi lặp lại đôi khi nó sẽ không tìm hiểu ngay cả sau khi 40k 50k lặp đi lặp lại.

+0

Bạn cũng có thể xem xét việc yêu cầu điều này tại http://datascience.stackexchange.com/ – runDOSrun

+0

Đoán của tôi là câu trả lời là có, có, có, tuy nhiên mạng thần kinh là những con thú phức tạp. Thật dễ dàng để đưa ra các thông số sai, tỷ lệ học tập, số lượng các đơn vị ẩn. Ngược lại, học tập Q dạng bảng là tầm thường để thực hiện và gỡ lỗi. – maxy

+0

@maxy Tabular Q-learning là tầm thường miễn là trạng thái không gian khá nhỏ. – Luke

Trả lời

5

Q1. Sẽ hiệu quả hơn nếu bạn đặt tất cả các tế bào thần kinh hoạt động vào đầu ra. Một thẻ chuyển tiếp đơn sẽ cung cấp cho bạn tất cả các giá trị q cho trạng thái đó. Ngoài ra, mạng thần kinh sẽ có thể khái quát hóa theo một cách tốt hơn nhiều.

Q2. Sigmoid thường được sử dụng để phân loại. Trong khi bạn có thể sử dụng sigmoid trong các lớp khác, tôi sẽ không sử dụng nó trong lần cuối cùng.

Q3. Vâng .. Q-learning với mạng thần kinh nổi tiếng vì không phải lúc nào cũng hội tụ. Hãy xem DQN (deepmind). Những gì họ làm là giải quyết hai vấn đề quan trọng. Họ decorrelate các dữ liệu đào tạo bằng cách sử dụng bộ nhớ phát lại. Stochastic gradient descent không thích khi dữ liệu huấn luyện được đưa ra theo thứ tự. Thứ hai, họ bootstrap bằng cách sử dụng trọng lượng cũ. Bằng cách đó họ giảm không tĩnh.