Value function Approximation
Last updated
Last updated
지금까지 살펴본 강화학습은 action value funciton을 Table로 만들어서 푸는 Tabular Methods입니다. 이에 대해서 Sutton교수님은 책에서 다음과 같이 이야기합니다. 즉, 현재의 방법은 state나 action이 작을 경우에만 적용 가능하다는 것입니다. 이 Table이 점점 더 커지면 이 값들을 다 기억할 메모리도 문제지만 학습에 너무 많은 시간이 소요되기 때문에 사실상 학습이 불가능합니다. 앞에서 다뤘던 예제들도 다 gridworld같이 작은 예제였다는 것을 알 수 있습니다.
We have so far assumed that our estimates of value functions are represented as a table with one entry for each state or for each state{action pair. This is a particularly clear and instructive case, but of course it is limited to tasks with small numbers of states and actions. The problem is not just the memory needed for large tables, but the time and data needed to fill them accurately. In other words, the key issue is that of generalization
즉 아래와 같은 문제는 어떻게 풀거냐는 것입니다. 현재의 방식은 실용적이지 못하기 때문에 "Generalization"이 가능해지려면 새로운 idea가 필요합니다. 특히나 강화학습을 실재 세상에 적용시키고 싶다면 실재 세상은 continuous state space이므로 사실상 state가 무한대이기 때문에 새로운 방법이 있다면 로봇이 강화학습으로 학습하기는 어려울 것입니다.
이에 대한 해답은 아래와 같습니다. table로 작성하는 것이 아니고 w라는 새로운 변수를 사용해서 value function을 함수화하는 것입니다.
그림으로 표현하자면 아래와 같습니다. state가 함수의 input으로 들어가면 w라는 parameter로 조정되는 함수가 action value function을 output으로 내보내는 것입니다.
예를 들면 다음과 같습니다. $$y=x^2$$라는 함수가 있을 때 (1,1), (2,4), (3,9)라는 식으로 점을 다 찍어서 이 함수를 표현할 수도 있고 $$y=ax^2+bx+c$$에서 $$a=1, b=c=0$$이라고 표현할 수도 있을 것입니다. 후자가 더 효율적으로 표현할 수 있고 사실 점으로 찍지 않은 곳에 대해서는 아무 정보도 알 수 없는데 함수의 형태로 표현하면 모든 state에 대한 value function을 알 수 있습니다.
이제는 학습을 통해서 Q function을 update하는 것이 아니고 w라는 parameter를 업데이트하게 됩니다. 이러한 function approximation 방법에는 여러가지가 있습니다.
이 중에서 저희는 위의 두 가지를 볼텐데 (1) Linear combinations of features (2) Neural network를 볼 것 입니다. (2)은 특히 최근에 딥러닝의 발전으로 각광받는 방법입니다. 최근의 강화학습은 다 딥러닝을 approximator로 사용하기 때문에 보통 deep reinforcement learning이라고 부릅니다.