DQN з повторним відтворенням досвіду (Experience Replay)
Тепер ви додасте механізм Experience Replay, щоб тренувати агента за допомогою Deep Q Network. Ви використаєте те саме середовище Lunar Lander, яке застосовували для побудови базового варіанту DQN.
На кожному кроці, замість оновлювати мережу лише на основі останнього переходу, буфер Experience Replay дає змогу агенту навчатися на випадковій вибірці нещодавніх взаємодій. Це суттєво покращує здатність моделі засвоювати властивості середовища.
Класи QNetwork і ReplayBuffer з попередніх вправ доступні та вже створені так:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
Функція describe_episode() також доступна, щоб підбивати підсумкові метрики наприкінці кожного епізоду.
Ця вправа є частиною курсу
Глибоке навчання з підкріпленням у Python
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)