이전까지 우리가 value, action-value function 값을 불러온 방식은 각각 s와 (s,a)를 entry로 하는 lookup table 방식이었다.
하지만 큰 model에 대해서는 각 state에 대해 value를 배우는 것이 너무 느리고 모든 정보를 저장하는 것이 단점으로 작용하므로 아래와 같이 parameter를 추가하여 함수를 근사하는 방식을 생각하게 되었다.
이 파라미터 w는 향후 MC나 TD 방식으로 update 될 수 있다
아래 그림과 같은 미지의 box를 생각해 볼 수 있으며 가운데와 같이 유도되는 함수 형태를 action-in 이라 하며 오른쪽은 action-out 이라 부른다.
function approximator 는 linear combination 을 사용하거나 Neural Network를 사용한다
state를 나타내는 형태이며 다음과 같이 벡터로 표현되어 value function은 linear combination으로 state의 요소에 weight를 가해 표현가능하다
앞선 절에서 본 벡터 w에 대한 변화량 식에서 에 해당하는 자리에 가 들어가야 하므로(v는 x와 w의 단순내적) update rule은 아래와 같다.
Local optimum에 수렴한다고 하며 위에 제시된 것과 다르게 non-linear function에서도 작동한다.
TD 방식은 bootstrapping 방식을 사용하기 때문에 biased 된 sample이며 global optimum에 가까이 수렴한다고 한다.
TD() 방식은 마찬가지로 biased 되어 있으며 앞서 배운 대로 eligibility trace 함수를 이용하면 backward와 forward view 가 아래와 같이 동일하게 적용될 수 있다.
policy control 과정에서 improvement는 앞선 chapter에서 배운 것과 같이 -greedy 방식으로 진화한다는 점에서 동일하지만 evaluation은 approximate policy evaluation을 하게 되고 뒤이서 설명하도록 하겠다
Action value function도 state value function 과 마찬가지로 parameter w를 추가해 s,a,w 를 갖게 되며 true action value function 를 갖는다고 했을 때 다음과 같이 parameter w를 업데이트 할 수 있다.
앞서 state value function에서 했던 것과 마찬가지로 feature에 대해 아래와 같이 linear combination으로 나타내면 state value function q에 대해 gradient를 구했을 때 state feature vector 만 남게 되므로 아래와 같은 parameter 업데이트 결과를 얻는다
앞서 말한 true action value function 가 실전에서는 주어지지 않기 때문에 state value function에서 했던 것과 같이 세 가지 방식으로 target 함수를 잡고 parameter update 할 수 있다.
D 와 같은 batch가 있을 때 각 time step에 대해 target 값 에 가까워지게 Least square를 구하는 방식을 소개한다.
이런 방식을 소개하는 이유는 batch에서 (state,value)를 sample 하여 위에서 배운 SGD를 적용하면 Least Square 의 해에 수렴하기 때문이다
experience replay
stable compare to naive - because decorelated trajectories
fixed Q-targets
Q 가 target으로 하는 함수에는 old parameter를 사용하고
(stable update; TD 에서 문제가 되는 한번 업데이트 시 target이 변하는 문제를 보완하기 위해)
앞서 했던 것처럼 value function을 로 두었을 때 SGD 방식으로 도달하는 Least square의 minimum에서는 parameter w에 대한 gradient 변화가 더 이상 없어야 하며 기대값으로 아래와 같이 표현할 수 있다. 또한 parameter update에 관한 수식을 통해 w에 대한 식을 한번에 계산하기 위해서는 아래와 같이 계산하면 된다.
이제 state 개수가 아닌 feature vector의 dimension에 비례하는 시간 복잡도를 확인할 수 있다.
앞서 제시했던 MC, TD, TD()에 대해 target function 는 모두 다르기 때문에 각각의 식은 아래와 같이 나타나며 LS 접두사는 Least Square를 의미한다.
각각의 방식에 대한 convergence 결과를 통해 어떤 알고리즘을 사용해야 하는지 알 수 있다.
앞장에서 배운 Q-learning에 LS(least squares)를 접목해서 policy iteration을 구성할 수 있다.
Training 자료로 쓸 Experience 들이 서로다른 policy에서 generate 되었기 때문에 off-policy learning의 일종인 Q-learning을 사용하는 것이고 아래와 같은 아이디어를 사용한다.
앞에 했던 것과 마찬가지로 LS(Least squares) minimum은 더 이상 parameter 변화가 없음을 의미하므로 off-policy 수식을 살짝 변형해서 ( 이 아닌 ) matrix mult 형태로 변형하면 다음과 같다.
이 방식은 LSTDQ 라고 부르기로 한다.
LSTDQ를 이용한 Least Squares Policy Iteration의 pseudo code은 아래와 같다.