PPO

김태원·2026년 2월 9일

논문

목록 보기
5/6

다음 내용은, PPO 논문을 읽으면서 gemini 에게 질문한 내용을 qa set 으로 정리한 내용입니다. (복기용)

1. PPO의 기본 개념

Q. 논문에서 말하는 "Policy Gradient Methods"는 정확히 무엇을 업데이트하는 것인가?

말 그대로 PM 모델(Policy Model, 정책 신경망)을 직접 업데이트하는 방법론입니다.

  • Value-based (DQN 등): 가치(QQ)를 배워서 행동을 결정함.
  • Policy-based (PPO 등): 보상을 최대화하는 방향으로 신경망 파라미터(θ\theta)를 직접 미분(Gradient Ascent)하여 업데이트함.

Q. PPO는 기존 알고리즘(DQN, Vanilla PG, TRPO)과 무엇이 다른가?

PPO는 "안전하면서도(TRPO), 구현이 쉽고(Vanilla PG), 효율적인" 알고리즘입니다.

  1. DQN (Deep Q-Learning): 연속적인 행동(Continuous Action)을 처리하기 어려움.
  2. Vanilla PG (A3C 등): 구현은 쉽지만, 학습률(Step size)에 너무 민감함. 한 번 잘못 업데이트하면 모델이 영원히 망가질 수 있음(Destructive Update).
  3. TRPO (Trust Region): 수학적으로 매우 안전하지만, 2차 미분(Hessian)이 필요하여 계산이 너무 복잡하고 무거움.
  4. PPO: TRPO의 안정성을 1차 미분(Clipping)만으로 구현하여 가성비를 챙김.

2. PPO의 핵심: Clipping과 목적 함수

Q. 기존 PG의 목적 함수를 그대로 여러 번 학습(Epoch)시키면 안 되는 이유는?

기존 PG의 수식은 데이터를 수집한 정책(πold\pi_{old})과 학습 중인 정책(πnew\pi_{new})이 같다는 전제하에 작동합니다. 데이터를 재사용해서 여러 번 업데이트하면, 정책이 변하면서 이 전제가 깨지고 잘못된 방향으로 과도하게 업데이트(Collapse)되어 모델 성능이 박살 납니다.

Q. PPO의 L_CLIP (Clipped Surrogate Objective)은 이걸 어떻게 막는가?

LCLIP(θ)=E^t[min(rt(θ)A^t,clip(rt(θ),1ϵ,1+ϵ)A^t)]L^{CLIP}(\theta) = \hat{E}_t [\min(r_t(\theta)\hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t)]

  • rt(θ)r_t(\theta): 확률 비율 (πnewπold\frac{\pi_{new}}{\pi_{old}}). 11에서 멀어질수록 급격한 변화를 의미.
  • Clipping: 비율이 일정 범위(1±0.21 \pm 0.2)를 벗어나면, 더 이상 보상(Gradient)을 주지 않고 무시해버림.
  • 효과: "너 너무 급발진했어. 거기선 더 잘해도 점수 안 줘."라고 제동을 걸어버림. 덕분에 KL Divergence 같은 복잡한 계산 없이도 안전한 학습이 가능해짐.

Q. TRPO에 있던 KL Divergence 항은 어디로 갔나?

PPO의 L_CLIP 수식은 KL 패널티(βKL-\beta \text{KL})를 대체하기 위해 고안된 것입니다.

  • TRPO: "KL이 δ\delta 넘으면 무효!" (Hard Constraint, 계산 복잡)
  • PPO: "비율이 ϵ\epsilon 넘으면 무시!" (Clipping, 계산 단순)
    즉, clip 함수가 KL 패널티의 역할을 대신하고 있으므로 수식에서 빠진 것입니다.

3. Advantage와 Adaptive KL

Q. 어드밴티지(A^t\hat{A}_t) 함수는 왜 θ\theta로 미분하지 않는가? (Why constant?)

직관적으로는 정책(θ\theta)이 변하면 보상(AA)도 변해야 맞지만, 학습 시점에서는 "이미 일어난 일(History)"로 취급합니다.
1. 시점의 분리: 데이터 수집(Sampling) 단계에서 얻은 보상은 확정된 숫자(Scalar)입니다.
2. 구현의 편의: PyTorch 등에서 advantages.detach()를 통해 그래디언트 전파를 막습니다. 우리는 "과거의 경험(AA)을 채점표로 삼아 현재의 행동(π\pi)을 수정"하는 것이 목표이기 때문입니다.

Q. 논문에 나오는 'Adaptive KL Penalty'는 무엇인가?

PPO의 메인은 L_CLIP이지만, 비교를 위해 만든 또 다른 버전입니다.

  • dtargetd_{target}: 우리가 원하는 목표 KL 값 (예: 0.01). "이 속도로만 변해라"라는 제한 속도.
  • Adaptive β\beta:
    • 너무 빨리 변하면(d>dtargetd > d_{target})? → 벌금(β\beta)을 2배로 올림.
    • 너무 느리면(d<dtargetd < d_{target})? → 벌금(β\beta)을 절반으로 깎음.
  • 결론: TRPO를 흉내 낸 방식이지만, 실험 결과 그냥 Clipping 쓰는 게 성능이 더 좋았습니다.

4. 최종 구현과 GAE (Generalized Advantage Estimation)

Q. PPO의 최종 손실 함수(Loss Function) 구성은?

Lt(θ)=LtCLIP(θ)c1LtVF(θ)+c2S[πθ](st)L_t(\theta) = L^{CLIP}_t(\theta) - c_1 L^{VF}_t(\theta) + c_2 S[\pi_\theta](s_t)

파라미터를 공유하는(Actor-Critic Shared) 네트워크를 한 번에 학습시키기 위해 세 가지를 합칩니다.
1. LCLIPL^{CLIP} (Actor): 보상 최대화 (Maximize).
2. LVFL^{VF} (Critic): 가치 예측 오차 최소화 (Minimize → 식에서는 뺌).
3. SS (Entropy): 탐험(Exploration)을 위한 엔트로피 보너스 (Maximize).

Q. GAE 수식에서 감마(γ\gamma)와 람다(λ\lambda)의 차이는?

가장 헷갈리기 쉬운 부분인데, 둘 다 '미래를 줄이는' 역할을 하지만 목적이 다릅니다.

파라미터이름역할 (Concept)비유
γ\gamma (Gamma)할인율문제의 정의 (Goal)"10년 뒤 1억은 현재의 5천만 원 가치다." (경제학적 가치 판단)
λ\lambda (Lambda)GAE 파라미터추정의 기술 (Technique)"10년 뒤 데이터는 운빨(Variance)이 심하니 덜 믿겠다." (통계적 신뢰도 조절)
  • γ\gamma: 미래 보상의 가치 자체를 깎는 것.
  • λ\lambda: 먼 미래 데이터의 신뢰도(Variance reduction)를 위해 가중치를 깎는 것.
  • 이 둘을 조합하여 (γλ)(\gamma \lambda)로 감쇠시키면, 편향(Bias)과 분산(Variance) 사이의 적절한 균형을 찾을 수 있습니다.

0개의 댓글