Policy-based Reinforcement Learning

Deep Q-learning을 생각해보자. 여기서는 value와 action-value 값을 어떤 parameter 를 갖는 함수로 모델링하였다.

즉, Deep Q-learning은 value function에 대한 추정을 통해 좋은 policy를 생성하는 것이 목적이다. 이러한 학습 방법을 value-based RL이라고 한다.

Policy-based RL은 value function을 따로 정의하지 않고, policy를 parameterize하여 해당 parameter를 직접적으로 최적화하는 방식을 말한다.

Policy-based RL은 일반적으로 value-based에 비해 convergence가 빠르고, stochastic한 policy를 만들어낼 수 있다는 장점이 있다. 특히, action이 단순하지 않고 high-dimensional하거나 continuous한 경우에 효과적이다. 하지만, 일반적으로 local optimum에 도달할 확률이 높고, 또한 policy에 대한 evaluation이 쉽지 않다는 특징도 있다.

Policy Gradient in One-Step MDPs

Parameterized policy 의 reward function은 다음과 같다.

Policy-based RL은 를 maximize하는 best 를 찾는 것이 목적이기에, gradient ascent와 같은 알고리즘을 사용하기 위해서는 에 대한 gradient 계산이 필요하다.

Example: One-Step MDPs

이 어떤 형태의 값을 갖는지 알아보기 위해 우선 간단한 one-step MDP를 고려해보자. 즉, 하나의 time-step이 지나면 reward 과 함께 episode가 종료된다.

이 경우, reward function 는 다음과 같다.

여기서 를 따랐을 때의 Markov chain의 stationary distribution을 의미한다.

위 식을 이용하면, 는 다음과 같다.

이 때, likelihood ratio로 표현할 수 있다.

위 식를 이용해서 를 다시 쓰면,

이 때, score function이라고 부른다.

즉, sample을 통해 직접적으로 gradient 계산이 가능하다.

이 변형이 왜 중요한지 짚어보자. 원래 에는 우리가 직접 계산하기 어려운 환경 항(상태 분포 등)이 얽혀 있다. 그런데 likelihood ratio trick을 거치면 gradient가 형태의 기댓값으로 바뀌고, 기댓값은 곧 sample 평균으로 근사할 수 있다. 즉 환경의 dynamics를 전혀 몰라도, agent가 직접 굴려 모은 trajectory만으로 gradient를 추정할 수 있게 된다.

직관적으로 update 식 이 하는 일은 단순하다. 는 “이 행동의 확률을 높이는 방향”을 가리키고, 거기에 reward 이 가중치로 곱해진다. 따라서 좋은 결과(큰 )를 낸 행동은 더 자주 하도록, 나쁜 결과를 낸 행동은 덜 하도록 policy가 조정된다. 보상으로 행동의 확률을 직접 밀고 당기는 셈이다.

Softmax Policy: Discrete Actions

Action space가 discrete한 경우에 많이 사용되는 policy로는 softmax policy가 있다. Softmax policy의 경우, 각 action에 대해서 state-action feature vector 를 이용하여 다음과 같이 확률을 부여한다.

Softmax policy에 nonlinearity를 부여하기 위해 를 neural net으로 변경할 수도 있다.

Softmax policy의 score function은 다음과 같다.

Gaussian Policy: Continuous Actions

반대로, action space가 continuous한 경우 주로 Gaussian policy가 사용된다.

여기서 mean은 state feature로써 표현된다: . Variance는 일반적으로 constant로 고정시키지만, parameterize할 수도 있다.

Gaussian policy 역시 를 neural net으로 변경하여 nonlinearity를 부여할 수 있다.

Gaussian policy의 score function은 다음과 같다.

Monte-Carlo Policy Gradient

Policy Gradient Theorem

앞서 살펴본 one-step MDP에 적용한 policy gradient 접근 방법을 multi-step MDPs로 일반화할 수 있다. 다음 Theorem은 One-step MDP에서의 reward 을 long-term value 로 대체하는 것으로 유도할 수 있다.

Theorem: Policy Gradient Theorem For any differentiable policy and any policy objective function, the policy gradient is

REINFORCEMENT Algorithm

Policy gradient theorem에 기반하여 Monte-Carlo estimation을 이용하면 policy gradient RL이 가능해진다. 이를 REINFORCEMENT 알고리즘이라고 한다.

REINFORCEMENT 알고리즘은 에 대한 unbiased sample로 return 를 사용한다. 즉, true action-value를 모르므로 그 자리에 “그 행동 이후 에피소드 끝까지 실제로 받은 누적 보상” 를 그대로 꽂아 넣는다.

이것이 앞서 말한 밀고 당기기의 구체적 형태다. 에피소드가 끝난 뒤, 좋은 return을 가져다준 들의 확률은 올리고 나쁜 것들은 내린다.

하지만 하나의 에피소드 전체에서 나온 단일 sample이라는 점이 약점이다. 같은 state에서 같은 행동을 해도, 이후 운에 따라 return이 크게 출렁이므로 의 variance가 매우 크다. 그 결과 gradient 추정도 noisy해져 학습이 느리고 불안정하다. 이 높은 variance를 어떻게 줄일 것인가가 다음 글(Actor-Critic)의 출발점이다.

REINFORCEMENT 알고리즘의 pseudocode는 다음과 같다.

  1. 를 임의의 값으로 초기화한다.

  2. 각 episode 에 대해, 동안 아래 식을 이용해서 update 진행.

  3. 2번을 반복적으로 수행 후, 최종 return.