with-RL
강화 학습2024년 1월 17일

바닥부터 배우는 강화 학습 | 05. MDP를 모를 때 밸류 평가하기

'바닥부터 배우는 강화 학습' 5장에는 MDP를 모르고 있는 경우 밸류를 평가하는 방법에 대해서 설명하고 있습니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.

참고자료

모델 프리

5.1 몬테카를로 학습

◈ 몬테카를로 학습 알고리즘

1. 테이블 초기화

2. 경험 쌓기

$$\begin{equation}
\begin{split}
G_0 = r_0 + \gamma r_1 + \gamma^2 r_2 + \gamma^3 r_3 + ... + \gamma^{T-1} r_{T-1} \\
G_1 = r_1 + \gamma r_2 + \gamma^2 r_3 + ... + \gamma^{T-2} r_{T-1} \\
... \\
G_{T-1} = r_{T-1} \\
G_T = 0 \\
\end{split}
\end{equation}$$

3. 테이블 업데이트

4. 밸류 계산

$$v_{\pi}(s_t) \cong {V(s_t) \over N(s_t)}$$

◈ 조금씩 업데이트하는 버전

$$V(s_t) \gets V(s_t) + \alpha * (G_t - V(s_t))$$

◈ 몬테카를로 학습 구현

이 부분은 구현에 대한 코드가 설명되어 있습니다.

5.2 Temporal Difference 학습

◈ 이론적 배경

$$v_{\pi}(s_t) = \mathbb{E}_{\pi}[r_{t+1} + \gamma v_{\pi}(s_{t+1})]$$

◈ Temporal Difference 학습 알고리즘

$$\begin{equation}
\begin{split}
V(s_0) &\gets V(s_0) + 0.01 * (-1 + V(s_1) - V(s_0)) \\
V(s_1) &\gets V(s_1) + 0.01 * (-1 + V(s_2) - V(s_1)) \\
... \\
V(s_{11}) &\gets V(s_{11}) + 0.01 * (-1 + V(s_{15}) - V(s_{11})) \\
\end{split}
\end{equation}$$

◈ Temporal Difference 학습 구현

이 부분은 구현에 대한 코드가 설명되어 있습니다.

5.3 몬테카를로 vs TD

◈ 학습 시점

◈ 편향성(Bias)

◈ 분산(Variance)

◈ 종합

5.4 몬테카를로와 TD의 중간

◈ n스텝 TD

$$\begin{equation}
\begin{split}
N = 1: &r_{t+1} + \gamma V(s_{t+1}) \\
N = 2: &r_{t+1} + \gamma r_{t+2} + \gamma^2 V(s_{t+2}) \\
N = 3: &r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 V(s_{t+3}) \\
... \\
N = n: &r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+2} + ... + \gamma^n V(s_{t+n}) \\
\end{split}
\end{equation}$$

$$N = \infty: r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+2} + ... + \gamma^{T-1} R_T$$

바닥부터 배우는 강화 학습 | 05. MDP를 모를 때 밸류 평가하기 | with-RL