강화학습
시간차 가치 근사
시간차학습(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) 알고리즘의 전체는 다음과 같다:
'데이터사이언스 > 강화학습' 카테고리의 다른 글
강화학습 - (25) 정책 근사 (0) | 2020.12.16 |
---|---|
강화학습 - (24-1) Deep SARSA 코드예제 (0) | 2020.12.07 |
강화학습 - (23) 몬테카를로 가치 근사 (0) | 2020.11.17 |
강화학습 - (22) 가치함수의 근사 (0) | 2020.11.15 |
강화학습 - (21) 모델 (0) | 2020.11.15 |