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