시작하기무료로 시작하기

DRL 학습 루프

에이전트가 환경을 반복적으로 경험하도록 하려면 학습 루프를 구성해야 해요.

많은 DRL 알고리즘은 다음과 같은 핵심 구조를 공유합니다:

  1. 에피소드를 반복합니다.
  2. 각 에피소드 내에서 스텝을 반복합니다.
  3. 각 스텝에서 행동을 선택하고, 손실을 계산한 뒤, 네트워크를 업데이트합니다.

코드가 실행될 수 있도록 자리표시자 select_action()calculate_loss() 함수가 제공되어 있어요. 이전 연습 문제에서 정의한 Networkoptimizer도 사용할 수 있습니다.

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

Python으로 배우는 Deep Reinforcement Learning

강의 보기

연습 안내

  • 바깥 루프(에피소드 반복)가 총 10개 에피소드 동안 실행되도록 하세요.
  • 안쪽 루프(스텝 반복)는 에피소드가 완료될 때까지 실행되도록 하세요.
  • select_action()으로 선택한 행동을 env 환경에서 수행하세요.
  • 내부 루프 반복이 끝날 때, 다음 스텝을 시작하기 전에 상태를 업데이트하세요.

실습형 인터랙티브 연습

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

env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
    state, info = env.reset()
    done = False    
    # Run through steps until done
    while ____:
        action = select_action(network, state)        
        # Take the action
        next_state, reward, terminated, truncated, _ = ____
        done = terminated or truncated        
        loss = calculate_loss(network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()        
        # Update the state
        state = ____
    print(f"Episode {episode} complete.")
코드 편집 및 실행