- John Schulman, Sergey Levine 등
- 2015
- 논문 링크
- PG의 가장 큰 문제 중 하나는 정확한 업데이트 방향을 알기 위해서는 매우 많은 sample이 필요하다는 것이다.
- conservative policy iteration(Kakade&Langford)처럼 제한된 범위 내에서 업데이트를 하면 적어도 성능이 유지되는 업데이트를 반복적으로 할 수 있다.
- TRPO는 mixture policy가 아닌 stochastic policy에 conservative policy iteration 방법론을 적용하고 있으며, 그 과정에서 trust region update와 monte carlo estimation을 사용한다.
강화학습 알고리즘의 목표는 expected return을 극대화하는 policy를 찾는 것이다. 즉 아래 η 식(discounted cumulative discounted reward)을 극대화하는 것이다.
maximize ηwhere η(π)=Es0,a0...[t+0∑∞γtr(st)] s0∽ρ0(s0), at∽π(at∣st), st+1∽P(st+1∣st,at)이와 관련하여 Kakade&Langford는 2002년 논문 Approximately Optimal Approximate Refinforcement Learning에서 Conservative Policy Iteration을 제시했었다. TRPO의 알고리즘은 이 논문에서 출발하고 있다.
Kakade&Langford는 자신의 논문에서 policy gradient 방법은 정확한 업데이트 방향(gradient)를 구하는 데에 너무 많은 sample을 확보해야 하며, 심지어 한 번 policy를 업데이트한 후에는 더 이상 과거에 사용한 sample을 사용할 수 없기 때문에 알고리즘적 비용이 너무 많이 든다고 한다. 이러한 문제를 해결하기 위해 업데이트의 크기를 제한하면서 policy의 expected return을 지속적으로 향상시키는 방법으로 Conservative Policy Iteration을 제시했다.
Expected return and Advantage
위에서 확인한
η(π)=Es0,a0...[t=0∑∞γtr(st)]식은 현재 가지고 있는 policy π가 가지는 expected return 이라고 했었다. 이때 policy가 π에서 π~로 업데이트 되었다면
Eτ∣π~[t=0∑∞γtAπ(st,at)]=Eτ∣π~[t=0∑∞γtQπ(st,at)−Vπ(st)]=Eτ∣π~[t=0∑∞γt(r(st)+γVπ(st+1)−Vπ(st))]=Eτ∣π~[−Vπ(s0)+t=0∑∞γtr(st)]=−Es0[Vπ(s0)]+Eτ∣π~[t=0∑∞γtr(st)]=−η(π)+η(π~)에 따라 다음과 같이 Advantage Aπ(s,a)에 대한 식으로 업데이트 이전과 이후의 관계를 표현할 수 있다.
η(π~)=η(π)+Es0,a0,...∽π~[t=0∑∞γtAπ(st,at)]기존의 policy π에서 새로운 policy π~로 업데이트되었다고 할 때 Es0,a0,...∽π~[∑t=0∞γtAπ(st,at)]의 값이 음수면 업데이트의 결과 return이 줄어들고, 양수면 return이 늘어나는 것으로 예상할 수 있다.
이때 아래와 같이 정의되는 어떤 state s에 방문할 확률(state visitation frequency) ρπ(s)를 위 식에 적용하면
ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+...기대값을 풀고 다음과 같이 개별 state에 대한 식으로 전개가 가능하다.
η(π~)=η(π)+t=0∑∞s∑P(st=s∣π~)a∑π~(a∣s)γtAπ(s,a)=η(π)+s∑t=0∑∞γtP(st=s∣π~)a∑π~(a∣s)Aπ(s,a)=η(π)+s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)위의 식에서 모든 state s에 대해 ∑aπ~(a∣s)Aπ(s,a)≧0 이 성립하면 η가 증가하는 것을 보장할 수 있다. 이렇게 policy를 업데이트하는 대표적인 방법이 deterministic policy π~(s)=argmaxaAπ(s,a)를 사용하는 policy iteration 이며, 이렇게 하면 optimal policy에 수렴할 수 있다.
하지만 이를 곧바로 적용하는 것에는 문제가 있다. 기본적으로 Aπ(s,a)는 근사하여 구하게 되고, 이에 따른 오차로 negative value가 업데이트 과정에 포함될 수 있다. 그리고 ρπ~(s)를 사용한다는 점에서 새로운 policy가 어떤 state에 자주 가는지 곧바로 알기 어렵기 때문에 즉각적인 업데이트도 불가능하다.
이러한 문제를 해결하기 위해 아래와 같은 식을 도입하고 있으며, 이를 local approximation 이라고 한다.
→η(π~)=η(π)+s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)L(π~)=η(π)+s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)위의 식과 아래 식의 차이는 ρπ~(s)가 ρπ(s)로 바뀌었다는 점이다. policy가 업데이트되어 ρ가 바뀌었음에도 이를 사용하지 않고 이전 policy의 ρ를 그대로 사용하겠다는 것이다. 이는 ρπ~(s)를 구하는 것이 까다롭기 때문이다.
이렇게 대체하는 것이 가능하려면 다음과 같은 조건을 만족해야 한다.
Lπθ0(πθ0)=η(πθ0)∇θLπθ0(πθ)∣θ=θ0=∇θη(πθ)∣θ=θ0θ=θ0이라면 η의 값과 L의 값이 같고, 그 1차 미분 값도 같다는 것을 의미한다. 따라서 충분히 작은 업데이트 크기를 정하게 되면 Lπθ를 기준으로 업데이트하는 것만으로도 η의 향상을 보장할 수 있다. 이렇게 좁은 영역에서 이뤄지는 업데이트 만이 성능의 향상이 보장된다는 점에서 Trust Region이라는 표현이 나오는 것이다.
위의 이론적 논의를 바탕으로 Kakade&Langford는 다음과 같은 Mixture Policy Update 방법을 제시한다.
πnew(a∣s)=(1−α)πold(a∣s)+απ′(a∣s)즉 기존 policy πold(a∣s)와 업데이트 방향이 되는 policy π′(a∣s)의 가중평균으로 새로운 policy πnew(a∣s)를 정하는 것이다. 이렇게 해서 기존의 policy가 너무 크게 변화하지 않도록 제한하게 된다.
이 경우 다음과 같은 업데이트의 lower bound를 갖는다고 한다.
η(πnew)≧Lπold(πnew)−(1−γ)22ϵγα2where ϵ=smax∣Ea∽π′(a∣s)[Aπ(s,a)]∣여기서 α는 기존 policy와 새로운 policy를 섞는 비율이 되고, ϵ은 기대 Advantage의 최대값이 된다. 이 두 가지에 따라 업데이트에 따른 lower bound가 결정된다는 것이다. TRPO는 이러한 Kakade&Langford의 Conservative Policy Iteration를 개선하여 적용하는 것에서 출발한다. 보다 구체적으로는 Mixture Policy Update를 사용하지 않으면서 Trust Region을 적용하는 방법을 제시한다.
Conservative Policy Iteration에서는 새롭게 구한 policy와 기존 policy를 적당한 크기로 가중평균하고 있다. 하지만 이와 같이 mixture를 통해 새로운 policy를 구하는 것은 stochastic policy에는 적용하기 어렵다. TRPO는 stochastic policy에서도 Conservative Policy Iteration와 유사한 방법론을 적용하여 policy를 업데이트하는 방법이라고 할 수 있다.
이를 위해 TRPO 논문에서는 α와 ϵ을 다음과 같이 재정의한다.
α=DTVmax(πold,πnew)=smaxDTV(π(⋅∣s)∥π~(⋅∣s))ϵ=s,amax∣Aπ(s,a)∣TRPO에서 α는 더 이상 두 policy를 합하는 정도를 의미하지 않는다. 위와 같이 여기서는 전체 state에서 두 policy 간의 차이가 가장 클 때의 값으로 α가 결정되는데, 이때 둘 간의 차이를 TVD(total variation divergence)로 구하고 있음을 알 수 있다. 이에 따르면 다음과 같이 새로운 lower bound를 설정할 수 있다.
η(πnew)≧Lπold(πnew)−(1−γ)24ϵγα2where ϵ=s,amax∣Aπ(s,a)∣그런데 TVD는 두 분포 간의 차이를 계산할 때 자주 사용하는 KLD와 다음과 같은 관계를 가지고 있다.
DTV(p∥q)2≦DKL(p∥q)이러한 특성을 α2에 적용하고, 상수들을 C로 치환하면 다음과 같이 식을 정리할 수 있다.
η(πnew)≧Lπold(πnew)−CDKLmax(πold,πnew)where C=(1−γ)24ϵγ여기서 Lπold(πnew)−CDKLmax(πold,πnew)를 극대화하는 πnew를 다음 policy로 업데이트하면 지속적인 성능 개선이 보장되는 policy update가 가능하다. 이때 η(πnew)를 식 Lπold(πnew)−CDKLmax(πold,πnew)로 근사하기 때문에 Surrogate Function이라고 할 수 있으며 이를 이용하여 다음과 같은 알고리즘을 도출할 수 있다.

여기까지가 TRPO의 이론적인 업데이트 방식이다. 하지만 이를 적용하기 위해서는 연산량 등을 고려하여 보다 구체화해야 할 부분들이 남아있다.
위에서는 CDKLmax(πold,πnew)의 크기만큼 Penalty를 부여하는 방식을 사용하고 있다. 하지만 C에 포함되어 있는 ϵ의 정의 maxs,a∣Aπ(s,a)∣를 고려하면 결국 매 state에서 새롭게 구해야 하고, 이렇게 되면 연산량이 크게 늘어날 수밖에 없다. 이를 대신하여 논문에서는 충분히 작은 δ 값 내에서만 변화할 수 있도록 Constraint를 주는 방법을 제시한다. 즉 Panelty 방식은 Lπold(πnew)−CDKLmax(πold,πnew)를 가장 최대로 하는 θnew를 선택하게 된다면 Constraint 방식은 DKLmax(θold,θ)≦δ라는 제약 조건 내에서 Lθold(θ)을 최대화 하는 θnew를 선택하는 것으로 이해할 수 있다.
maximizeθ Lθold(θ)subject to DKLmax(θold,θ)≦δ하지만 이 경우에도 모든 state에 대해 KLD를 측정할 수는 없다는 문제가 남는다. 이러한 문제를 해결하기 위해 DKLmax를 다음과 같은 state visitation frequency에 대한 기대값으로 대체한다. 이는 전체 state의 최대값은 구하는 것이 불가능에 가깝지만 샘플링한 state에서의 평균적인 KLD는 어느 정도 믿을만하게 사용할 수 있다고 보는 것이다.
DKLρ(θ1,θ2):=Es∽ρ[DKL(πθ1(⋅∣s)∥πθ2(⋅∣s))]최적화 식에 적용하면 다음과 같다.
maximizeθ Lθold(θ)subject to DKLρθold(θold,θ)≦δ최대값이 아닌 평균을 사용한다는 것 자체가 heuristic approximation이기 때문에 항상 최적은 아닐 수 있지만 효율적으로 적당한 업데이트 크기를 정하는 데에 있어 도움이 된다.
위의 최적화 식에서 L을 전개하면 다음과 같다. 참고로 우변의 η(π)는 상수이므로 생략되었다.
maximizeθ s∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)subject to DKLρθold(θold,θ)≦δ위의 식을 그대로 해결하려면 모든 state, action에 대한 값을 구해야 하므로 연산량이 매우 커진다. 따라서 Monte Carlo를 적용해 근사하는 방법을 생각할 수 있다. 이를 적용하기 위해서는 식을 기대값 형태로 표현할 필요가 있는데 구체적으로 논문에서는 다음 세 가지를 도입하였다고 한다.
- Summation ∑sρθold(s)[...] ⇒ Expecation 1−γ1Es∽ρθold[...]
- Advantage Aθold ⇒ Q-value Qθold
- importance sampling estimator q
sampling distrubution q를 통해 다음과 같이 대체되고
a∑πθ(a∣sn)Aθold(sn,a)=Ea∽q[q(a∣sn)πθ[a∣sn]Aθold(sn,a)]최종적인 최적화 식은 다음과 같다.
maximizeθ Es∽ρθold,a∽q[q(a∣sn)πθ[a∣sn]Qθold(sn,a)]subject to Es∽ρθold[DKL(πθold(⋅∣s)∥πθ(⋅∣s))]≦δ기대값을 계산하기 위해서는 현재 policy에 따라 trajectory를 진행하며 쌓인 sample들을 사용하게 된다. q를 도입하여 업데이트 이후의 새로운 policy가 아닌 현재 policy에서 샘플링을 하는 것이 가능하게 되었다.
마지막으로 한 가지 남은 것이 있다면 Monte Carlo를 통해 위의 최적화 식에서 expectation을 sampling으로 구하는 것이다. 이때 sampling 방법과 관련해 single path와 vine 두 가지가 있다.
- 개개의 episode trajectory를 그대로 사용하는 방법
- 전형적인 policy gradient estimation 방법
- rollout을 통해 하나의 state에서 여러 action을 취해보는 방법
- single path와 비교해 variance가 낮다는 장점
- real world에 적용하기 어렵다는 단점
TRPO는 다음과 같은 순서로 policy를 업데이트한다.
- single path 또는 vine 방식을 통해 state-action pair를 수집한다. 이렇게 수집된 state-action pair로 Monte Carlo estimation을 실시한다.
- 최적화 식의 objective function과 constraint를 추정한다.
maximizeθ Es∽ρθold,a∽q[q(a∣sn)πθ[a∣sn]Qθold(sn,a)]subject to Es∽ρθold[DKL(πθold(⋅∣s)∥πθ(⋅∣s))]≦δ- 2에서 계산된 값에 따라 policy parameter θ를 업데이트 한다. 이때 line search를 따르는 conjugate gradient algorithm을 사용한다. 이는 gradient 자체를 구하는 방법보다는 약간 더 비싼 방법이라고 한다.
f(x)의 평균 E[f(x)]를 샘플링을 통해 추정하는 것은 다음과 같이 나타낼 수 있다.
E[f(x)]≈n1i=1∑nf(xi)where, x∽p,xi∽p그런데 경우에 따라서는 p에서 직접 샘플링을 하는 것이 어려울 때가 있다. Importance Sampling이란 이와같이 직접 샘플링하기 어려운 확률 분포의 parameter를 알아내기 위해 구하기 쉬운 다른 확률 분포에서 샘플링한 뒤 이를 바탕으로 우회하여 추정하는 방법이다. 아래 수식을 통해 이해하는 것이 더 쉽다. 여기서 p는 구하고자 하는 확률 분포가 되고 q는 대신하여 샘플링하게 될 확률 분포가 된다.
Ex∽p[f(x)]=∫f(x)p(x)dx=∫(f(x)q(x)p(x))q(x)dx∀q s.t. q(x)=0→p(x)=Ex∽q[f(x)q(x)p(x)]≈n1i=1∑nf(xi)q(xi)p(xi)xi∽q