Обучение базового 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)