0. 개요
전 글에서 작성한 PPO의 기반이 된 TRPO 논문이다. 마찬가지로 유튜브 팡요랩을 참고했고 다른 논문 리뷰들은 40분인데 비해 TRPO는 1시간 20분으로 2배정도 길다. 그만큼 어려울 것이라고 생각하고 영상과 논문을 읽었다.
이론이 위주가 되는 논문이라 수식이 참 많이 나오는데 이해한 것 위주로 작성했다.
팡요랩 TRPO
1. 논문 요약
1.1. 논문 개요
- 논문 제목: Trust Region Policy Optimization
- 논문 저자: John Schulman, Sergey Levine, Philipp Moritz, Michael Jordan, Pieter Abbeel
1.2. 배경
- 정책 성능 함수
이 함수는 policy 𝜋의 기대 총 보상을 의미한다.η(π)=Eτ∼π[t=0∑∞γtr(st,at)]
- KL 발산
KL 발산은 두 분포 𝑝와 𝑞가 주어졌을 때, 분포 𝑝를 기준으로 𝑞가 얼마나 다른지 측정하는 값이다.KL(p∣∣q)=x∑p(x)logq(x)p(x)
1.3. 연구 방법
1.3.1 Kakade & Langford
2002년에 작성한 논문으로 아래의 식을 증명했다.
η(π~)=η(π)+Es∼π~,a∼π~[t=0∑∞γtr(st,at)]
그리고 timesteps의 관점에서 states의 관점으로 변화하기 위해 로우파이라는 개념을 도입한다.
pπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+...
이 식을 이용해서 위의 식을 다시 작성한다.
η(π~)=η(π)+s∑pπ(s)a∑π~(a∣s)Aπ(s,a)
위의 식은 아래의 내용을 의미한다.
- 모든 state s에 대해 ∑aπ~(a∣s)Aπ(s,a)≥0 이라면 Policy의 성능이 증가하는게 보장된다.
- π~(s)=argmaxaAπ(s,a) 여기서 1개의 state, action 쌍에서 어드밴티지가 양수면 policy는 개선된다.
- 그러나 실제에서는 approximation error가 있기 때문에 그렇지 않은 상황이 섞여 있을 것이다.
그러나 pπ~(s)는 까다롭기 때문에 우리가 이것을 pπ(s)로 대체할 것이다. 대체가 가능하다고 하는 이유도 설명을 해주시지만 이것은 내가 이해를 하지 못했다.
그리고 이 논문에서는 새로운 방법론을 제안한다.
1.3.2 improvement method
TRPO 논문에서는 다른 방법을 사용하기 위해 total vatiation divergence 개념을 도입했다.
DTV(p∣∣q)=21i∑∣pi−qi∣
DTVmax(π∣∣π~)=smaxDTV(π(⋅∣s)∣∣π~(⋅∣s))
α=DTVmax(πold,πnew) 라고 하면 아래의 식이 나온다.
η(πnew)≥Lπold(πnew)−(1−γ)24ϵγα2
여기서 KL Divergence를 도입해서 바꾼다. 이것에 대한 증명은 2000년에 Pollard의 논문에서 나온다. 그래서 최종 식은 아래와 같이 정리된다.
η(π~)≥Lπ(π~)−(1−γ)24ϵγDKLmax(π,π~)
η(π~)≥Lπ(π~)−CDKLmax(π,π~),C=(1−γ)24ϵγ
1.3.3 practical algorithm
지금까지의 식을 모두 아래와 같이 변경해서 조금 더 보기 쉽게 설명한다.
η(θ):=η(πθ)
Lθ(θ~):=Lπθ(πθ~)
DKL(θ∣∣θ~):=DKL(πθ∣∣πθ~)
이렇게 하면 최종 목적 함수는 아래와 같이 변경된다.
θmax[Lθold(θ)−CDKLmax(θold,θ)]
그러나 C=(1−γ)24ϵγ 이기 때문에 너무 큰 숫자이다. 그래서 이것을 penalty형태에서 constraint 형태로 변경한다.
θmax Lθold(θ)
DKLpθold(θold, θ)≤δ
L을 풀어서 쓰고 Aθold를 Qθold로 대체한다.
θmaxs∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)
DKLpθold(θold, θ)≤δ
이 식을 전부 expectation으로 변경한다.
θmaxEs∼ρθold,a∼q[q(a∣s)πθ(a∣s)Qθold(s,a)]
Es∼ρθold[DKL(πθold(⋅∣s)∣∣πθ(⋅∣s))]≤δ
그리고 state sequence 들을 샘플링 해서 trajectory 들을 계속 모은다.
s0,a0,s1,a1,...,sT
이 모은 것들을 이용해서 optimization 문제를 풀어서 θ를 구한다. optimization 하는 방법은 이해하기가 힘들어서 영상에서도 다루지 않고 내가 읽어봐도 이해하지 못해서 여기서 끝낸다.
1.4. 주요 결과
결과는 별로 좋지 않다. DQN의 논문 같은 경우는 좋은 결과가 나왔었지만 이 논문은 방법론을 제시하는 것이 목적이기 때문이다. 대표적인 DQN과 비교했을 때 대부분 낮은 수치를 보였고 Seaquest에서만 DQN보다 더 높은 성능을 보였다.
심지어 시간도 500번을 업데이트 하는데 30시간이 걸리는 것을 보아 속도도 굉장히 느린 것을 알 수 있다. 그래도 논문의 첫 목적처럼 그래프는 안정적으로 올라가서 학습 자체는 안정적인 결과를 보인다.
1.5. 개인 의견
정리를 나름 한다고 하는데 무슨 소린지 하나도 모르겠다. 나중에 이 논문은 두고두고 계속 읽어봐야겠다는 생각이 들었다.
2. 논문 링크
https://people.engr.tamu.edu/guni/csce642/files/trpo.pdf