(Paper Review) TRPO (2)
Paper link : https://arxiv.org/pdf/1502.05477.pdf
TRPO Review (1) : https://mohazi.tistory.com/entry/Paper-Review-TRPO-1
General한 Stochastic Policy
Total variation divergence
η가 policy의 성능을 의미하는데 η가 최소한 줄어들지 않는다는것은 매번 update할 때마다 improvement를 guarantee해준다.
state가 수억개 있으면 action도 수억개를 구해야하므로 이건 말이 안되는 알고리즘.. 이론적인 알고리즘이다.
이 식을 maximize하는 policy π를 구해서 새로운 policy π_i+1를 구한다
이것이 수렴할때까지 반복한다는 알고리즘이다.
Question
일 때
가 성립할까?
Proof
라고 하면
1)
이 성립한다. 이건 자명한 사실 ..
2)
이 식이 성립할 수 있는 이유는 i라면 CD의 (π_i, π)의 거리가 0이다. 그러면 M_i (π) = L_π_i (π) 와 같다.
위의 식에서 θ_0일때 L_π와 η가 같다는것을 TRPO review (1)에서 증명했으므로 2)식은 θ_0자리에 i를 넣은 것 뿐이다 그러므로 2)식도 성립한다.
3)
1) , 2) 식을 다 만족하므로 3)식도 만족할 것이다
결론적으로는 우리가 원하는 값은 M_i가 극대화되는 값이다.
3) 식의 따름정리에 의하면 M_i를 극대화하는 것은 η를 극대화하는 것이라고 할 수 있다.
Convert to a practical algorithm
지금부터는 π 를 θ로 parameterize 한 상태로 바꾼다. 또한, 이전 policy의 parameter를 θ_old로 쓰겠다.
이전에는 위의식을 maximize하는 policy π를 찾는것이 목적이었다면, 이제는 위의 식을 maximize하는 θ를 찾는 것이 목적이다.
위의 목적 함수에서는 최적화 문제가 있는데, γ가 만약 0.99이라면, C는 만자리 숫자로 매우 커진다. 이 C의 계수 그대로 maximize를 하면, θ_old와 θ가 바뀌지 않게 된다. 그래서 위의 목적 함수를 다음과 같이 constraint 형태로 변경했다.
D_KL (θ_old, θ)를 δ보다 작게 하면서, L_θ를 최대화하는 것이다.
( 위의 목적 함수에서 L_θ를 최대화하는 것은 똑같다)
δ는 어떤 숫자를 의미한다.
이제는 D_KL( ) 를 구할 수 없는 문제가 생긴다.
그 이유는 이 값의 policy가 모든 state에서 평가될 수 있다는 가정 하에 만든것인데, 이는 현실세계에서는 불가능하다.
따라서 D_KL대신
을 도입했다. 이는 max대신에 평균을 사용한 것이다.
이 state의 분포대로 state를 막 돌아다니면서 그때의 KL divergence를 구한 값의 기댓값을 구하는 것이다.
그것이 평균이다.
전체의 값이 1억개가 있다면 1000개만 sampling해서 (1000개만 평균을 내서) 사용하자는 것
-> 평균을 사용하는 이유는 1000개의 평균은 1억개의 평균과 가까워지는데, max를 사용하면 1000개의 max는 1억개의 max와는 unbiased estimator가 아니다. (1000개의 평균은 1억번에서 max들의 평균을 낸 것에 max보다는 작을 것이다)
그래서 평균을 사용한다.