TD 란 Temporal-Diffrance , 시간의 차를 두어 학습한다의 용어이다.

일단 이 내용 리뷰를  쓸까 말까 고민을 하다가 작성을 하는데 

그이유는 구현하기전 까지는 정확히 컨셉이 이해가 안될 것 같아서이다.

 

MC method 와 DP 방법을 결합했다고 하는데, 두개 컨샙이 아예 달라 애매 한 말이다.

1.상태 전이 확률 p 를 준다는 뜻인가?  > 아니오 상태 전이확률이 필요없다.

2. v pi(s') 를 이용해 v_pi(s) 를 구한다는 뜻인가? > 예

3. 에피소트의 (S,A,S,A 시리즈) 로  value function 을 업데이트 하겠다는 뜻인가? >Yes

 

어쩃든 목적은 정책 pi 에 대해서 vpi 를 추정하는데 목적이 있다.   MC method를 개량 한 것이라 생각한다.

 

원래는 MC method 로 한 에피소드 종단까지 기달려야 하지만,

TD method 는 중간에 Value function 를  v(s) = v(s) + a( g(t) - v(st) )  이렇게 업데이트하는데, 여기서 g(t) 는 우리가 구한 value_function 이 아니라  t 시간이후의 이득(?) 이고 이 값을  (Rt+1 + rV(st+1) ) 값으로 대체 하여 

V(st) 를 업데이트한다. 이방법을 TD(0) 이라하며 one step TD 라고한다.

two step TD 이면 Rt+2 + rV(st+2) 가되려나? 아니면 2개의 합산이되려나 아무튼 뒤에 다시 나온다 한다.

 Gt − V (St) 를 Td Error 라 한다.

 

아무튼 이방법이 MC - method 에 비해서 이점이 있겠지 .. 

언뜻봐서는 MC 도 충분히 평가나 value function 의 갱신이 빠를것같은데..

TD 는 그것보다 더빠르다고,, 에피소드가 길어지거나 아예없는 경우에 이점이 더 커진다고한다.

정리하자면

 

1.MC 에 비해서 online 으로 가치 평가가 된다. (에피소트종단전에)

2. 수렴성이 MC 와 마찬가지이다. -t가 작아질수록 수렴에 도움이되는데 책에는 수식적인 이유는 없다 그렇다고 한다.

 

Td 에도마찬가지로 On-policy / Off policy 방법이 존재한다.

Td ,on-policy method 를 sarsa method라고하며

Td ,off-policy method 를 Q-learning 이라고한다. 의사코드로 비교해보자

이 의사코드를 한번 보면

일단 using policy dervied from Q 라는 뜻이 처음에 잘 이해가 안됬다. 

 

Q 러닝에서는 따로 pi 가 지정되어있지 않고, Q(s) 에서 갈 수 있는 다른 value function 들의 추정값 (Q(S,A1) , Q(S,A2) ...) 으로부터 

가장 큰 값으로 정책을 결정 하고 나머지는 epsilon 을 주는 방식 이기 때문 이다.

이 부분에 있어서 우리는 MC method 완 다르게 정책을 입력으로 받을 필요가 없는 부분이고, 

Q- value 자체가 정책을 결정한다.  그래서 Q 로 묶어버리기 때문에 정책 향상 과정도 따로 필요가 없을듯 하다.

 

또한 off/on policy 차이 도있지만

sarsa 와 Q - learning 차이 점충 가장  큰 부분은 sarsa 의 경우 Next Action 까지 확률적 정책으로 떙겨오지만,

Q-Learning 의 경우 next state 를 까지는 같지만 그다음 action 의 경우 가장 큰 가치의 value function 값으로 땡겨온다.

 

이것이 Action 이 현재 정책을 따라 가지 않는 부분이기 때문에 Q-Learning 을 off -policy 라고 한다. 

앞장하고 컨샙이너무달라서 이해가안될 수 밖에 없다.

 

아무튼 이제 구현을 해봐야겠다.

지인의 조언으로서는 Sarsa 가 메모리형식으로 저장이 불가능한 반면에 

Q-learning 은 메모리제어가 가능하다고.. 한다.

 

우리가 비교해볼 수 있는것들은

TD vs MC vs DP  일단 이렇게 3개를 비교해볼 수 있을 것 같고,

TD(Sarsa) vs TD(Q) 가 어떻게 다른지 비교를 하는 예제를 구현 해볼 수 있을 것이다.

 

다음 에는 진도대신 이 예제를 구현해보는 것으로 포스트(프로젝트)를 대신하겠다.

+ Recent posts