DQN s experience replay
Teď do trénování agenta pomocí Deep Q Network přidáš Experience Replay. Použiješ stejné prostředí Lunar Lander jako při stavbě základního DQN.
Místo toho, aby se síť při každém kroku učila jen z nejnovějšího přechodu, umožňuje buffer Experience Replay agentovi učit se z náhodné dávky nedávných zkušeností. To výrazně zlepšuje jeho schopnost porozumět prostředí.
Třídy QNetwork a ReplayBuffer z předchozích cvičení jsou k dispozici a byly inicializovány takto:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
Funkce describe_episode() je opět k dispozici pro zobrazení metrik na konci každé epizody.
Toto cvičení je součástí kurzu
Deep Reinforcement Learning v Pythonu
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)