DRL 학습 루프
에이전트가 환경을 반복적으로 경험하도록 하려면 학습 루프를 구성해야 해요.
많은 DRL 알고리즘은 다음과 같은 핵심 구조를 공유합니다:
- 에피소드를 반복합니다.
- 각 에피소드 내에서 스텝을 반복합니다.
- 각 스텝에서 행동을 선택하고, 손실을 계산한 뒤, 네트워크를 업데이트합니다.
코드가 실행될 수 있도록 자리표시자 select_action()과 calculate_loss() 함수가 제공되어 있어요. 이전 연습 문제에서 정의한 Network와 optimizer도 사용할 수 있습니다.
이 연습은 강의의 일부입니다
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.")