Proximal Policy Optimization
- 다른 이름: PPO, PPO-Clip
- 카테고리: Learning & autonomy › RL & simulation
- 태그: reinforcement-learning, policy-gradient, on-policy, robot-learning, sim-to-real, locomotion
작고 클리핑된 단계로 정책을 개선하는 온폴리시 강화 학습 알고리즘으로, 병렬 시뮬레이션에서 로봇의 보행 및 제어 정책을 학습시키는 데 널리 쓰인다.
정의
Proximal Policy Optimization(PPO)는 2017년 OpenAI의 John Schulman과 동료들이 발표한 강화 학습용 정책 경사(policy gradient) 알고리즘이다. PPO는 현재 정책으로 경험 배치를 수집한 뒤, 이점(advantage)이 높은 행동의 확률이 커지도록 정책을 업데이트하는 방식으로 확률적 정책(보통 신경망)을 학습시킨다. 핵심 아이디어는 각 업데이트를 데이터를 수집한 정책 가까이에 유지하는 것으로, 이 덕분에 TRPO 같은 이전 신뢰 영역(trust-region) 방법의 복잡함 없이도 단순한 정책 경사 방법보다 학습이 안정적이다.
가장 잘 알려진 형태의 PPO는 클리핑된 대리 목적 함수(clipped surrogate objective)를 사용한다. 각 행동에 대해 새 정책에서의 그 행동 확률과 이전 정책에서의 확률의 비율을 계산한다. 목적 함수는 이 비율에 이점 추정치를 곱하되, 비율을 1 주변의 작은 구간으로 클리핑하므로, 최적화기는 한 번의 업데이트에서 정책을 너무 멀리 옮겨서 얻는 것이 없다. 이 덕분에 PPO는 같은 데이터 배치로 미니배치 경사 하강을 여러 에폭 수행할 수 있다. 이점은 보통 학습된 가치 함수를 사용하는 일반화 이점 추정(GAE)으로 계산하므로, PPO는 액터-크리틱 방법이다.
PPO는 온폴리시(on-policy) 방법이다. 이전 정책으로 수집한 데이터는 매 업데이트 후 버려진다. 그래서 리플레이 버퍼의 경험을 재사용하는 Soft Actor-Critic 같은 오프폴리시 방법보다 샘플 효율이 낮다. 로봇공학에서는 시뮬레이션에서 학습할 때 이 약점이 덜 중요한데, GPU 기반 시뮬레이터가 수천 개의 환경을 병렬로 실행하여 새로운 데이터의 큰 배치를 빠르게 생성할 수 있기 때문이다. 단순함, 안정성, 병렬 환경에 대한 좋은 확장성 덕분에 PPO는 많은 Sim-to-Real 보행 파이프라인에서 기본 알고리즘이 되었다.
PPO의 결과는 구현 세부 사항에 민감하다. 관측 및 이점 정규화, 학습률 스케줄, 엔트로피 보너스, 가치 함수 클리핑, 네트워크 초기화가 모두 성능에 영향을 준다. 로봇공학 팀은 보통 직접 구현하기보다 충분히 검증된 구현에 의존하며, PPO는 보상이나 시뮬레이터의 어떤 결함이든 악용하므로 보상을 신중하게 설계하고 시뮬레이션 파라미터를 신중하게 무작위화한다.
중요한 이유
PPO는 실제 보행 로봇, 휴머노이드, 정교한 로봇 손에서 얻은 강화 학습 결과의 상당 부분을 뒷받침하는 알고리즘이다. 폭넓은 하이퍼파라미터 범위를 견디고 대규모 병렬 시뮬레이션에 잘 확장되기 때문이다. PPO를 이해하는 것은 대부분의 Sim-to-Real 로봇 학습 연구를 읽거나 재현하기 위한 실질적인 전제 조건이다.
주요 응용
- 다리 보행 — 시뮬레이션에서 4족 보행 로봇과 휴머노이드의 걷기 및 달리기 정책을 학습
- 정교한 조작 — 다지 로봇 손으로 손안에서 물체의 방향을 바꾸는 법을 학습
- 드론 제어 — 민첩한 비행 및 레이싱 정책을 학습
- 전신 제어 — 많은 관절을 동시에 협조시키는 정책을 학습
- 언어 모델 미세 조정 — PPO는 인간 피드백 기반 강화 학습에도 쓰인다
실제 사례
일반적인 팀은 Isaac Lab이나 MuJoCo 같은 GPU 시뮬레이터에서 로봇과 그 관측, 행동, 보상을 정의하고, 수천 개의 병렬 환경을 띄운 뒤, rsl_rl, Stable-Baselines3, skrl 같은 기존 라이브러리로 PPO 정책을 학습시킨다. 각 반복에서는 모든 환경에서 짧은 롤아웃을 수집하고, 이점을 계산하고, 클리핑된 업데이트를 몇 에폭 실행한다. 엔지니어는 에피소드 보상, 에피소드 길이, 정책 엔트로피, 가치 손실을 모니터링하며, 노력의 대부분은 알고리즘 자체보다 보상 항, 커리큘럼, 도메인 무작위화에 들어간다. 학습된 정책은 보통 작은 다층 퍼셉트론이나 순환 신경망이며, 내보내진 뒤 로봇에서 고정된 제어 주기로 실행된다.
흔한 오해
- PPO는 가장 샘플 효율적인 강화 학습(RL) 알고리즘이다 — PPO는 온폴리시 방법으로 이전 데이터를 버리며, 강점은 안정성과 병렬 시뮬레이션에 대한 확장성이다
- PPO는 바로 잘 작동한다 — 성능은 보상 설계, 정규화 및 기타 구현 세부 사항에 크게 좌우된다
- PPO는 이산 행동에만 쓸 수 있다 — 가우시안 정책으로 연속 행동 공간을 다루며, 로봇공학에서는 주로 그렇게 쓰인다
- 클리핑은 단조 개선을 보장한다 — 클리핑은 큰 업데이트를 억제하는 휴리스틱이며, 형식적인 신뢰 영역 보장이 아니다
알아야 할 사람
- 시뮬레이션에서 정책을 학습시키는 로봇 학습 엔지니어
- 보행 로봇과 휴머노이드 로봇을 다루는 보행 연구자
- 심층 강화 학습을 배우는 학생
- 학습 환경을 구축하는 시뮬레이션 엔지니어
관련 기술
- Trust Region Policy Optimization (TRPO)
- 일반화 이점 추정(Generalized Advantage Estimation, GAE)
- Soft Actor-Critic
- Isaac Lab
- MuJoCo
- 도메인 무작위화(Domain Randomization)
관련 용어
관련 프로젝트
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
동영상
- Proximal Policy Optimization Explained: Edan Meyer