Bắt đầu ngayBắt đầu miễn phí

DQN với experience replay

Bây giờ bạn sẽ thêm Experience Replay để huấn luyện một agent dùng Deep Q Network. Bạn sẽ tiếp tục sử dụng môi trường Lunar Lander như khi xây dựng Barebone DQN trước đó.

Ở mỗi bước, thay vì chỉ dùng kiến thức từ lần chuyển trạng thái mới nhất để cập nhật mạng, bộ đệm Experience Replay cho phép agent học từ một lô (batch) ngẫu nhiên các trải nghiệm gần đây. Điều này cải thiện đáng kể khả năng học về môi trường.

Các lớp QNetworkReplayBuffer từ các bài trước đã có sẵn và được khởi tạo như sau:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

Hàm describe_episode() cũng có sẵn để mô tả các chỉ số ở cuối mỗi episode.

Bài tập này là một phần của khóa học

Deep Reinforcement Learning bằng Python

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Chỉnh sửa và Chạy Mã