PPO(Proximal Policy Optimization) 알고리즘
강화학습의 PPO(Proximal Policy Optimization) 개념을 공부하면서 내 입맛대로 정리한 내용
특징
- 소비했던 데이터를 다시 쓰기(데이터 재사용)
- Episode가 끝난 뒤 결과를 반영하는데 아니라, step단위로 학습에 반영하기
Reinforcement Learning에서의 목표함수 Expected Reward 함수 (최대화)
PPO는 TRPO에서 파생된 알고리즘
TRPO는 이전 스텝의 파라미터($θ_{old}$)와 현재 스텝의 파라미터(θ)간의 차이를 이용하며
이 차이가 매우 클 경우 제한을 주어 신뢰구간(Trust Region)내에서의 업데이트를 수행
- $\pi_\theta$ : stochastic policy
- $A_t$ : 가치를 평가하는 네트워크에 의해 t의 시점에서 추정되는 Advantage
하지만 TRPO에서는 constraint optimization 문제를 해결하는데 컴퓨터에게 많은 연산량을 요구함
TRPO의 단점을 Clipping 기법으로 보완
PPO에서는 surrogate function을 업데이트할 때 신뢰 구간을 강제적으로 Clipping 기법으로 설정함으로써 연산량을 줄임
$\epsilon$ : 하이퍼파라미터
- Continuous action일 때는 0.2 일 때가 가장 성능이 좋음
- Discrete action일 때는 0.1 × α 일 때가 가장 성능이 좋음
- α는 학습률로서 1에서 시작하여 점점 0으로 수렴
- Advantage가 양수라는 것은 가치가 현재보다 높다라는 것이며 파라미터를 양의 방향으로 업데이트
- 상태 s에서 행동 a를 선택할 확률 증가하게 업데이트
- $r_t(\theta)$가 아무리 커져도 $\epsilon$으로 Clipping 함으로써 신뢰구간 내에서 파라미터 업데이트
Advantage가 음수라는 것은 현재보다 가치가 낮다라는 것
상태 s에서 행동 a를 선택할 확률을 떨어뜨리는 방향으로 Clipping 기법으로 신뢰구간 내에서 파라미터를 업데이트
Update Algorithm
Advantage Actor Critic을 업데이트할 때와 같은 방법으로 업데이트 함
PPO에서는 Surrogate Function($L^{CLIP}$)을 최대화하는 방향으로 그리고
Action Entropy($S[\pi_\theta]$)를 최대화 하는 방향으로 Actor 네트워크를 업데이트하며
State-Value($L^{VF}$)의 차이를 최소화 하는 방향으로 Critic 네트워크를 업데이트 함
이를 하나씩 최적화 하는 기법을 기존의 Advantage Actor Critic에서 사용하고 있지만
PPO에서는 하나의 식으로 통합하여 한번에 최적화를 수행
- $c_1$ : Value-State network 최적화 정도
- $c_2$ : Exploration의 정도