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 QNetwork và ReplayBuffer 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
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)