<aside> 💡 2018년 딥마인드에서 정의한 단어로 TD learning에서 발생할 수 있는 문제에 대해 분석한다.

paper

</aside>

아래의 3가지가 하나의 학습에서 결합되었을 때, value estimation이 발산 할 수 있는 문제가 발생한다.

Bootstrapping

딥러닝에서 bootstrap은 “무작위 표본 추출에 의존하는 계측” 이라는 의미를 가지고 있다. 확률변수의 정확한 분포를 모르는 경우, 측정된 통계치의 신뢰도를 가늠할 때 이용하는 방법이다.

원본 데이터셋에서 중복을 허용하며 샘플링을 반복함으로써 모집단으로부터 새로운 데이터를 생성하는 방법을 Bootstrapping이라 칭한다.

세부 수행방법은 아래와 같다.

  1. $n$ 크기의 데이터셋이 주어짐

  2. Bootstrap을 $b$ 회 반복

    1. 주어진 데이터셋에서 하나의 샘플을 뽑고 $j$번째 Bootstrap에 할당한다.
    2. 샘플의 크기가 원본 데이터셋의 크기인 $n$이 될때까지 반복한다.
    3. Bootstrap 샘플에는 특정 원본 샘플은 한 번 이상 포함되거나 전혀 없을 수 있다.
  3. $b$개의 Bootstrap 샘플에 대해 각각 모델을 학습시키고 재치환 정확도를 계산

    1. 재치환 정확도란 훈련에 사용한 데이터를 이용해 성능을 측정
  4. $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)) $$

Function Approximation

강화학습을 이용해 어떤 문제를 해결하려 할 때, 보통은 environment 전체를 탐색할 수 없다. 그러므로 state에 대한 generalization이 필요하고, function approximation의 수단으로 neural network를 사용하는데 신경망의 크기를 바꿔가며 function capacity가 성능에 어떤 영향을 끼치는지 에 대한 실험을 진행한다.

Off-policy Learning