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

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

Xem khóa học

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)
Chỉnh sửa và Chạy Mã