본문 바로가기
Paper Review/RL

(Paper Review) TRPO (3)

by mogazi 2023. 5. 23.

Paper link : https://arxiv.org/pdf/1502.05477.pdf

TRPO Review (1) : https://mohazi.tistory.com/entry/Paper-Review-TRPO-1

TRPO Review (2) : https://mohazi.tistory.com/entry/Paper-Review-TRPO-2

 

샘플 기반의 objective and constraint estimation

 

여기서 L이 objective이고, D가 constraint이다.

 

 

위의 L을 풀어 써보면 다음과 같다.

그 다음 sample기반의 monte-carlo estimate 으로 대체해야한다.

 


먼저 

를 

로 대체한다.

 

이는 s가 p에서 sampling되었을때로 대체한다. 

앞에 (1 / 1-γ) 를 곱한 이유는 p가 무한 급수로 γ가 계속 곱해지면서 그러한 함수들이 차이가 나서 곱한 것이지만, 사실 없어도 큰 문제는 없다. 그 이유는 (1 / 1-γ) 가 곱해진 것을 maximize하나, 상수가 곱해지지 않은 것을 maximize하나 θ는 똑같다.

 


그 다음 

를 

로 대체한다.

 

A는 Q-V 라고 했었는데, 이때 V는 constant이다.

근데 V는 A_θ_old를 상수만큼 바꾸는 거기 때문에 상관없다. (objective를 constant만큼 바꾸기 때문)

예를 들면 x를 maximize하는 것과 x-3을 maximize하는 것은 결국엔 같다

 

 

 


importance sampling

 

 f라는 함수의 기댓값을 구하고 싶은데, X는 P로부터 sampling한다.

하지만 실제로는 X는 Q로부터 sampling되고 있는것

그래서 Q는 sampling distribution이고, old policy를 사용할 것이다.

 

 

importance sampling을 하는 이유는 Expectation 형태로 만들어주기 위함.

Expectation 형식으로 바꾸는 이유는 Monte Carlo 방법을 적용하기 위해 확률 변수를 샘플링할 수 있는 형태가 필요하기 때문이다.

 

 

 

 


Single Path

 

p_0 (initial state distribution) 를 따르는 s_0 로 부터 states sequnece를 sampling한다.

sampling할 때는 π_θ_old를 사용한다

 

즉 현재 policy로 sampling을 하는 것이다.

 

 

만약 a가 π_θ를 따르도록 했다면, 구하지 못한다 

아직 update하지 않은 policy로는 sample을 만들 수 없기 때문

현재의 policy로만 update를 할 수 있다.

 

그래서 importance sampling을 한 것이다.

 

 

다음과 같이 trajectory를 계속해서 모은다

 

Q는 계산한 값들을 더한 값이다

 

이를 이용해서 위 식의 objective와 constraint를 계산한다

 

 


요약 

1. 이론적으로 KL diverence penalty 를 사용한 surrogate objective 를 최적화 해도 된다는 것을 확인함 

2. 그런데 penalty 로 하면 C가 너무 커져서 step이 너무 작아지므로, penalty 대신  constraint를 사용함

3.

을 측정하기 어려워서 평균 기반의 

을 사용했다.

4. Advantage 함수의 측정 오차는 무시했다.

 

 


experimental evaluation

 

Atari실험 평가로는 DQN과 성능이 비슷하거나 좋지 않았다.

 

TRPO논문은 "최고의 방법론을 개발했다"의 의미기 아니라 "이론적으로 안전하게 policy 를 최적화할 수 있는 방법(수식)을 제시하고,  그 수식을 practical하도록 여러 근사치를 넣어서 practical한 알고리즘을 제시했다" 에 의의가 있다

 

 

짧게 요약하면 이전에 존재하지 않았던 완전히 새로운 알고리즘을 만들어냈다.