[Deep Reinforcement Learning] 30강 PPO

Woosci·2025년 8월 9일

👨‍🏫학습목표

오늘은 PPO의 핵심 아이디어pratical하게 적용하기 위한 방법에 대해 배워볼 예정이다.

👨‍🎓강의영상: https://www.youtube.com/watch?v=5fHbx33bqBc&t=1719s
PPO 논문: https://arxiv.org/pdf/1707.06347

1️⃣ Proximal Policy Optimization

📕 지난시간에 배운 내용

maxθLTRPO(θ)=E[πθ(as)πθold(as)Aθold(s,a)]subject toE[DKL(πθold(s)πθ(s))]δ\max_\theta L^{\text{TRPO}}(\theta) = \mathbb{E}\left[ \frac{\pi_\theta(a|s)}{\pi_{\theta_\text{old}}(a|s)} A_{\theta_\text{old}}(s, a) \right] \quad \text{subject to} \quad \mathbb{E}\left[D_{\text{KL}}(\pi_{\theta_\text{old}}(\cdot | s) || \pi_\theta(\cdot | s))\right] \le \delta
  • TRPOsurrogate object function이다.

  • E[πθ(as)πθold(as)Aθold(s,a)]\mathbb{E}\left[ \frac{\pi_\theta(a|s)}{\pi_{\theta_\text{old}}(a|s)} A_{\theta_\text{old}}(s, a) \right] 를 maximize하는 파라미터를 찾는다.

  • E[DKL(πθold(s)πθ(s))]δ:\mathbb{E}\left[D_{\text{KL}}(\pi_{\theta_\text{old}}(\cdot | s) || \pi_\theta(\cdot | s))\right] \le \delta: KL Constraint

  • KL ConstraintTrust region 역할을 수행한다.

  • TRPO는 좋은 성능을 가지고 있는 모델이다.

  • 이를 통해 Policy가 monotonic improvement를 잘하는 것을 알 수 있다.


🔷 Policy ratio

r(θ)=πθ(as)πθold(as)r(\theta) = \frac{\pi_\theta(a|s)}{\pi_{\theta_\text{old}}(a|s)}
  • policy ratio파라미터의 변화를 결정한다.

  • TRPO에서는 Trust region을 통해 그 변화를 제한한다.

  • Trust region을 구현하기 위해 KL constrant 식을 만들었고 그 결과 Implementation과 Computation이 복잡해졌다.

  • KL constraintE[DKL(πθold(s)πθ(s))]\mathbb{E}\left[D_{\text{KL}}(\pi_{\theta_\text{old}}(\cdot | s) || \pi_\theta(\cdot | s))\right] 이 값이 너무 커지는 것을 막아주는 것이 목적이다.

  • PPOKL constraint를 사용하지 않고, policy ratio에 직접적으로 제한을 한다.

  • 이를 clipping이라고 한다.


🔷 Clipping

r(θ)=πθ(as)πθold(as)r(\theta) = \frac{\pi_\theta(a|s)}{\pi_{\theta_\text{old}}(a|s)}
  • 파라미터의 변화가 크면 r(θ)r(\theta)는 1보다 크거나 작은 값으로 변할 것이다.

clip(r(θ),1ϵ,1+ϵ)\text{clip}(r(\theta), 1-\epsilon, 1+\epsilon)
  • Clipping을 통해 그 범위를 제한할 수 있다.
  • 이를 통해 policy update가 크게 진행되는 것을 막을 수 있다.
  • 그 결과 Hessian HH로 이루어진 Constraint 식을 사용하지 않아도 된다.

maxθLCLIP(θ)=E[min(r(θ)Aθold(s,a),clip(r(θ),1ϵ,1+ϵ)Aθold(s,a))]\max_\theta L^{CLIP}(\theta) = \mathbb{E}[\min(r(\theta) A_{\theta_\text{old}}(s, a), \text{clip}(r(\theta), 1-\epsilon, 1+\epsilon)A_{\theta_\text{old}}(s, a))]
  • Clipping을 통해 first order stochastic gradient ascent를 사용한다.

  • 연산량을 획기적으로 줄일 수 있다.

  • Surrogate objective function이 되기 위해서는 lower bound라는 조건을 만족해야 한다.

  • 따라서 기존의 식과 새로 구한 식의 minimum을 구하여 LCLIP(θ)L^{CLIP}(\theta)LTRPO(θ)L^{\text{TRPO}}(\theta) 의 lower bound가 되게 한다.


🔻 MM-algorithm을 적용하기 위한 조건

🔸 Surrogate objective function이 되기 위한 조건

LCLIP(θold)=LTRPO(θold)=η(θold)L^{\text{CLIP}}(\theta_{old}) = L^{\text{TRPO}}(\theta_{old}) = \eta(\theta_{old})

LCLIP(θ)LTRPO(θ)η(θ)L^{\text{CLIP}}(\theta) \leq L^{\text{TRPO}}(\theta) \leq \eta(\theta)


2️⃣ PPO

🔷 Clipped surrogate objective function

maxθLCLIP(θ)=E[min(r(θ)Aθold(s,a),clip(r(θ),1ϵ,1+ϵ)Aθold(s,a))]\max_\theta L^{CLIP}(\theta) = \mathbb{E}[\min(r(\theta) A_{\theta_\text{old}}(s, a), \text{clip}(r(\theta), 1-\epsilon, 1+\epsilon)A_{\theta_\text{old}}(s, a))]
  • A(s,a)=Q(s,a)V(s)=Q(s,a)EaQ(s,a)A(s,a) = Q(s,a) - V(s) = Q(s,a) - \mathbb{E}_{a}Q(s,a)

  • A(s,a)>0:A(s,a) > 0: 해당 action이 평균보다 좋은 action이기 때문에 더 높은 확률로 발생할 수 있도록 학습해야 한다.

  • 따라서 r(θ)=πθ(as)πθold(as)>1r(\theta) = \frac{\pi_\theta(a|s)}{\pi_{\theta_\text{old}}(a|s)} >1 을 만족해야 한다.

  • 다만 그 값이 너무 크게 변하면 안되기 때문에 ϵ\epsilon을 통해 범위를 제한한다.

  • 논문에서 ϵ=0.2\epsilon= 0.2 로 고정하였다.

  • r(θ)=1.4r(\theta) = 1.4 이면 1.2로 clipping 한다.

  • r(θ)=0.7r(\theta) = 0.7 이면 0.8로 clipping 한다.

  • 이때는 min(r(θ)Aθold(s,a),clip(r(θ),1ϵ,1+ϵ)Aθold(s,a))=0.7\min(r(\theta) A_{\theta_\text{old}}(s, a), \text{clip}(r(\theta), 1-\epsilon, 1+\epsilon)A_{\theta_\text{old}}(s, a)) = 0.7이 된다.

  • Lower bound 조건을 만족하기 위해서다.


🔷 Practical Implementation

LCLIP+VF+S(θ)=E[LCLIP(θ)c1LVF(θ)+c2S[πθ](s)]L^{CLIP+VF+S}(\theta) = \mathbb{E}[L^{CLIP}(\theta) - c_1 L^{VF}(\theta) + c_2 S[\pi_\theta](s)]
  • C1,C2:C_1, C_2: 각 항을 얼마나 반영할 지 결정하는 하이퍼파라미터.

  • LVF(θ)=(VtargetVθ(s))2:L^{VF}(\theta) = (V_\text{target} - V_\theta(s))^2: Error term on the value estimation

  • Advantage value를 구하기 위해서는 state value값이 필요하다.

  • 보통 Q-value와 State value는 구하는 파라미터를 공유하여 추출한다.

  • 이때 Loss function에 Error term을 추가하면 훨씬 안정적인 학습이 가능하다.

  • S[πθ](s):S[\pi_{\theta}](s): Entropy bonus to ensure sufficient exploration

  • 모델이 Exploration을 더 할 수 있도록 추가한 항이다.



3️⃣ DRL algorithm 비교

🔷 SARSA & Q-Learning

  • Q-table 을 이용하여 모든 Q-value 값을 저장한다.
  • State spaceAction spacediscrete하고 크지 않은 경우에만 적용된다.

🔷 DQN

  • Q-Network를 사용하여 State space를 continuous하게 확장하였다.

🔷 A3C, DDPG

  • Network를 통해 policy를 구현하였다.
  • Action spaceContinuous한 영역으로 확장되었다.
  • 로보틱스에 적용할 수 있게 되었다.

🔷 TRPO

  • DDPGmonotonic하게 성능이 향상될 수 없다는 한계를 극복한 모델이다.
  • Surrogate objective function을 구한 후 MM-algorithm을 적용하여 모델의 성능을 향상시켰다.
  • 하지만 KL divergence constraint 항의 연산량이 많다는 한계가 존재한다.

🔷 PPO

  • KL divergence constraint 대신 Clipping을 통해 step size를 조절하였다.
  • 이를 통해 monotonic improvement를 확보한 동시에 연산량을 줄였다.


4️⃣ 정리

🔷 30강에서 배운 내용은 아래와 같다.

  1. TRPO의 한계를 극복하기 위해 PPO에서는 Clipping을 적용하였다.
  2. PPOpractical하게 구현하기 위해 Error termEntropy bonus를 더하였다.
  3. Error termState value값을 잘 추정할 수 있도록 한다.
  4. Entropy bomus는 모델이 exploration을 늘릴 수 있도록 한다.
profile
I'm curious about AI

0개의 댓글