DQN cu Experience Replay
Acum vei introduce Experience Replay pentru a antrena un agent folosind o Rețea Q Profundă (Deep Q Network). Vei utiliza același mediu Lunar Lander ca cel folosit pentru a construi DQN-ul de bază.
La fiecare pas, în loc să folosești doar informațiile din cea mai recentă tranziție pentru a actualiza rețeaua, bufferul de Experience Replay îi permite agentului să învețe dintr-un lot aleatoriu de experiențe recente. Aceasta îmbunătățește considerabil capacitatea sa de a înțelege mediul.
Clasele QNetwork și ReplayBuffer din exercițiile anterioare îți sunt disponibile și au fost instanțiate astfel:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
Funcția describe_episode() este, de asemenea, disponibilă pentru a descrie metricile la finalul fiecărui episod.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)