Actor-Critic Policy Gradient
Last updated
Last updated
Monte-Carlo Policy Gradient 알고리즘을 다시 살펴보겠습니다.
REINFORCE알고리즘에서는 Return을 사용하기 때문에 Monte-Carlo 고유의 문제인 high variance의 문제가 있습니다. 또한 episode자체가 길수도 있기 때문에 학습하는 시간이 오래걸릴 수도 있습니다. 따라서 다음과 같은 아이디어를 낼 수 있을 것 입니다. parameter를 하나 더 사용해서 action value function도 approximation하는 것입니다.
그러한 알고리즘을 actor-critic이라고 부르고 아래 그림을 통해 설명하도록 하겠습니다. Critic은 action value function을 approximate하는 w를 update하고 Actor는 policy를 approximate하는 $$\theta$$를 update합니다. 따라서 w와 $$\theta$$라는 두 개의 weight parameter를 사용해야합니다.
이 Critic은 action value function을 통해 현재의 Policy를 평가하는 역할을 합니다. action을 해보고 그 action의 action value function이 높았으면 그 action을 할 확률을 높이도록 policy의 parameter를 update하는데 그 판단척도가 되는 action value function또한 처음에는 잘 모르기 때문에 학습을 해줘야하고 그래서 critic이 필요합니다.
action value function을 update하는 것은 chapter 8에서 봤던 것처럼 TD(0)를 사용하여 update합니다. 아래는 action value function을 linear하게 approximation했을 경우입니다. DNN을 사용할 때는 이전에 배웠던 방법으로 바꿔서 사용하면 됩니다. TD(0)를 사용한 Actor-Critic알고리즘을 아래와 같습니다. Monte-Carlo PG때와는 달리 매 time step마다 update를 하는 것을 볼 수 있습니다. 또한 update할 때는 policy의 parameter와 action value function의 parameter를 동시에 update해줍니다.
여기까지 기본적인 Policy Gradient의 개념에 대해서 살펴보았는데 Actor Critic말고 다르게 Variance문제를 해결하는 것이 Baseline입니다. Q function 이후로 사용하고 있지 않던 State value function을 일종의 평균으로 사용해서 현재의 행동이 평균적으로 얻을 수 있는 value보다 얼마나 더 좋나라는 것을 계산하도록 해서 variance를 줄이는 것입니다. 즉, 지금까지 해왔던 것보다 좋으면 그 방향으로 update를 하고, 아니면 그 반대방향으로 가겠다는 것입니다.
이러한 advantage function의 사용은 variance를 상당히 개선시킬 수 있습니다. 하지만 아래와 같이 value function과 action value function을 둘 다 approximation해줘야 한다는 단점이 있습니다.
하지만 다시 action value function이 immediate reward + value function이라는 것을 생각하면 아래와 같이 결국 value function 하나만 approximate해도 되서 critic에 parameter를 두 개 사용하는 비효율성을 개선할 수 있습니다.
지금까지는 evaluaton으로 TD(0)를 사용했지만 이전에 배웠듯이 이 자리는 TD($$\lambda$$)가 들어갈 수도 있고 eligibility trace가 들어갈 수도 있습니다. 위 방법은 variance가 낮은 대신에 one step만의 정보로 update하므로 bias가 높습니다. 이 문제에 대한 대책으로 TD와 MC사이의 방법인 TD($$\lambda$$)를 사용할 수도 있다는 것입니다.