OpenAI Spinning Up — PPO 알고리즘과 슈도코드

OpenAI Spinning Up — PPO 알고리즘과 슈도코드

OpenAI Spinning Up 의 PPO 페이지는 정책 경사 방법을 깔끔하게 정리한 공식 교육 자료예요. 특히 early-stopping을 곁들인 클리핑 방식 PPO 의 슈도코드와 PyTorch/TensorFlow 구현 문서를 제공해요.

PPO의 아이디어

새 정책이 옛 정책에서 너무 멀어지지 않도록 목적 함수의 기여도를 클리핑해, 안정적인 단계를 반복한다. TRPO처럼 복잡한 2차 제약을 쓰지 않아 구현이 단순하다.

슈도코드 핵심

  1. 경험 수집 후 목적 함수를 계산하고, 관성 방향으로 여러 번 경사 스텝을 반복한다.
  2. 비율 r = π_new / π_old 를 구해 클리핑 범위 [1-ε, 1+ε] 로 제한한다.
  3. 근사 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_pytorchspinup.ppo_pytorch(env_fn, actor_critic=..., clip_ratio=0.2, ...) 형태로 호출하고, 저장 모델은 torch.load 로 로드해 액터-크리틱 객체를 얻는다.

더 알아보기