OpenAI Spinning Up — PPO 알고리즘과 슈도코드
OpenAI Spinning Up — PPO 알고리즘과 슈도코드
OpenAI Spinning Up 의 PPO 페이지는 정책 경사 방법을 깔끔하게 정리한 공식 교육 자료예요. 특히 early-stopping을 곁들인 클리핑 방식 PPO 의 슈도코드와 PyTorch/TensorFlow 구현 문서를 제공해요.
PPO의 아이디어
새 정책이 옛 정책에서 너무 멀어지지 않도록 목적 함수의 기여도를 클리핑해, 안정적인 단계를 반복한다. TRPO처럼 복잡한 2차 제약을 쓰지 않아 구현이 단순하다.
슈도코드 핵심
- 경험 수집 후 목적 함수를 계산하고, 관성 방향으로 여러 번 경사 스텝을 반복한다.
- 비율
r = π_new / π_old를 구해 클리핑 범위[1-ε, 1+ε]로 제한한다. - 근사 KL이 임계값을 넘으면 조기 종료한다(target_kl~0.01).
전형적 하이퍼파라미터로 clip_ratio≈0.2, pi_lr=3e-4, train_pi_iters≈80, lam≈0.97, gamma≈0.99 가 제시된다.
문서
PyTorch 버전 ppo_pytorch 는 spinup.ppo_pytorch(env_fn, actor_critic=..., clip_ratio=0.2, ...) 형태로 호출하고, 저장 모델은 torch.load 로 로드해 액터-크리틱 객체를 얻는다.