Value Based 와 Policy Based 을 혼합한 방식으로, 서로 다른 파라미터를 사용하는 두 개의 NN 을 사용한다.
Critic Network 이 추정한 Value Function 을 토대로 Actor Network 이 Policy 를 업데이트한다.
이전에 살펴본 REINFORCE 는 추정값이 unbiased 였지만, high variance 로 인해 학습이 느리다는 단점이 있었다. 또한 매 episode 가 끝날 때 업데이트가 진행되기 때문에 online learning 이 어려웠다.
이를 개선하기 위해 Critic 을 사용하게 된다. Value를 target이 아닌 추정치로 대체하고, $G_t$ 대신 bootstrapped return 을 사용한다.
$$ \nabla_\theta J(\theta)=E_{\pi_\theta}[(r+\gamma V_\phi(s')-V_\phi(s))\nabla_\theta log\pi_\theta (a\mid s)] $$

Actor 는 정책을 직접 학습해 주어진 상태에서 어떤 행동을 취할지 결정한다. 이 행동을 실행하면 환경이 보상과 다음 상태를 반환한다. 이 다음 상태는 Critic 의 입력이 된다. Critic 은 이 행동을 평가하고 Q-value 를 출력한다. 이 값은 Actor를 업데이트할 때 baseline 혹은 TD error 계산에 사용된다.
Critic 과 Actor 는 같은 네트워크를 공유하고, 서로 다른 weight parameter 를 가진다.
수식은 동일한데, 무엇을 중심으로 학습/최적화되는지 살펴보자.
