DQN с буфером воспроизведения опыта
Теперь вы добавите механизм воспроизведения опыта (Experience Replay) для обучения агента с помощью глубокой Q-сети. Вы будете использовать ту же среду Lunar Lander, что и при построении базовой DQN.
На каждом шаге вместо того, чтобы обновлять сеть только на основе последнего перехода, буфер воспроизведения опыта позволяет агенту учиться на случайном батче недавних наблюдений. Это существенно улучшает способность агента изучать среду.
Классы 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)