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