근접 정책 최적화 (PPO) 릴리스 노트 – OpenAI Baselines
TL;DR
OpenAI는 근접 정책 최적화 (PPO)의 출시를 발표했습니다. PPO는 최신 접근법과 동등하거나 더 나은 성능을 보이면서 구현과 튜닝이 훨씬 간단한 새로운 강화 학습 알고리즘이며, 현재 OpenAI에서 기본 RL 알고리즘으로 채택되었습니다.
PPO가 중요한 이유
정책 그라디언트 방법은 학습률 선택에 민감하고 단순한 작업을 학습하는 데 수백만~수십억 단계가 필요합니다. TRPO와 ACER와 같은 기존 제약 업데이트 방법은 이러한 문제를 해결하지만 복잡성을 도입합니다: ACER는 오프‑폴리시 보정과 리플레이 버퍼가 필요하고, TRPO는 공유 파라미터 아키텍처와 쉽게 호환되지 않습니다. PPO는 구현 용이성, 샘플 효율성, 튜닝 단순성 사이의 균형을 제공합니다.
PPO의 핵심 아이디어
PPO는 목표를 개선하면서 이전 정책과의 편차를 작게 유지하는 정책 업데이트를 계산하려고 합니다. 이 알고리즘은 확률적 경사 하강법과 호환되는 신뢰 구역 스타일 업데이트를 가능하게 하는 클리핑된 대리 목표를 사용합니다.
클리핑된 목표 공식
The objective used in PPO is:
$$L^{C L I P} \left(\theta \right) = \left(\hat{E}\right){t} \left[ \min \left(\ r{t} \left(\theta \right) \ \hat{A}{t},\ \text{clip}\left(r{t} \left(\theta \right), 1-\epsilon, 1+\epsilon\right) \hat{A}_{t} \right) \right]$$
where:
- (\theta)는 정책 파라미터입니다.
- (\left(\hat{E}\right)_{t})는 타임스텝에 대한 경험적 기대값입니다.
- (r_{t})는 새로운 정책과 기존 정책의 확률 비율입니다.
- (\left(\hat{A}\right)_{t})는 시간 (t)에서 추정된 어드밴티지입니다.
- (\epsilon)은 하이퍼파라미터이며, 일반적으로 0.1 또는 0.2입니다.
This formulation implements a trust region update without a KL penalty, simplifying the algorithm while maintaining performance.
실험적 성능
테스트에서 클리핑된 PPO 목표는 연속 제어 작업에서 최고의 성능을 보였으며, Atari 벤치마크에서는 ACER의 성능에 거의 근접했지만 구현이 훨씬 간단했습니다.
Baselines 릴리스
OpenAI Baselines 저장소는 이제 MPI를 사용해 데이터 전달을 하는 확장 가능하고 병렬적인 PPO와 TRPO 구현을 포함합니다. 두 구현 모두 Python 3와 TensorFlow용으로 작성되었습니다. Roboschool 에이전트 동물원을 위한 사전 학습된 정책도 제공됩니다.
PPO2 및 ACER 추가
업데이트를 통해 GPU 지원 구현인 PPO2가 도입되었으며, 이는 Atari에서 원래 PPO 베이스라인보다 약 3배 빠르게 실행됩니다. 또한 경험 재생을 활용한 Actor‑Critic (ACER) 구현이 출시되었습니다; ACER는 리플레이 버퍼를 사용해 경험 샘플당 여러 번의 그래디언트 업데이트를 수행하고, Retrace 알고리즘으로 학습되는 Q‑함수 근사기를 포함합니다.
제어 가능한 로봇 시연
PPO로 훈련된 인터랙티브 에이전트가 Roboschool에서 구축되었습니다. 사용자는 키보드를 사용해 로봇의 새로운 목표 위치를 설정할 수 있으며, 입력 시퀀스가 훈련 중 본 것과 다르더라도 정책은 새로운 명령에 일반화됩니다.
기여자 모집
OpenAI는 강화 학습 코드베이스를 구축하고 최적화할 기여자를 찾고 있습니다. 관심 있는 개인은 제공된 링크를 통해 지원하고, 지원서에 baselines PPO 포스트를 읽었다는 언급을 포함해 주세요.
Sources
- OriginalProximal Policy Optimization