-
04장. 강화학습 기초 3: 그리드월드와 큐러닝 // 미완Machine Learning/파이썬과 케라스로 배우는 강화학습 2020. 12. 13. 14:10
- 강화학습과 다이내믹 프로그래밍의 차이는 강화학습은 환경의 모델을 몰라도 환경과의 상호작용을 통해 퇴적 정책을 학습한다는 것.
- 예측 : 에이전트는 환경과의 상호작용을 통해 주어진 정책에 대한 가치함수를 학습하는 것.
몬테카를로 예측, 시간차 예측
- 제어 : 가치함수를 토대로 정책을 끊임없이 발전시켜 나가서 최적 정책을 학습하려는 것.
시간차 제어 - 살사, 오프폴리시 제어 - 큐러닝
1. 강화학습과 정책 평가 1: 몬테카를로 예측
1.1 사람의 학습 방법과 강화학습의 학습 방법
- 강화학습은 환경의 모델 없이 환경이라는 시스템의 입력과 출력 사이의 관계를 학습.
ㄱ. 일단 해보고
ㄴ. 자신을 평가하며
ㄷ. 평가한 대로 자신을 업데이트
ㄹ. 반복
1.2 강화학습의 예측과 제어
- 다이내믹 프로그래밍은 항상 정확한 모든 정보를 근거로 판단. 실제 세상은 정확하지는 않지만 적당한 추론을 통해 학습을 해내가는 것이 더 효율적.
- 정책 이터레이션 : 정책 평가 -> 강화학습 : 예측.
- 강화학습은 "일단 해보는" 방법으로 참 가치함수의 값을 예측.
1.3 몬테카를로 근사의 예시
1.1 종이 위의 원 넓이
: 종이에 점을 무작위로 계속 뿌리고. 전체 뿌린 점들 중에 원 안에 들어가 있는 점들의 비율을 구하면 이미 알고있는 종이 전체 넓이를 통해 원의 넓이를 추정할 수 있음.
1.2 장점
: 정확히 구하는 방정식을 몰라도 원래의 값을 추정 가능.
1.4 샘플링과 몬테카를로 예측
$$ v_{\pi}(s)=\sum_{a \in A}\pi(a|s)(r_{(s,a)}+\gamma\sum_{s' \in S}P_{ss'}^{a}v_{\pi}(s')) \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \\ \scriptsize{계산\;가능한\;형태의\;벨만\;기대\;방정식} \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad$$
- 환경의 모델인 상태변환 확률과 보상 함수를 알아야함.
$$ v_{\pi}(s) \sim \frac{N(s)}{1}\sum_{i=1}^{N(s)}G_{i}(s) \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad\\ \scriptsize{반환값의\;평균으로\;가치함수를\;추정.} \quad N(s):상태s를\;방문한\;횟수 \quad \quad \quad \quad \quad \quad \quad \quad \quad\quad \quad \quad \quad \quad \quad $$
\begin{align}V_{n+1} &= \frac{1}{n}\sum_{i=1}^{n}G_{i} = \frac{1}{n}(G_{n}+\sum_{i=1}^{n-1}G_{i})
\\ &= \frac{1}{n}(G_{n}+(n-1)\frac{1}{n-1}\sum_{i=1}^{n-1}G_{i})
\\ &= \frac{1}{n}(G_{n}+(n-1)V_{n}) \quad \quad *V_{n} : \scriptsize{처음\;시도부터\;직전\;시도까지의\;반환값으로\;구한\;가치함수}
\\ &= V_{n}+\frac{1}{n}(G_{n}-V_{n}) \end{align}1. 강화학습과 정책 평가 2: 시간차 예측
- 몬테카를로 예측의 단점 : 가치함수를 업데이트하기 위해서 에피소드가 끝나야함. 에피소드의 끝이 없거나 에피소드의 길이가 긴 경우에는 몬테카를로 예측은 적합하지 않음.
- 시간차 예측(Temporal-Difference Prediction) : 타임스템마다 가치함수를 업데이트. 실시간.
-> 온라인 학습?$$ V(S_{t}) \leftarrow V(S_{t}) + \alpha(R_{t+1} + \gamma V(S_{t+1}) - V(S_{t})) \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \\ \scriptsize{시간차\;예측에서\;가치함수의\;업데이트} \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad $$
- 시간차 에러 : R_{t+1} + \gamma (V(S_{t+1}) - V(S_{t}))
- 몬테카를로 예측보다 초기 가치함수 값에 따라 예측 정확도가 많이 달리짐.
2. 강화학습 알고리즘 1: 살사
- GPI(Generalized Policy Iteration) : 정책 평가를 할 때 참 가치함수를 구할 때까지 계산하지 않고, 정책 평가와 정책 발전을 한 번씩 번갈아 가며 진행.
- 시간차 제어 : 시간차 예측 + 탐욕 정책
- 큐함수를 보고 탐욕 정책을 한다면 환경의 모델을 몰라도 됨.
$$ \pi(s) = argmax_{a \in A}Q(s,a) \\ Q(S_{t}, A_{t}) \leftarrow Q(S_{t}, A_{t}) + \alpha(R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_{t}, A_{t})) \\ [S_{t}, \; A_{t}, \; R_{t+1}, \; S_{t+1}, \; A_{t+1}] $$
- 이미 충분히 많은 경험을 한 에이전트의 경우에는 (일반) 탐욕 정책이 좋은 선택이지만, 초기 에이전트에게는 잘못된 학습으로 가게될 가능성이 큼. 큐함수가 잘못된 값에 수렴해서 에이전트가 잘못된 정책을 학습하게됨 -> 충분히 다양한 경험 필요 -> ε-탐욕 정책
- ε-탐욕 정책 : ε만큼의 확률로 탐욕적이지 않는 행동을 선택
- 단점 : 최적 큐함수를 찾았다하더라도 ε확률로 계속 탐험을 함 -> 학습을 진행함에 따라 ε값을 감소 필요
강화학습 알고리즘 2: 큐러닝
- 살사의 한계 : 살사는 온폴리시 시간차 제어(On-Policy Temporal-Difference Control). -> 초기에 탐험이 ε-탐욕 정책에 큰 영향을 끼쳐서 충분히 다양한 탐험을 하지 못해서 최적 정책을 학습하지 못함. -> 오프폴리시 시간차 제어(= 큐러닝(Q-Learing) 사용.
- 행동하는 정책과 학습하는 정책을 따로 분리.
'Machine Learning > 파이썬과 케라스로 배우는 강화학습' 카테고리의 다른 글
03장 강화학습의 기초 2: 그리드월드와 다이내믹 프로그래밍 (0) 2020.10.02 02장 강화학습의 기초 1: MDP와 벨만 방정식(미완) (0) 2020.08.07 01장 강화학습 개요 (0) 2020.08.06