[CS285] Ch9. Advanced Policy Gradients

YJ·2025년 1월 31일

CS 285

목록 보기
6/6
post-thumbnail

Deep Reinforcement Learning을 소개하는 Berkely CS 285 강좌의 Ch4~Ch9를 들으며 제 지식과 함께 정리해보고자 합니다. 강의 링크는 아래를 참고하세요.

https://rail.eecs.berkeley.edu/deeprlcourse/

제 나름의 지식을 많이 덧붙여 틀린 부분이 있을 수 있습니다. 발견하시면 댓글로 지적 부탁드립니다!
이해가 안되는 경우 질문도 환영입니다!

Ch9. Advanced Policy Gradients

Policy Gradients as Policy Iteration

recap: policy gradient


다시 policy gradient로 돌아갑니다. policy gradient의 알고리즘은 위와 같았습니다. Policy를 direct하게 θ\theta로 매개화하고, objective function J(θ)J(\theta)를 이용해 gradient ascent로 update합니다. 여기서 reward를 어떻게 estimate하느냐, baseline으로 무엇을 쓰느냐에 따라 알고리즘이 달라졌었습니다.

policy gradient를 advantage function으로 update하는 아래 식을 보겠습니다.

θJ(θ)i=1N(t=1Tθlogπθ(ai,t,si,t)A^i,t)\nabla_\theta J(\theta) \approx \sum_{i=1}^{N} \left( \sum_{t=1}^{T} \nabla_\theta \log{\pi_\theta (a_{i,t}, s_{i,t}) \hat{A}_{i,t}} \right)

이 식은 다음과 같이 정리할 수 있습니다.

Advantage function을 추정해서 policy를 improve합니다. 이는 policy iteration과 정확히 같은 방식이죠. 그러나 policy iteration은 π\pi를 hard하게 최선의 policy 하나만을 선택하도록 update하는 데에 반해, policy gradient는 soft하게 좋은 정책의 확률을 늘리고 나쁜 정책의 확률을 줄이는 방향으로 업데이트 됩니다.

그런데 policy gradient는 이론상 맞긴 한데, learning rate α\alpha의 미세한 차이에 따라 gradient step이 너무 커지기도, 너무 작아지기도 하는 불안정한 문제가 있습니다. 이에 반해 policy iteration은 Bellman Operator의 contraction 성질(ch7의 마지막에서 살펴보았습니다)에 의해 유일해로 수렴한다는 것을 잘 알고 있습니다. 따라서 이 챕터에서는, policy gradient를 policy iteration의 방식으로 나타내어 policy gradient가 잘 작동하는 것을 목표로 합니다. 이러한 개념은 TPRO나 PPO와 같이 잘 작동하는 알고리즘으로 이어집니다.


policy gradient as policy iteration

policy gradient 식을 policy iteration처럼, advantage의 argmax로 update 하는 꼴로 나타내보겠습니다.

그러기 위해서는 policy의 improvement를 다음과 같이 정의하겠습니다.

J(θ)J(θ)=J(θ)Es0p(s0)[Vπθ(s0)]J(\theta') - J(\theta) = J(\theta') - E_{s_0 \sim p(s_0)}[V^{\pi_\theta}(s_0)]

이는 이전 policy parameter θ\theta와 변화한 policy parameter θ\theta'에 의한 objective function의 차이로 이루어져 있죠. 이를 전개해보면 아래와 같이 정리됩니다.

두번째 등호는 initial state의 marginal distribution이 변하지 않기 때문에 성립합니다. 그 뒤 약간의 trick을 써서 정리해준 것 뿐이죠. 정리된 식은 다음과 같습니다.

J(θ)J(θ)=Eτpθ(τ)[t=0γtAπθ(s0)]J(\theta') - J(\theta) = E_{\tau \sim p_\theta'(\tau)}\left[\sum_{t=0}^{\infty} \gamma^t A^{\pi_\theta}(s_0)\right]

기존의 parameter는 θ\theta이니 이에 대한 식으로 나타내기 위해 다음과 같이 improvement를 전개합니다.

Eτpθ(τ)[t=0Aπθ(s0)]=t=0Estpθ(st)[Eatπθ(atst)[γtAπθ(s0)]]=t=0Estpθ(st)[Eatπθ(atst)[πθ(atst)πθ(atst)γtAπθ(s0)]]\begin{aligned} E_{\tau \sim p_\theta'(\tau)}\left[\sum_{t=0}^{\infty}A^{\pi_\theta}(s_0)\right] &= \sum_{t=0}^{\infty} E_{s_t \sim p_\theta'(s_t)} \left[ E_{a_t \sim \pi_\theta'(a_t|s_t)} \left[ \gamma^t A^{\pi_\theta}(s_0) \right] \right] \\ &= \sum_{t=0}^{\infty} E_{s_t \sim p_\theta'(s_t)} \left[ E_{a_t \sim \pi_\theta(a_t|s_t)} \left[ \frac{\pi_\theta'(a_t|s_t)}{\pi_\theta(a_t|s_t)} \gamma^t A^{\pi_\theta}(s_0) \right] \right] \end{aligned}

마지막은 importance sampling을 사용하였습니다.

이제 바깥쪽 distribution을 정리하기 위해 다음과 같은 estimate를 사용하고 싶습니다.

t=0Estpθ(st)[Eatπθ(atst)[πθ(atst)πθ(atst)γtAπθ(s0)]]=t=0Estpθ(st)[Eatπθ(atst)[πθ(atst)πθ(atst)γtAπθ(s0)]]\sum_{t=0}^{\infty} E_{s_t \sim p_\theta'(s_t)} \left[ E_{a_t \sim \pi_\theta(a_t|s_t)} \left[ \frac{\pi_\theta'(a_t|s_t)}{\pi_\theta(a_t|s_t)} \gamma^t A^{\pi_\theta}(s_0) \right] \right] = \sum_{t=0}^{\infty} E_{s_t \sim p_\theta(s_t)} \left[ E_{a_t \sim \pi_\theta(a_t|s_t)} \left[ \frac{\pi_\theta'(a_t|s_t)}{\pi_\theta(a_t|s_t)} \gamma^t A^{\pi_\theta}(s_0) \right] \right]

이러한 estimate를 사용하면, 우변을 Aˉ(θ)\bar{A}(\theta)라고 했을 때, 다음과 같은 식을 사용할 수 있습니다.

J(θ)J(θ)=Aˉ(θ)J(\theta') - J(\theta) = \bar{A}(\theta)
θarg maxθAˉ(θ)\theta' \leftarrow \argmax_{\theta'} \bar{A}(\theta)

이 식이 성립하면 policy iteration의 방식으로 policy gradient가 잘 작동하게 만들 수 있습니다. 이 식은 πθ\pi_\thetaπθ\pi_{\theta'}이 비슷할 때, pθp_\thetapθp_{\theta'}도 비슷하기 때문에 성립하는데, 이것을 다음 파트에서 보이게 됩니다.



Bounding the distribution change

deterministic policy

πθ\pi_\theta가 deterministic policy라고 해봅시다. πθ\pi_{\theta'}은 deterministic policy는 아닙니다.
두 policy의 같은 state에서 같은 action이 나올 확률 차이가 다음과 같이 ϵ\epsilon보다 작다고 합시다.(두 policy는 close: 전제)

πθ(atπθ(st)st)ϵ\pi_{\theta'}(a_t \ne \pi_\theta(s_t)| s_t) \le \epsilon

probability는 다음과 같이 나타낼 수 있었습니다.

pθ(τ)=pθ(s1,a1,s2,a2,...sT,aT)=p(s1)t=1Tπθ(atst)p(st+1st,at)p_\theta(\tau) = p_\theta(s_1, a_1, s_2, a_2, ... s_T, a_T) = p(s_1)\displaystyle\prod_{t=1}^{T}{\pi_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t)}

매번의 action 선택에서 ϵ\epsilon만큼씩 다른 action을 선택한다면, 다시말해 1ϵ1-\epsilon만큼 같은 action을 선택한다면, 다음과 같이 식이 정리됩니다.

pθ(st)=(1ϵ)tpθ(st)+(1(1ϵ)t)pmistakes(st)p_{\theta'}(s_t) = (1-\epsilon)^t p_\theta(s_t) + (1-(1-\epsilon)^t)p_{mistakes}(s_t)

기존의 distribution과는 (1-\epsilon)^t정도 같고, 나머지는 뭔진 모르겠지만 다른 distribution에 의존하겠죠. 이 식을 정리하면 다음과 같이 정리됩니다.

pθ(st)pθ(st)=(1(1ϵ)t)pmistakes(st)pθ(st)2(1(1ϵ)t)2ϵt| p_{\theta'}(s_t) - p_{\theta}(s_t) | = (1-(1-\epsilon)^t) |p_{mistakes}(s_t) - p_\theta(s_t) | \le 2(1-(1-\epsilon)^t) \le 2 \epsilon t

부등호는 두 probability의 차이는 2 이하이기 때문에 성립합니다. 또한 1ϵt(1ϵ)t1-\epsilon t \le (1-\epsilon)^t를 이용하였습니다.


arbitrary distribution

이 식을 일반화하겠습니다. 아래와 같은 lemma 때문에 위의 식이 일반적인 policy에 대해 성립합니다.


bounding the objective value

pθ(st)pθ(st)2ϵt| p_{\theta'}(s_t) - p_{\theta}(s_t) | \le 2 \epsilon t

이 식에 의해 다음이 성립합니다.

이를 원래의 식에 적용해보면 다음과 같습니다.

이는 즉 우리가 원하는(구할 수 있는) Aˉ(θ)\bar{A}(\theta)을 최대화하면 기존 improvement의 bound가 최대화되니 improvement가 최대화되는 효과를 낳을 수 있다는 것입니다. 즉 우리는 우리가 구할 수 있는 위 식의 왼쪽 부분을 argmax하면 policy iteration처럼 policy gradient가 잘 작동하게 만들 수 있습니다. 제한된 영역 하에서 improvement를 최대화한다. 이것이 기본 아이디어가 되는 것입니다.

지금까지 얘기한 것을 정리하면 다음과 같습니다.



Policy gradients with constraints

앞서 두 policy가 비슷하다는 것에 다음 식을 이용했습니다.

πθ(atπθ(st)st)ϵ\pi_{\theta'}(a_t \ne \pi_\theta(s_t)| s_t) \le \epsilon

그러나 실제로는 KL divergence를 훨씬 많이 이용합니다.

πθ(atπθ(st)st)12DKL(πθ(atst)πθ(atst))\pi_{\theta'}(a_t \ne \pi_\theta(s_t)| s_t) \le \sqrt{\frac{1}{2} D_{KL}(\pi_{\theta'}(a_t|s_t) ||\pi_{\theta}(a_t|s_t) )}

KL divergence는 미분가능 등 policy gradient에서 더 쉽게 유용할 수 있는 장점이 있기 때문입니다.


이를 최적화 관점에서 Lagrange multiplier를 이용해 나타내면 위와 같습니다. 이를 dual gradient descent라고 합니다.



Natural Gradient

그렇다면 이 식을 어떻게 최적화할까요? 최적화 방법 중 가장 간단한 natural gradient를 소개합니다.

우선 식은 위와 같았습니다. 이를 1차 taylor expansion을 이용하면 다음과 같습니다.

θθ\theta \approx \theta'인 구간에서 gradient를 estimate하면 기존 policy gradient와 같아지는 것을 알게됩니다.

그러면 식은 다음과 같이 정리됩니다

KL divergence는 second order taylor expansion에 의해 다음과 같이 정리됩니다.

따라서 update 식은 다음과 같아집니다. 이것이 natural gradient입니다.




이로서 ch9에 대한 포스팅이 끝났습니다. 틀린 부분이나 이해가 안된 부분이 있다면 댓글 주세요!

CS285 website: https://rail.eecs.berkeley.edu/deeprlcourse/

0개의 댓글