Tôi đang cố gắng sử dụng Mạng thần kinh để ước tính giá trị Q trong học tập Q như trong Câu hỏi về Q-Learning sử dụng Mạng thần kinh . Như được đề xuất trong câu trả lời đầu tiên, tôi đang sử dụng chức năng kích hoạt tuyến tính cho lớp đầu ra, trong khi tôi vẫn đang sử dụng chức năng kích hoạt sigmoid trong các lớp ẩn (2, mặc dù tôi có thể thay đổi điều này sau). Tôi cũng đang sử dụng một NN duy nhất trả về một đầu ra cho mỗi hành động như được khuyên.
Tuy nhiên, thuật toán vẫn chuyển hướng cho bài toán cân bằng cực đơn giản. Vì vậy, tôi sợ Q-update của tôi sai. Sau khi khởi tạo, những gì tôi đã làm ở mỗi bước như sau:
- Tính toán bằng cách truyền chuyển tiếp NN cho tất cả các hành động.
- Chọn một hành động mới, , hạ cánh ở trạng thái mới .s t
- Tính toán bằng cách sử dụng lan truyền về phía trước của NN cho tất cả các hành động.
- Đặt giá trị Q đích là: chỉ cho hành động hiện tại, a_t , trong khi đặt Q_ {t + 1} (s, a_t) = Q_ {t} (s, a_t) cho các trạng thái khác. Lưu ý, tôi nghĩ rằng đây là vấn đề.
- Đặt vectơ lỗi thành
- Backpropagate lỗi thông qua NN để cập nhật ma trận trọng số.
Bất cứ ai có thể xin vui lòng chỉ cho tôi nơi tôi đã đi sai?
Ngoài ra, bạn có nghĩ rằng tôi nên bao gồm một thuật ngữ thiên vị cũng như trong lớp đầu vào và lớp ẩn đầu tiên (nghĩa là cho các hàm sigmoid)? Nó sẽ làm cho một sự khác biệt?
Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn. Tôi có thể giúp làm rõ câu hỏi hoặc chia sẻ mã nếu cần.