ComenzarEmpieza gratis

Entrenamiento del algoritmo PPO

Ahora utilizarás el conocido bucle de entrenamiento A2C para entrenar el algoritmo PPO.

Este bucle de entrenamiento no aprovecha al máximo la función de objetivo sustitutivo recortado, y como resultado este algoritmo no debería funcionar mucho mejor que el A2C; sirve como ilustración de los conceptos aprendidos en torno al objetivo sustitutivo recortado y la prima de entropía.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Elimina la bonificación de entropía de la pérdida de actor, utilizando el valor 0,01 para el parámetro \(c_{entropy}\).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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)
Editar y ejecutar código