НачатьНачать бесплатно

Обучение базового DQN

Пора обучить базовый алгоритм DQN в среде Lunar Lander. Имейте в виду, что это пока простейшая реализация алгоритма, поэтому результаты будут скромными — но в дальнейшем вы их улучшите.

Считайте это первым шагом на пути к тому, чтобы ваш лунный модуль совершил успешную посадку!

Экземпляр q_network, созданный ранее, уже доступен вам.

Во всех упражнениях этого курса в вашем окружении Python также доступна функция describe_episode() — она выводит сводную информацию о результатах агента в конце каждого эпизода.

Это упражнение является частью курса

Глубокое обучение с подкреплением на Python

Посмотреть курс

Инструкции к упражнению

  • Выберите действие агента во внутреннем цикле.
  • Вычислите функцию потерь.
  • Выполните шаг градиентного спуска для обновления весов сети.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1     
        # Select the action
        action = ____(____, ____)
        next_state, reward, terminated, truncated, _ = (env.step(action))
        done = terminated or truncated
        # Calculate the loss
        loss = ____(q_network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        # Perform a gradient descent step
        loss.____
        optimizer.____
        state = next_state
        episode_reward += reward
    describe_episode(episode, reward, episode_reward, step)
Редактировать и запускать код