ComeçarComece gratuitamente

DQN com repetição de experiência

Agora você apresentará o Experience Replay para treinar um agente usando uma Deep Q Network. Você usará o mesmo ambiente do Lunar Lander que usou para construir o seu Barebone DQN.

Em cada etapa, em vez de usar apenas os aprendizados da transição mais recente para atualizar a rede, o buffer Experience Replay permite que o agente aprenda com um lote aleatório de experiências recentes. Isso melhora consideravelmente sua capacidade de aprender sobre o ambiente.

As classes QNetwork e ReplayBuffer dos exercícios anteriores estão disponíveis para você e foram instanciadas da seguinte forma:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

A função describe_episode() também está novamente disponível para descrever as métricas no final de cada episódio.

Este exercício faz parte do curso

Aprendizado por reforço profundo em Python

Ver Curso

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
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Editar e executar código