할인율 메모

1953 단어 강화 학습메모
잡담한 메모입니다.

할인율(discount factor)



강화 학습에서는 누적 할인 보상
\sum_{t=0}^{T} \gamma^{t} R_t

최대화. 여기서 $ R_t $는 각 시간 $ t $에받을 수있는 보상이며 $\gamma $는 할인율입니다. 할인율이란, 「미래에 받을 수 있는 보상을 얼마나 할인해 생각할까」를 나타내는 파라미터로, 범위는 $0\leq\gamma < 1$. 보통 0.9 당으로 설정한다. 할인율이 클 때는 먼 미래의 보수까지 생각하는 방책을, 작을 때에는 최근의 보수밖에 생각하지 않는 방책을 학습한다.

할인율 그래프



$ y =\gamma ^ {t} $의 그래프를 보여줍니다. 가로축이 $t$, 세로축이 $y$.


자주 사용되는 $\gamma=0.95$는 대략 $t=100$ 부근에서 거의 $0$입니다. 예를 들어, OpenAI Gym 환경의 CartPole-v0은 최장 스텝 수가 200이지만, 200스텝 앞의 보상에 걸리는 할인율은 $\gamma^{200}=0.95^{200}\fallingdotseq 0.000035$이며, 비상 작다.

할인율이 특정 임계값 아래로 떨어지는 단계 수


y= \gamma^{t} \\
\ln y = t \ln \gamma \\
t = \frac{\ln y}{\ln \gamma}

그리고 변형하면 할인율 $\gamma^t$가 특정 값 $y$가 되는 단계 수 $t$를 구할 수 있다.
할인율 $\gamma ^ {t} $가 특정 값보다 작아지는 단계 수를 나타냅니다.


할인율 $\gamma$
$<0.5$
$<0.1$
$<0.01$
$<1.0\times 10^{-100}$


0.999
693
2302
4603
230143

0.99
69
230
459
22911

0.95
14
45
90
4490

0.9
7
22
44
2186

0.8
4
11
21
1032년

0.5
2
4
7
333

0.1
1
2
3
101


할인율 역산



이런 방법이 좋은지는 미묘하지만, 반대로, 어느 스텝수 $t$로 특정의 값 $y$가 되는 할인율 $\gamma$를 요구하고 싶을 때.
y= \gamma^{t} \\
\ln y = t \ln \gamma \\
\frac{\ln y}{t} = \ln \gamma \\
 \gamma = \exp (\frac{\ln y}{t})

예를 들어, 앞서 설명한 CartPole-v0에서 최장 스텝 수 $t=200$일 때 $y=0.01$가 되는 $\gamma$는 $\exp(\frac{\ln 0.01}{200})\fallingdotseq 0.977 $입니다.

좋은 웹페이지 즐겨찾기