Trenowanie podstawowego algorytmu DQN
Czas wytrenować podstawowy algorytm DQN w środowisku Lunar Lander. Pamiętaj, że to wciąż uproszczona wersja algorytmu, więc wyniki nie będą jeszcze imponujące – udoskonalisz go w kolejnych krokach.
Potraktuj to jako pierwszy krok na drodze do wylądowania lądownikiem na Księżycu!
Instancja q_network zdefiniowana wcześniej jest już dostępna.
W trakcie ćwiczeń w tym kursie w środowisku Pythona dostępna jest również funkcja describe_episode(), która wyświetla podsumowanie każdego epizodu i pokazuje, jak poradził sobie agent.
To ćwiczenie jest częścią kursu
Głębokie uczenie ze wzmocnieniem w Pythonie
Instrukcje do ćwiczenia
- Wybierz akcję agenta w wewnętrznej pętli.
- Oblicz stratę.
- Wykonaj krok gradientu, aby zaktualizować wagi sieci.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)