본문 바로가기

인공지능

Actor Critic, Baseline 정리

Actor Critic

$$ \nabla_{\theta}J(\theta)= \mathbb{E}_{\pi{\theta}}[\nabla_{\theta}\log\pi_{\theta}(s,a)Q^{\pi_{\theta}}(s,a)] $$

지난번 Policy Gradient Post에서 Policy Gradient는 $$$ Q^{\pi_{\theta}}(s,a) $$$를 사용하여 구할 수 있다고 하였다. 이 때 Monte-Carlo를 사용하기 때문에 high-variance 문제가 생겨납니다. 이를 해결하기 위한 방법 중 하나가 $$$ Q^{\pi_{\theta}}(s,a) $$$를 직접적으로 사용하지 않고, 또 다른 function으로 approximation하여 Q-function을 만들고, policy는 이 학습된 Q-function을 기반으로 학습하는 방식이다. 이 방법이 Actor-Critic Policy Gradient입니다. 수식적으로는 다음과 같습니다.


$$ Q^{\pi_{\theta}}(s,a) \approx Q_{w}(s,a) $$

$$ \nabla_{\theta}J(\theta)= \mathbb{E}_{\pi{\theta}}[\nabla_{\theta}\log\pi_{\theta}(s,a)Q_{w}(s,a)] $$


여기서 Critic은 Q-function을 approximation하고, Actor는 Policy를 approximation한다. $$$ w $$$는 critic를 학습하는데 사용하며, $$$ \theta $$$는 actor를 학습하는데 사용한다. Actor의 학습은 Q-Value를 Critic을 사용한다는 점만 빼고는 동일하며, Critic의 학습은 다음과 같은 방법으로 이루어 진다.

  • Monte-Carlo evaluation
  • Temporal-Difference Learning
  • TD($$$\lambda$$$)

Baseline

Actor Critic말고도 Variance문제를 해결하는 방법이 Baseline입니다. policy gradient 이론에서 $$$B(s)$$$라는 baseline function을 구할 수 있습니다. (논문의 Chapter. 3) baseline 함수는 각각의 state에 대해서 zero mean을 가집니다. 그렇기 때문에 Q-function을 $$$ A^{\pi}(s,a) $$$(Advantage Function)와 baseline 함수로 분리하면 다음과 같은 관계를 유도할 수 있습니다. 그리고 baseline function으로 쓰기 좋은 것이 state value function입니다. 그렇기 때문에 baseline함수로 state value function을 사용하면 된다.


$$ A^{\pi}(s,a)=Q^{\pi}(s,a))-V^{\pi}(s)$$

$$ \nabla_{\theta}J(\theta)= \mathbb{E}_{\pi{\theta}}[\nabla_{\theta}\log\pi_{\theta}(s,a)A^{\pi_{\theta}}(s,a)] $$


실제 계산상에서는 State Value을 aprroximation하고, Q값을 Monte carlo 방식, TD Learning방식을 통해 구한 후, advantage function을 구하는 과정을 통해 구하면 된다.

그 밖에도 State Value function 뿐만 아니라 Q-Value 또한 Approximation 한 후 Adavantage function을 구하는 방식도 있다.

'인공지능' 카테고리의 다른 글

Policy Gradient 정리  (0) 2018.04.15
Restricted Boltzmann Machine + MNIST  (0) 2013.05.31
신경망 시작 - McCulloch_Pitt 모델(1)  (0) 2013.02.16