
강화학습 알고리즘의 선택 기준: TRPO / PPO / SAC
요약
강화학습의 대표적인 알고리즘인 TRPO, PPO, SAC의 특징과 차이점을 비교 분석합니다. On-policy와 Off-policy의 개념을 바탕으로 각 알고리즘의 작동 원리와 장단점을 정리하여 상황에 맞는 선택 기준을 제시합니다.
핵심 포인트
- On-policy(TRPO, PPO)는 안정적이지만 데이터 효율이 낮고, Off-policy(SAC)는 효율적이지만 불안정할 수 있음
- TRPO는 KL 다이버전스를 이용해 성능 저하 없는 업데이트를 보장하지만 계산 복잡도가 높음
- PPO는 클리핑 기법을 통해 TRPO의 복잡성을 해결하고 구현 편의성과 강건함을 확보함
- SAC는 리플레이 버퍼를 활용하여 샘플 효율성이 높은 Off-policy 방식임
강화학습을 배우기 시작하면, PPO
TRPO
SAC
와 같은 알고리즘 이름이 많이 등장하여, "결국 무엇을 언제 사용해야 하는가?"라며 고민하기 쉽습니다.
이 기사에서는 대표적인 3가지 알고리즘을 초보자도 이해할 수 있도록 정리하고, 실제 태스크에서 어떻게 선택하면 좋을지에 대한 지침을 정리합니다. 수식은 최소한으로 제한하고, "성격의 차이"와 "선택 방법"에 중점을 두어 설명합니다.
이 기사는 각 알고리즘의 원 논문 (original paper) 을 확인하여 내용을 검증했습니다. 기사 말미에 출처를 정리해 두었으니, 더 깊게 공부하고 싶은 분들은 그쪽도 참고해 주세요.
3가지 알고리즘을 이해하는 데 있어 먼저 파악해 두어야 할 것이 on-policy / off-policy라는 구분입니다. 이 부분이 선택의 가장 중요한 축이 됩니다.
"지금 사용 중인 방책 (policy)으로 수집한 데이터만"을 사용하여 학습하는 방식입니다. 방책을 업데이트하면 그전에 수집한 데이터는 기본적으로 사용할 수 없게 되므로 버립니다.
- 해당:
TRPO, PPO - 성격: 안정적이지만 데이터를 일회성으로 사용하므로 효율은 다소 낮음
과거에 수집한 데이터를 리플레이 버퍼 (replay buffer) 에 저장해 두고, 이를 반복해서 재사용하여 학습하는 방식입니다.
- 해당:
SAC (그 외 DDPG, TD3 등) - 성격: 동일한 샘플 수로도 효율적으로 배울 수 있지만, 거동이 다소 불안정해지기 쉬움
off-policy 기법은 경험 재생 (experience replay)을 통해 일반적으로 샘플 효율이 높다고 알려져 있습니다.
이 차이를 머릿속에 넣은 상태에서 각 알고리즘을 살펴보겠습니다.
TRPO (Trust Region Policy Optimization) 는 2015년에 John Schulman 등이 발표한 기법입니다.
방책 경사법 (policy gradient method)에서는 "업데이트 스텝 크기 (step size)"를 선택하는 것이 어려워, 너무 크게 설정하면 성능이 한꺼번에 붕괴하는 문제가 있었습니다. TRPO는 이를 해결하기 위해 업데이트 전후의 방책 차이를 KL 다이버전스 (KL divergence) 라는 지표로 측정하여, "차이가 일정 이하 (신뢰 영역 = trust region의 내부)"에 들어오도록 제약을 걸면서 업데이트합니다.
이를 통해 단조 개선 (monotonic improvement), 즉 "업데이트할 때마다 성능이 떨어지지 않는다"는 것을 이론적으로 보장할 수 있다는 점이 최대의 장점입니다.
반면 약점도 있습니다. 이 제약을 엄격하게 다루기 위해 2차 근사 (피셔 정보 행렬이나 공액 경사법 등)를 사용할 필요가 있어, 계산량이 무겁고 구현도 복잡합니다. 따라서 대규모 문제에는 스케일링하기 어렵다는 과제가 있습니다.
요약: 이론적인 뒷받침은 강력하지만, 계산 비용과 구현의 무거움이 걸림돌. 다음에 소개할 PPO의 "조상" 격인 위치.
PPO (Proximal Policy Optimization) 는 2017년에 마찬가지로 Schulman 등이 TRPO를 간략화하는 형태로 발표한 기법입니다.
TRPO의 "KL 제약을 엄격하게 지킨다"는 무거운 메커니즘 대신, 클리핑 (clipping) 이라는 단순한 장치를 통해 "방책이 이전과 너무 멀어지지 않도록" 합니다. 대략적으로 말하면, 업데이트 비율이 일정 범위 $[1-\epsilon, \ 1+\epsilon]$를 초과하면 그 이상 업데이트해도 이득이 없도록 브레이크를 거는 아이디어입니다.
이를 통해 TRPO와 같은 복잡한 2차 근사를 사용하지 않고, 심플한 1차 최적화 (일반적인 경사 하강법)만으로 신뢰 영역의 개념을 근사적으로 구현할 수 있습니다.
PPO의 강점은 다음과 같습니다.
구현이 심플하여 다루기 쉬움 -
**하이퍼파라미터에 대해 강건 (robust)**하여, 일단 실행하면 안정적으로 결과가 나오기 쉬움 - 로봇 제어부터 게임 플레이까지 폭넓은 응용 분야에서 사용되는
사실상의 표준 (de facto standard)
원 논문에서도 PPO는 "TRPO의 이점 일부를 가지면서도 구현이 훨씬 용이하고, 경험적으로 샘플 효율도 좋다"고 언급되어 있습니다. 이 때문에 "가장 먼저 시도해 볼 베이스라인"으로서 매우 인기가 높습니다.
요약: TRPO의 장점을 취하면서 실용성을 높인 것. 고민된다면 우선 PPO를 선택하라는 말이 나올 정도의 정석.
SAC (Soft Actor-Critic) 는 2018년에 Tuomas Haarnoja 등이 발표한 off-policy 액터-크리틱 (actor-critic) 기법입니다.
SAC의 특징은 최대 엔트로피 강화학습 (maximum entropy RL) 이라는 프레임워크에 있습니다. 일반적인 강화학습은 '보상의 합계'만을 최대화하지만, SAC는 여기에 더해 방책(policy)의 엔트로피 (= 행동의 무작위성)도 함께 최대화합니다. 논문의 표현을 빌리자면 "태스크를 성공시키면서도, 가능한 한 무작위하게 행동하는 것"을 목표로 합니다.
이 엔트로피 항에는 유익한 효과가 있습니다.
탐색 (exploration) 촉진: 행동에 적절한 무작위성이 남기 때문에 환경을 잘 탐색할 수 있음 -
너무 빠른 수렴 방지: 나쁜 국소 최적해 (local optimum)에 빠지기 어려워짐
또한 SAC는 off-policy 방식이므로 리플레이 버퍼 (replay buffer)를 통해 데이터를 재사용할 수 있어, 샘플 효율 (sample efficiency)이 높다는 점이 큰 무기입니다. SAC의 원 논문에서도 연속 제어 (continuous control) 벤치마크에서 기존의 on-policy / off-policy 기법들을 샘플 효율과 최종 성능 모든 면에서 앞질렀다고 보고되었습니다.
엔트로피의 강도를 결정하는 **온도 파라미터 (temperature $\alpha$)**는 후속 논문 (Haarnoja et al., 2018/2019)에서 자동 조정할 수 있게 되어, 튜닝의 번거로움이 상당히 줄어들었습니다.
주의사항: SAC는 본래 **연속 행동 (continuous action)**을 위해 설계되었습니다. 이산 행동 (discrete action)에 대응하는 변종 (Christodoulou, 2019 등)도 있지만, 이산 행동이라면 PPO를 사용하는 것이 더 직관적입니다.
여기서부터가 본론인 "어떻게 선택할 것인가"입니다. 몇 가지 축으로 정리해 보겠습니다.
이것이 가장 결정적인 판단 기준입니다.
| 상황 | 추천 | 이유 |
|---|---|---|
| 샘플 비용이 높은 경우 (실제 로봇, 느린 시뮬레이터) | SAC | off-policy로 데이터를 재사용하여 적은 시도로 학습 가능 |
| 샘플 비용이 저렴하고 대량 병렬 처리가 가능한 경우 (고속 시뮬레이터, 게임) | PPO | 샘플당 효율은 떨어지지만, 대량의 데이터를 한꺼번에 모아 안정적으로 학습 가능 |
포인트는 "샘플 효율"과 "실제 시간 (wall-clock time)"은 별개라는 점입니다. SAC는 샘플 효율 면에서 앞서지만, off-policy 기법은 실제 실행 시간이 길어지기 쉽다는 지적도 있습니다. 반면 PPO는 다수의 환경을 병렬로 돌릴 수 있는 상황에서는 실제 시간 측면에서 오히려 더 빠를 수 있습니다.
이산 행동 (게임 조작, 선택지 중 선택하는 태스크 등) $\rightarrow$ PPO가 직관적 -
연속 행동 (로봇의 관절 토크 등) $\rightarrow$ 둘 다 사용 가능하지만, SAC의 효율이 빛을 발하는 영역
일반적인 경향으로서 다음과 같은 특징이 알려져 있습니다.
SAC: 초기 학습이 빠르고 샘플 효율이 높음 -
PPO: 안정성이 높고 폭넓은 태스크에서 견고하게 동작함
즉 "빨리 성과를 내길 원한다면 SAC", "안정성 중시 및 대량 병렬 처리가 가능하다면 PPO"라는 관점도 가능합니다 (물론 태스크에 따라 다릅니다).
초심자를 위한 시작점으로 다음과 같이 생각하면 크게 벗어나지 않습니다.
일단 동작시키고 싶다 / 이산 행동 / 대량 병렬 가능 $\rightarrow$ 우선 PPO -
연속 제어에서 샘플 효율이 중요하다 (실제 로봇 등) $\rightarrow$ SAC -
PPO로 시도했으나 샘플 효율이 부족하다 $\rightarrow$ SAC나 TD3 등 다른 off-policy 기법 검토 -
TRPO는 "이론을 배우거나 PPO의 배경을 이해하는" 목적으로 파악해 두기 (실제 구현의 첫 번째 후보가 되는 경우는 적음)
여기서 언급한 지침은 일반적인 경향입니다. 강화학습은 태스크나 환경 설정에 대한 의존도가 매우 높으므로, 최종적으로는 자신의 태스크에서 실제로 시도하고 비교하는 것이 무엇보다 중요합니다.
| 항목 | TRPO | PPO | SAC |
|---|---|---|---|
| 발표 연도 | 2015 | 2017 | 2018 |
| ... |
TRPO: KL 제약 조건을 통해 단조 개선 (monotonic improvement)을 이론적으로 보장하는 원조. 계산량이 무거움. -
PPO: TRPO를 간략화한 실무의 정석. 우선 시도한다면 이것. -
SAC: 엔트로피를 활용한 off-policy 기법. 샘플 효율이 높고 연속 제어에서 강력함.
먼저 PPO로 전체적인 그림을 파악하고, 필요에 따라 SAC를 시도하는 방식이 학습과 실무 모두에서 추천되는 진행 방식입니다.
- Schulman, J., Levine, S., Abbeel, P., Jordan, M., & Moritz, P. (2015). Trust Region Policy Optimization. ICML 2015. https://arxiv.org/abs/1502.05477 - Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347. https://arxiv.org/abs/1707.06347 - Haarnoja, T., Zhou, A., Abbeel, P., & Levine, S. (2018). Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor. ICML 2018 / arXiv:1801.01290. https://arxiv.org/abs/1801.01290 - Haarnoja, T., et al. (2018/2019). Soft Actor-Critic Algorithms and Applications(온도 파라미터 자동 조정). arXiv:1812.05905. https://arxiv.org/abs/1812.05905 - Christodoulou, P. (2019). Soft Actor-Critic for Discrete Action Settings(이산 액션 버전 SAC). arXiv:1910.07207. https://arxiv.org/abs/1910.07207 - OpenAI. Spinning Up in Deep RL — Soft Actor-Critic. https://spinningup.openai.com/en/latest/algorithms/sac.html
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기