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
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)