1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Deep Reinforcement Learning bằng Python

Connected

Bài tập

Hiện thực thuật toán DQN hoàn chỉnh

Đã đến lúc bắt tay vào làm! Mọi điều kiện tiên quyết đã sẵn sàng; giờ bạn sẽ hiện thực toàn bộ thuật toán DQN và dùng nó để huấn luyện một agent Lunar Lander. Nghĩa là thuật toán của bạn sẽ không chỉ dùng Experience Replay, mà còn có Decayed Epsilon-Greediness và Fixed Q-Targets.

Hàm select_action() hiện thực Decayed Epsilon Greediness đã sẵn sàng để bạn dùng, tương tự như hàm update_target_network() từ bài trước. Việc còn lại là lồng ghép các hàm này vào vòng lặp huấn luyện DQN và đảm bảo bạn dùng đúng Target Network trong phần tính loss.

Bạn cần duy trì một bộ đếm bước mới, total_steps, để giảm dần giá trị của \(\varepsilon\) theo thời gian. Biến này đã được khởi tạo sẵn với giá trị 0.

Hướng dẫn

100 XP
  • Dùng select_action() để hiện thực Decayed Epsilon Greediness và chọn hành động của agent; bạn sẽ cần dùng total_steps, tổng tích lũy qua các episode.
  • Trước khi tính TD target, hãy tắt theo dõi gradient.
  • Sau khi có trạng thái kế tiếp, lấy các Q-Value của trạng thái kế tiếp.
  • Cập nhật target network ở cuối mỗi bước.