일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- list
- unity
- 모두를 위한 RL
- David Silver
- statistics
- 딥러닝
- 유니티
- convex optimization
- 사이킷런
- reinforcement learning
- Jacobian Matrix
- machine learning
- 데이터 분석
- 판다스
- pandas
- optimization
- Linear algebra
- Python Programming
- 김성훈 교수님
- 논문
- Series
- Deep Learning
- Laplacian
- rl
- 리스트
- neural network
- 강화학습
- paper
- Hessian Matrix
- ML-Agent
RL Researcher
Lecture 4: Model-Free Prediction 본문
Lecture 4: Model-Free Prediction
Lass_os 2021. 2. 3. 04:02이번시간에는 Model-Free(Environment를 알지 못할때)에 대해서 알아보겠습니다.
- Monte-Carlo기법은 에피소드에서의 경험으로부터 직접 배웁니다.
- Monte-Carlo기법은 Model-Free 이며(환경에 대해서 모름), MDP의 변환이나 보상에 대해서 알지 못합니다.
- Monte-Carlo기법은 부트스트랩이 존재하지 않으며 다 끝난 에피소드를 거치면서 배웁니다.
- Monte-Carlo기법은 episodic MDPs에만 Monte-Carlo가 적용가능합니다.
- 모든 Episode들은 반드시 종료되어야 합니다.
- 목표 : 정책 $\pi$에 따른 Episode에서의 경험으로부터 $v_{\pi}$를 배웁니다.
$$S_{1},A_{1},R_{2},...,S_{k}\sim\pi$$
- 반환값은 총 할인된 보상임을 다시 기억하십시요
$$G_{t} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{T-1} R_{T}$$
- 가치함수는 반환값의 기댓값임을 기억하십시요.
$$v_{\pi}(s) = E_{\pi}[G_{t} \mid S_{t} = s]$$
- Monte-Carlo 정책 평가는 반환값의 기댓값 대신 경험적 평균 반환값을 사용합니다.
- Monte-Carlo기법에는 2가지 기법이 있습니다.
- first-visit Monte-Carlo (한 State에 여러번 방문해도 처음 방문할 때만 Count함, 모든 State에 방문한다는 가정이 있어야 함)
- every-visit Monte-Carlo (한 State에 대해서 여러번 방문한 것도 Count함, 모든 State에 방문한다는 가정이 있어야 함)
- 증가하는 Counter, $N(s) \leftarrow N(s) + 1$
- 증가하는 모든 보상, $S(s) \leftarrow S(s) + G_{t}$
- 가치는 반환값의 평균값으로 추정됩니다. $V(s) = S(s) / N(s)$
- 대수의 법칙에 의해, $V(s) \rightarrow v_{\pi}(s)\ as\ N(s) \rightarrow \infty$
- 이번엔 Every-visit Monte-Carlo에 대해 알아보겠습니다.
- every-visit Monte-Carlo (한 State에 대해서 여러번 방문한 것도 Count함, 모든 State에 방문한다는 가정이 있어야 함)
- 증가하는 Counter, $N(s) \leftarrow N(s) + 1$
- 증가하는 모든 보상, $S(s) \leftarrow S(s) + G_{t}$
- 가치는 반환값의 평균값으로 추정됩니다. $V(s) = S(s) / N(s)$
- 대수의 법칙에 의해, $V(s) \rightarrow v_{\pi}(s)\ as\ N(s) \rightarrow \infty$
- 다음은 MC에 대한 예시입니다.
- 위 그림은 블랙잭 게임의 가치함수값을 Monte-Carlor기법으로 분석한 것입니다.
- 평균 $\mu_{1}, \mu_{2},...$은 수열 $x_{1}, x_{2}, ...$는 점진적으로 계산됩니다.
$$\mu_{k} = \frac{1}{k}\sum_{j = 1}^{k}x_{j}\\ = \frac{1}{k}(x_{k} + \sum_{j=1}^{k-1}x_{j})\\ = \frac{1}{k}(x_{k} + (k - 1) \mu_{k-1}) \\ = \mu_{k-1} + \frac{1}{k}(x_{k} - \mu_{k - 1})$$
- Episode $S_{1}, A_{1}, R_{2}, ..., S_{T}$후에 $V(s)$를 점진적으로 업데이트합니다
- 각 State $S_{t}$에 따른 기댓값 $G_{t}$
$$N(S_{t}) \leftarrow V(S_{t}) + \alpha (G_{t} - V(S_{t}))$$
$$V(S_{t}) \leftarrow V(S_{t}) + \frac{1}{N(S_{t})}(G_{t} - V(S_{t}))$$
- 비정상적인 문제에서는 평균을 추적하는 것이 유용할 수 있습니다.
$$V(S_{t}) \leftarrow V(S_{t}) + \alpha(G_{t} - V(S_{t}))$$
- TD 방법은 에피소드에서의 경험으로부터 직접 학습합니다.
- TD 방법도 Model-Free이며 MDP의 변환이나 보상에 대해서 지식이 필요 없습니다.
- TD 방법은 bootstrapping을 통해 완전하지 않은 에피소드로부터 배웁니다.
- TD 방법은 추측을 이용해 추측을 업데이트 해 나갑니다.
- 정책 $\pi$로부터 경험을 통해서 $v_{\pi}$를 실시간으로 배웁니다.
- 점진적인 every-visit Monte-Carlo
- 행동 반환값 $G_{t}$를 통해 $V(S_{t})$를 업데이트 합니다.
- 간단한 시간차 학습 알고리즘: TD(0)
- 추정한 반환값 $R_{t+1} + \gamma V(S_{t+1})$을 통해서 $V(S_{t})$값을 업데이트 합니다.
$$V(S_{t}) \leftarrow V(S_{t} = \alpha(R_{t+1} + \gamma V(S_{t+1} - V(S_{t}))$$
- $R_{t+1} + \gamma V(S_{t+1})$는 TD의 타겟이라고 불립니다.
- $\delta = R_{t+1} + \gamma V(S_{t+1}) - V(S_{t})$는 TD오류라고 불립니다.
- TD를 간단히 설명하자면 다음 스텝의 예측치를 통해서 현재 상태의 값을 업데이트 하는 방식입니다.
- 위의 예시는 TD에 대한 예시입니다.
- MC는 에피소드가 끝난 후에 그 값들을 이용해서 업데이트하지만 ,TD는 최종 출력이 나오기 전에 값을 업데이트 합니다.
- TD는 매스텝마다 실시간으로 학습합니다.
- MC는 에피소드가 끝나고 반환값을 알기 전까지 기다려야 합니다.
- TD는 최종 출력 없이 배울 수 있습니다.
- TD는 불완전한 수열로부터 학습합니다.
- MC는 완전한 수열로만 학습합니다.
- TD는 지속적인 환경에서 작동합니다. (도착점이 아닌)
- MC는 episodic한 환경에서만 작동합니다. (도착점)
- 반환값 $G_{t} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{T-1}R_{T}$는 $v_{\pi}(S_{t})$ 에 대한 불편향값입니다.
- True TD target $R_{t+1} + \gamma v_{\pi}(S_{t+1})$은 $v_{\pi}(S_{t})$ 값에 대한 불편향 추정값입니다.
- TD target $R_{t+1} + \gamma V(S_{t+1})$은 $v_{\pi}(S_{t})$의 편향된 추정값입니다.
- TD target은 반환값보다 훨씬 낮은 분산입니다.
- 반환값은 많은 무작위 행동, 변환률, 보상에 따라서 달라집니다.
- TD target은한개의 무작위 행동, 변환률, 보상에 따라 다릅니다.
- MC는 분산이 크고, 0의 편향을 가지고 있습니다.
- 수렴 성질이 좋습니다.
- 함수 근사 기법을 써도 수렴 성질이 좋습니다.
- MC는 initial value에 민감하지 않습니다.
- 이해하기 매우 쉽고 사용하기도 매우 쉽습니다.
- TD는 낮은 분산을 가지고 있고, 조금의 편향을 가지고 있습니다.
- 주로 MC보다 더 효과적입니다.
- TD(0)은 $v_{\pi}(s)$로 수렴합니다.
- 하지만 항상 근사함수와 함께 해야합니다.
- initial value에 조금 더 민감합니다.
- MC와 TD의 수렴성 : $V(s) \rightarrow v_{\pi}(s)$ 을 무한번 경험할 수 있으면 수렴을 하지만, 제한된 k개의 에피소드가 있을 때 MC와 TD가 같은 값에 수렴을 할까?
- 원래대로라면 B의 V(B)값은? -> 총 8번의 시행중에서 6번의 1이 나왔으니 6/8 = 3/4로 생각할 수 있다.
- 그렇다면 A의 V(A)값은?????
- 위의 그림을 예시로 저희는 이 식의 MDP를 추측할 수 있습니다.
- A는 무조건 B로 갑니다.(100%)
- B에서는 75%의 확률로 1로 가기 때문에 Reward를 1을 받고 25%확률로 0을 받습니다.
- MC를 통해 학습한 결과는 V(A)는 0이 됩니다. ( 반환값이 0이 되기 때문)
- TD는 V(A)가 0.75가 됩니다.
- TD는 Markov 확률을 이용해서 Value를 추측하는 방식입니다.
- 대부분 Markov 환경에서 더 효율적입니다.
- MC는 Markov 확률을 이용하지 않습니다.(Mean Squared error를 minimize하는 것입니다.)
- 대부분 non-Markov 환경에서 효과적입니다.
- 확률을 따져보자면 $S_{t}$에서 오른쪽으로 내려갔을 때의 확률은 1/2 확률로 선택할 수 있습니다. 하지만 MC의 경우는 한가지 경우의 수를 끝까지 가본 후에 값을 업데이트 하는 방식입니다.
- TD의 경우는 한 step만 가보고 추측해서 그것으로 대체해 버립니다.(이것을 BootStrap이라고 합니다.)
- 추측치로 추측치를 업데이트 하는 것 : BootStrapping
- DP는 Full sweep을 통해 value값을 업데이트합니다.
- BootStrapping : 추측치로 추측치를 업데이트 하는 것
- MC의 경우에서는 Bootstrap을 사용하지 않음 (끝까지 가보기 때문임)
- DP와 TD는 Bootstrap을 사용합니다.(한스텝만 가고 업데이트)
- Sampling : 한가지의 샘플을 가지고 업데이트를 수행하는 것
- MC와 TD는 한가지의 샘플을 가지고 업데이트를 수행합니다.(했던 것을 가지고 업데이트를 하기 때문)
- DP의 경우는 해당 State에서 가능한 모든 행동을 수행하기 때문에 Sampling에 해당하지 않습니다.
- 우리는 다른 스텝에 대한 평균을 낸것으로 수행하면 안되는가?
- 결론은 수행해도 됩니다.
- 심지어 TD(1)부터 끝까지 모두 평균을 내도 됩니다.
- 현 식을 모두 더하게 되면 1이 됩니다.($\lambda$값이 0에서 1사이의 값이라는 가정하에)
- TD($\lambda$)는 두가지로 나뉩니다
- Forward-view TD($\lambda$) : 나의 미래를 보는 것
- Backward-view TD($\lambda$) : 나의 과거를 보는 것
- 시간이 지날수록 가중치가 줄어드는 것을 볼 수 있습니다.(Geometric Mean 사용)
- 매 스텝마다 업데이트가 가능하고, Complete Sequence가 아니여도 업데이트가 가능합니다.
- 사건의 책임 추척인데, 책임을 물어 책임이 큰 친구한테 업데이트를 많이 해주는 것
- 책임을 많이 일어난 친구한테 많이 물어야 하는 방법
- 최근에 일어난 친구한테 많이 물어야 하는 방법
$$E_{0}(s) = 0$$
$$E_{t}(s) = \gamma \lambda E_{t-1}(s) + 1(S_{t} = s)$$
- 간단하게 그림은 방문할 떄마다 1을 올리고 방문하지 않을 때마다 0.9씩 줄여주고 이런 방식을 계속 반복합니다.
- 각 State s에 대한 모든 사건 책임
- 모든 State s에 대해 값 $V(s)$를 업데이트 수행
- TD-error는 $\delta_{t}$ 및 사건 책임 추적성 $E_{t}(s)$에 비례합니다.
$$\delta_{t} = R_{t+1} + \gamma V(S_{t+1}) - V(S_{t})$$
$$V(s) \leftarrow V(s) + \alpha \delta_{t} E_{t}(s)$$
- $\lambda = 0$일 때 TD(0)과 값이 똑같다.
$$E_{t}(s) = 1(S_{t} = s)$$
$$V(s) \leftarrow V(s) + \alpha \delta_{t} E_{t}(s)$$
- 이것은 TD(0)값을 업데이트한거랑 정확히 맞습니다.
$$V(S_{t}) \leftarrow V(S_{t}) + \alpha \delta_{t}$$
- $\lambda = 1$일 경우 MC와 같습니다.
'Reinfrocement Learning > David-Silver Lecture' 카테고리의 다른 글
Lecture 6: Value Function Approximation (0) | 2021.02.04 |
---|---|
Lecture 5: Model-Free Control (0) | 2021.02.03 |
Lecture 3: Planning by Dynamic Programming (0) | 2021.02.02 |
Lecture 02 : Markov Decision Processes (0) | 2021.02.02 |
Lecture 1: Introduction to Reinforcement Learning (0) | 2021.02.01 |