데이터사이언스/강화학습

강화학습 - (24) 시간차 가치 근사

_금융덕후_ 2020. 11. 21. 15:42
728x90
반응형

강화학습

시간차 가치 근사

시간차학습(TD)은 에이전트 자신의 가치함수를 사용해 예측값을 갱신하는 방법이다.

이를 함수 근사를 통해 구현하는 방법을 배워본다.

 

몬테카를로 경사

몬테카를로 경사 갱신 수식을 다시 살펴보자:

ww+α[Gtv^(St,w)]v^(St,w)

몬테카를로 경사에서는 반환값의 샘플 Gt를 사용해 가치를 갱신하였다.

 

하지만 반환값 Gt만이 갱신 수식에 사용될 수 있는 것만은 아니다.

편견이 없이 (unbiased) 가치를 표현할 수 있는 것이라면 무엇이든 사용될 수 있다.

편견이 없는 값을 사용하면, 에이전트는 local optimum에 도달할 수 있다.

 

시간차학습의 근사

시간차 학습에서는 Gt대신 TD 타깃을 가치 갱신을 위해 사용한다:

Ut=˙Rt+1+γv^(St+1,w)

 

위 수식에서 Ut는 반환값과 같은 값이긴 하지만, 편견이 없지 않은 값이다.

TD 타깃은 현재의 예측값 v^(St+1,w)를 사용하기 때문에 이는 실제 가치에 가깝지 않을 가능성이 높다.

이 때문에 위 수식을 사용해 갱신하는 것은 local optimum에 도달한다고 장담할 수 없게 된다.

 

하지만 TD 타깃을 사용하는것의 장점도 있다.

TD 타깃은 대체적으로 더 낮은 분산을 갖는다.

이 떄문에 TD 타깃을 사용하면, 더 적은 샘플로도 빠르게 수렴할 수 있다.

(몬테카를로 학습은 많은 샘플을 필요로 하고, TD는 더 적은 샘플을 필요로 한다는 의미)

 

TD(0)

TD(0)알고리즘은 함수 근사를 사용한 시간차학습 알고리즘이다.

이 알고리즘은 다음과 같은 경사 수식을 사용한다:

12[Utv^(St,w)]2

 

위 수식을 체인룰을 통해 풀어보면 다음과 같은 수식이 나온다:

(1) =(Utv^(St,w))(Utv^(St,w))

 

위 수식은 우리가 알고있는 가치함수 근사 수식과는 다른 것을 알 수 있다:

(2) (Utv^(St,w))v^(St,w)

 

위 (1)과 (2) 두개의 수식이 같으려면, Ut의 경사 Ut가 0이어야만 한다.

따라서 TD(0)알고리즘은 Ut의 에러(MSE)에 대한 경사하강법을 사용하지 않는다.

하지만 TD(0)는 여전히 v에 대한 경사하강은 하고 있다.

Ut=(Rt+1+γv^(St+1,w))

=γv^(St+1,w)

 

이 때문에 TD(0)알고리즘은 semi-gradient 알고리즘이라고 불린다.

TD(0)의 갱신 수식을 정리하면 다음과 같은 수식으로 표현할 수 있다:

wt+1=˙wt+α[Rt+1+γv^(St+1,w)v^(St,wt)]

 

앞서 살펴본 TD(0) 알고리즘의 전체는 다음과 같다:

 

728x90
반응형