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

Huấn luyện thuật toán PPO

Bây giờ bạn sẽ dùng vòng lặp huấn luyện A2C quen thuộc để huấn luyện thuật toán PPO.

Vòng lặp này chưa khai thác hết lợi thế của hàm mục tiêu thay thế có cắt (clipped surrogate objective), nên hiệu quả sẽ khó vượt trội A2C; mục tiêu chính là minh họa các khái niệm về hàm mục tiêu thay thế có cắt và entropy bonus mà bạn đã học.

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

  • Loại bỏ entropy bonus khỏi hàm mất mát của actor, dùng giá trị 0.01 cho tham số \(c_{entropy}\).

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
    episode_reward = 0
    step = 0
    while not done:    
        step += 1
        action, action_log_prob, entropy = select_action(actor, state)
        next_state, reward, terminated, truncated, _ = env.step(action)
        episode_reward += reward
        done = terminated or truncated
        actor_loss, critic_loss = calculate_losses(critic, action_log_prob, action_log_prob,
                                                   reward, state, next_state, done)
        # Remove the entropy bonus from the actor loss
        actor_loss -= ____ * ____
        actor_optimizer.zero_grad(); actor_loss.backward(); actor_optimizer.step()
        critic_optimizer.zero_grad(); critic_loss.backward(); critic_optimizer.step()
        state = next_state
    describe_episode(episode, reward, episode_reward, step)
Chỉnh sửa và Chạy Mã