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

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

Johnny Yoon 2020. 11. 21. 15:42
728x90
반응형

강화학습

시간차 가치 근사

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

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

 

몬테카를로 경사

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

$w \leftarrow w + \alpha [G_t - \hat{v}(S_t, w)] \nabla \hat{v}(S_t, w)$

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

 

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

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

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

 

시간차학습의 근사

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

$U_t \dot{=} R_{t+1} + \gamma \hat{v}(S_{t+1}, w)$

 

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

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

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

 

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

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

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

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

 

TD(0)

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

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

$\nabla \frac{1}{2}[U_t - \hat{v}(S_t, w)]^2$

 

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

(1) $= (U_t - \hat{v}(S_t, w))(\nabla U_t - \nabla \hat{v}(S_t, w))$

 

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

(2) $-(U_t - \hat{v}(S_t, w))\nabla \hat{v}(S_t, w)$

 

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

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

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

$\nabla U_t = \nabla(R_{t+1} + \gamma \hat{v}(S_{t+1}, w))$

$= \gamma \nabla \hat{v}(S_{t+1}, w)$

 

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

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

$w_{t+1} \dot{=} w_t + \alpha [R_{t+1} + \gamma \hat{v}(S_{t+1}, w) - \hat{v}(S_t, w_t)]$

 

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

 

728x90
반응형