Тренування базового DQN
Час натренувати базовий алгоритм DQN у середовищі Lunar Lander. Пам'ятайте: це все ще мінімальна версія алгоритму, тож результативність буде посередньою, але згодом ви її поліпшите.
Сприймайте це як перший крок до того, щоб змусити ваш Lunar Lander успішно сісти на Місяць!
Екземпляр q_network, який ви визначили раніше, уже доступний.
Упродовж вправ цього курсу у вашому середовищі Python також є функція describe_episode(), яка виводить підсумкову інформацію після кожного епізоду про те, як упорався агент.
Ця вправа є частиною курсу
Глибоке навчання з підкріпленням у Python
Інструкції до вправи
- Виберіть дію агента у внутрішньому циклі.
- Обчисліть втрати (loss).
- Виконайте крок градієнтного спуску, щоб оновити ваги мережі.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)