<aside> 💡 2018년 딥마인드에서 정의한 단어로 TD learning에서 발생할 수 있는 문제에 대해 분석한다.
</aside>
아래의 3가지가 하나의 학습에서 결합되었을 때, value estimation이 발산 할 수 있는 문제가 발생한다.
딥러닝에서 bootstrap은 “무작위 표본 추출에 의존하는 계측” 이라는 의미를 가지고 있다. 확률변수의 정확한 분포를 모르는 경우, 측정된 통계치의 신뢰도를 가늠할 때 이용하는 방법이다.
원본 데이터셋에서 중복을 허용하며 샘플링을 반복함으로써 모집단으로부터 새로운 데이터를 생성하는 방법을 Bootstrapping이라 칭한다.
세부 수행방법은 아래와 같다.
$n$ 크기의 데이터셋이 주어짐
Bootstrap을 $b$ 회 반복
$b$개의 Bootstrap 샘플에 대해 각각 모델을 학습시키고 재치환 정확도를 계산
$b$ 번의 정확도 추정을 평균내 모델의 정확도 계산
$$ ACC_{boot}=\frac{1}{b}\sum_{j=1}^{b}\frac{1}{n}\sum_{i=1}^{n}(1-L(\hat{y}_i,y_i)) $$
강화학습에서는 특정 time step에서 value estimation을 업데이트하기 위해 이후의 time step에 대한 value estimation을 이용하는 것을 의미한다. 예를 들어, $SARSA$에서 $Q$-value를 업데이트 하기 위한 수식은 아래와 같다.
$$ Q(s,a)\leftarrow Q(s,a)+\alpha(R_{t+1}+\gamma Q(s^\prime,a^\prime)-Q(s,a)) $$
위의 수식에서 $R_{t+1}+\gamma Q(s^\prime,a^\prime)$은 실제 값에 대한 추정 치, 즉 TD target이다. 반면, Mone Carlo의 업데이트 수식은 아래와 같고 따라서 bootstrapping 방식이 아니다.
$$ Q(s,a)\leftarrow Q(s,a)+\alpha(G_t-Q(s,a)) $$
강화학습을 이용해 어떤 문제를 해결하려 할 때, 보통은 environment 전체를 탐색할 수 없다. 그러므로 state에 대한 generalization이 필요하고, function approximation의 수단으로 neural network를 사용하는데 신경망의 크기를 바꿔가며 function capacity가 성능에 어떤 영향을 끼치는지 에 대한 실험을 진행한다.