시작하기무료로 시작하기

베어본 DQN 훈련하기

이제 Lunar Lander 환경에서 베어본 DQN 알고리즘을 학습시켜 보세요. 아직은 최소한의 알고리즘이라 성능이 아주 좋지는 않겠지만, 이후에 차차 개선해 나가게 됩니다.

달 착륙선을 달에 착륙시키기 위한 첫걸음이라고 생각해 보세요!

앞에서 정의한 q_network 인스턴스를 사용할 수 있습니다.

이 강의의 모든 연습 문제에서는 각 에피소드가 끝날 때 에이전트의 성과를 출력해 주는 describe_episode() 함수가 파이썬 환경에 제공됩니다.

이 연습은 강의의 일부입니다

Python으로 배우는 Deep Reinforcement Learning

강의 보기

연습 안내

  • 내부 루프에서 에이전트의 행동을 선택하세요.
  • 손실을 계산하세요.
  • 네트워크 가중치를 업데이트하기 위해 경사하강 단계를 수행하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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)
코드 편집 및 실행