본문 바로가기

트렌드 한눈에 보기/학계 트렌드

[CS234] Lecture 9: Policy Search II 정리

지난 시간에 배웠던 Policy Search를 9강에서도 이어서 한다.

지루한 식 전개 부분들을 굉장히 많이 건너 뛰면서 강의를 들었는데,

이 부분이 전체 수업에서 가장 중요한 부분이라고 한다.

뭐 어떻게든 되겠지...?

오늘 배울 부분은 Actor Critic 방법이다.

지난 시간 전에는 Model Free, Value Based Policy Search 방법이었다면

지난 시간에는 Value Function 없이 Policy를 파라미터화 하는 법을 배웠고

이번에는 적절히 섞는 것이다.

늘 그렇듯 적절히 섞는 것이 가장 효과가 좋을 테다.

 

Actor Critic을 통해 얻을 수 있는 효과는 

"Monotonic Improvements"라고 수업에서 강조했는데,

효과가 좋아지면 그만이지, 꼭 일정한 증가가 중요한 것인가 했더니

실생활에서는 단순히 효과가 좋아지는 것에서 그치는게 허용되지 않을 수도 있다고 한다. 

예를 들어, DQN의 성능은 왼쪽 그래프를 따른다.

시간이 흐르면서 좋아질 때도 있고, 나빠질 때도 있는 것인데

만약 실생활에서 쓰는 로봇이 데이터를 계속 입력받으며 학습하는 과정에서

성능이 갑자기 나빠지곤 한다면 안쓰는 것만 못할 것이다. 

 

지난 번 강의에서도 한 두 번 Monotonic Improvement에 대해 설명한 적이 있던 거 같은데

그때도 좀 중요성을 설명해주지, 그때는 그냥 별거 아니겠거니 하고 넘겼었다. 

 

우선 지난 시간에 배웠던 Policy Gradient의 특성과

그것을 보완할 수 있는 방법부터 살펴보자면

Policy Gradient는 Unbiased 하면서도 Noise가 심하게 섞여 있다는 문제가 있었다.

Noise를 잡기 위해서 Baseline이라는 것을 도입할 수 있다.

 

Baseline은 $\nabla_\theta E[R] $ 식에 삽입되어 

보상의 현재가치에서 감산되는 역할을 수행하는데,

이렇게 함으로써 unbias한 성질은 유지하면서도 noise를 줄일 수 있다고 한다.

 

하지만 이 강좌 초반에 bias니 noisy니 하는 이야기가 나올 때부터

그냥 대충대충 넘겼기 때문에 뭐가 더 좋아졌다는 것인지는 잘 모르겠다.

다만 예를 들어 [10 8 12] 라는 목록보다는

평균값을 빼준 [0 -2 2]를 사용해서 다른 행렬에 곱해줄 때

그 값 자체가 줄어듦으로써 편의를 가져올 수 있을 것 같다는 생각이 들기는 한다.

비슷한 맥락이겠지?

 

그래서 나온 위 슬라이드가 Policy Search의 근간이 되는 기본 알고리즘이다.

다시 정리하자면, 일정량의 에피소드를 겪은 뒤에

1) G 함수 정리: 모든 보상의 현재 가치, 여기서는 $\gamma$를 1로 둔다.

2) A 값 정리: G에서 baseline을 빼 준 값으로 몇 강 전에 배웠던 

Advantage Function과 유사하다.

3) Baseline 재정비: 모든 에피소드에 대해 1과 2를 수행한 뒤에 진행

4) Policy Update: $\nabla_\theta log \pi (a_t|s_t, \theta)A_t$를 사용

 

위 순서대로 반복해주면 되는 것 같다. 

 

이제 Policy Gradient를 보완할 수 있는 마지막 방법, Actor Critic을 배울 차례이다.

기존에 사용하던 $R(\tau)$는 몬테카를로 방식으로 계산한,

경험에서 얻은 보상의 합이었다. 

말이 번지르르해서 그렇지 그냥 모든 보상의 총합이라는 뜻이다.

매 보상은 들쑥날쑥할 수 있기 때문에 분산이 굉장히 크고, 

뭐 하여튼 문제가 많았다.

 

이 때 G를 Q로 바꿔줄 수 있다(지루한 식전개를 통해 가능하다).

이렇게 Q 값을 만들어내는 기능을 Critic이라고 하고,

이에 따라서 행동지침을 업데이트하는 기능을 Actor라고 한다.

왜 Critic-Actor라고 하지 않고 Actor-Critic이라고 했는지는 의문이다.

Actor Critic 방법을 사용했을 때, Baseline으로서 가장 잘 작동하는 것은 

State Value Function: V라고 한다.

그렇다면 Critic은 V와 Q를 모두 생성해내야 할까?

아니다. $Q = E(r + \gamma V)$ 가 성립하므로

Advantage function인 $ Q - V$는 $ r + \gamma V - V$로 정리될 수 있다.

 

Policy Search를 사용한 강화학습에서

분산을 줄이는 방법 다음으로 고려할 것은 Step Size를 정하는 것이다.

Step Size는 학습 속도와도 연관되어 있기 때문에 

최적의 값을 찾는 게 중요하다고 CS231n부터 귀에 못이 박히도록 들었는데

강화학습에서는 중요한 이유가 하나 더 붙는다.

 

CS231n 같은 Supervised Learning 과정에서는 미리 존재하는 데이터로

학습을 진행하게 되며, 각 데이터는 서로 독립적이다.

하지만 강화학습에서는 매 step 마다 행동지침을 하나씩 만들어내면서

데이터를 추가하게 된다.

안좋은 지침이 생기면 좋지 않은 데이터도 생겨버리면서

다음 스텝에도 지장을 주게 된다는 뜻이다.

그래서 Step Size를 잘 정해야하면서도, 자동적으로 결정되게끔 하기 위해

Monotonic Improvement를 또 등장시킨다.

Step Size가 변할 때 새롭게 학습한 행동지침이 기존 행동지침보다 항상 좋아야 한다는 것이다.

결국 또 다시 V를 이리 저리 전개해서는 

새로운 행동지침을 따르는 V와 과거의 V를 비교하는 부등식을 탄생시킨다.

저 식을 만족하는 한, monotonic improvement가 만족되고 있다고 생각할 수 있으므로

해당하는 방향으로 행동지침의 파라미터들을 변화시켜나가도 좋다~ 라고 해석할 수 있다.