시작하기무료로 시작하기

A2C 알고리즘 학습시키기

이제 A2C 알고리즘으로 Lunar Lander를 학습시켜 볼까요? 필요한 구성 요소는 모두 준비되어 있으니, 이제는 이것들을 하나로 잘 연결하는 일만 남았어요.

Actor와 Critic 네트워크는 각각 actorcritic으로, 그리고 그들의 옵티마이저는 actor_optimizercritic_optimizer로 이미 생성되어 있어요.

REINFORCE에서 사용했던 select_action() 함수와 이전 연습 문제의 calculate_losses() 함수도 여기에서 그대로 사용할 수 있어요.

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

Python으로 배우는 Deep Reinforcement Learning

강의 보기

연습 안내

  • 주어진 상태에서 actor가 행동을 선택하게 하세요.
  • Actor와 Critic 각각의 손실을 계산하세요.

실습형 인터랙티브 연습

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

for episode in range(10):
    state, info = env.reset()
    done = False
    episode_reward = 0
    step = 0
    while not done:
        step += 1
        if done:
            break
        # Select the action
        ____
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        episode_reward += reward
        # Calculate the losses
        ____, ____ = ____(
            critic, action_log_prob, 
            reward, state, next_state, done)        
        actor_optimizer.zero_grad()
        actor_loss.backward()
        actor_optimizer.step()
        critic_optimizer.zero_grad()
        critic_loss.backward()
        critic_optimizer.step()
        state = next_state
    describe_episode(episode, reward, episode_reward, step)
코드 편집 및 실행