Zacznij terazZacznij za darmo

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

Zobacz kurs

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)
Edytuj i uruchom kod