Entrenar el barebone DQN

Ha llegado el momento de entrenar un algoritmo Barebone DQN en el entorno del Lunar Lander. Ten en cuenta que aún se trata de un algoritmo básico, por lo que el rendimiento no será muy bueno, pero ya lo mejorarás más adelante.

¡Piensa en ello como el primer paso para conseguir que tu Lunar Lander aterrice en la Luna!

La instancia q_network que definiste anteriormente está a tu disposición.

A lo largo de los ejercicios de este curso, tu entorno Python también incluye una función describe_episode() para imprimir alguna información al final de cada episodio sobre cómo le ha ido al agente.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Selecciona la acción del agente en el bucle interno.
  • Calcula la pérdida.
  • Realiza un paso de descenso de gradiente para actualizar los pesos de la red.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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)