앎을 경계하기

Machine Learning/Reinforcement Learning

차근차근 Spinning Up 톺아보기 5 - Part 3: Intro to Policy Optimization

양갱맨 2019. 11. 8. 02:33

Expected Grad-Log-Prob Lemma

이번 섹션에서, 우리는 policy gradient의 이론을 통해 널리 사용되는 중간 결과를 도출할 것이다.

Expected Grad-Log-Prob을 줄여 EGLP라고 부를것이다.

EGLP Lemma

P_{\theta}가 확률변수 x에 대한 매개변수화된 확률 분포라고 가정하면, 다음식이 성립한다.

증명

Don't Let the Past Distract You

PG를 위한 가장 최근의 표현을 보자.

gradient 과정으로 인해 한 스텝 업데이트가 되면 모든 보상의 합인 Return에 비례하여 각 액션의 log-prob이 높아진다.

하지만 이것은 아직 별로 의미가 없다.

에이전트들은 결과에 따라 행동을 강화해야한다.

액션하기전에 얻은 보상은 하려는 액션이랑 관련이 없어서 그 액션이 얼마나 좋은지 영향을 미치지 않는다.

이것은 수학적으로 밝혀졌고 다음식으로 policy gradient를 표현할 수 있음을 보인다.

위 형태에서, 액션들은 액션을 한 후에 얻은 reward에 의해서 강화된다.

이것을 "reward-to-go policy gradient"라고 부른다. 왜냐하면 하나의 trajectory에서 한 지점 후의 보상들의 합이기 때문이다.

왜 이게 더 낫다고 말할 수 있을까?

policy gradient의 주요 문제는 낮은 분산의 sample estimation을 얻기 위해 필요한 샘플이 얼마나 많아야 하냐는 것이다.

이전 reward에 비례하여 action을 강화하는 term을 포함시켰다. 하지만 모두 평균은 0이지만 variance는 0이 아니다.

결과적으로 policy gradient의 sample estimate에 노이즈를 추가했을 것이다. 이것을 제거함으로써 필요한 샘플 trajectories의 수를 줄일 수 있다.

reward-to-go policy gradient 구현은 spinning up github 코드 참고

 

Baselines in Policy Gradients

EGLP 정리는 상태에만 의존하는 함수 b가 생긴 것이다.

아래 식에서 expectation 안쪽을 변화시키지 않으면서 PG 식 안에 b부분에 어떠한 term을 넣거나 뺄 수 있다.

이 b를 baseline이라고 부른다.

가장 대표적으로 사용되는 baseline은 on-policy value function이다.

op-policy value function은 만약 state s_t에서 시작했고 policy pi를 따라서 움직일때 에이전트가 얻는 평균 return이다.

경험적으로 op-policy value function을 사용하는 것이 policy gradient를 하기 위한 sample estimate에서 variance를 낮추는데 가장 좋은 효과를 보였다.

빠르고 더 안정적으로 policy를 학습한다. 또한 개념적인 측면에서도 의미가 있는데, 에이전트가 기대한 것을 얻는다면 그것에 대해 중립을 느껴야한다는 직감을 얻게된다.

실제로 value function이 정확하게 계산이 될 수 없기때문에 근사를 한다.

대개 뉴럴넷을 사용하는데 아래와 같이 value function에 대한 parameter를 사용하여 나타낸다.

approximated value function은 policy와 함께 동시에 업데이트 된다.

이것은 value network가 항상 가장 최근의 policy의 value function을 근사한다는 것을 말한다.

approximated value function을 학습시키는 가장 간단한 방법은 MSE를 최소화하는 것이다.

Mean-Squared-Error는 정답과 예측값의 차이를 제곱한 평균 오차이다.

위 식에서 k는 epoch을 의미한다. 

 

PG의 다른 형식

우리는 다음과 같이 파이 부분에 무언가를 넣을 수 있다.

모두 분산은 다르지만 PG에 대해 동일한 예상 값을 따르게 딘다.

위 세가지 말고 알아야하는 중요한 2가지가 있다.

첫 번째는 On-Policy Action-Value Function이다.

두 번째는 Advantage Function이다.

advantage function은 action value function - value function으로 이 액션이 얼마나 좋은 액션인가를 나타내는 함수이다.

advantage 함수를 쓰는 것이 가장 일반적이고 advantage function을 estimation하는 방법은 여러가지가 있다.

더 자세히 이 부분에 대해 알고싶다면 GAE논문을 보면된다.