Huấn luyện DQN bản tối giản
Đến lúc huấn luyện thuật toán DQN bản tối giản trong môi trường Lunar Lander. Hãy nhớ rằng đây vẫn chỉ là phiên bản cơ bản, nên hiệu suất sẽ chưa cao — nhưng bạn sẽ cải thiện dần ở phần sau.
Hãy coi đây là bước khởi đầu để đưa tàu Lunar Lander hạ cánh lên Mặt Trăng!
Thực thể q_network mà bạn đã định nghĩa trước đó hiện có sẵn để sử dụng.
Xuyên suốt các bài tập trong khóa học, môi trường Python của bạn cũng kèm theo hàm describe_episode() để in ra một số thông tin ở cuối mỗi episode về mức độ hoạt động của agent.
Bài tập này là một phần của khóa học
Deep Reinforcement Learning bằng Python
Hướng dẫn bài tập
- Chọn hành động của agent trong vòng lặp bên trong.
- Tính toán loss.
- Thực hiện một bước gradient descent để cập nhật trọng số của mạng.
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
# Select the action
action = ____(____, ____)
next_state, reward, terminated, truncated, _ = (env.step(action))
done = terminated or truncated
# Calculate the loss
loss = ____(q_network, state, action, next_state, reward, done)
optimizer.zero_grad()
# Perform a gradient descent step
loss.____
optimizer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)