ПочатиПочніть безкоштовно

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)
Редагувати та запускати код