Treinamento do barebone DQN

É hora de treinar um algoritmo do Barebone DQN no ambiente do Lunar Lander. Lembre-se de que esse ainda é um algoritmo simples, portanto, o desempenho não será excelente, mas você poderá aprimorá-lo mais tarde.

Pense nisso como o primeiro passo para fazer com que seu Lunar Lander pouse na Lua!

A instância q_network que você definiu anteriormente está disponível para você.

Ao longo dos exercícios deste curso, seu ambiente Python também vem com uma função describe_episode() para imprimir algumas informações no final de cada episódio sobre como o agente se saiu.

Este exercício faz parte do curso

Aprendizado por reforço profundo em Python

Ver Curso

Instruções de exercício

  • Selecione a ação do agente no loop interno.
  • Calcule a perda.
  • Execute uma etapa de descida de gradiente para atualizar os pesos da rede.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

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)