목차
A) 기초통계¶
B) 강화학습 개념도¶
1. 마르코프¶
1.1 마르코프 가정¶
상태가 연속적인 시간에 따라 이어질 때, 그 시점 바로 이전의 상태에만 영향을 받는다
$S_t$ 는 $S_1$ 부터 $S_{t-1} 까지의 영향을 받는다.$
1.2. 마르코프 의사 결정과정 (Markov decision process, MDP)¶
- MDP = (S, A, P, R, $\gamma$)
1.2.1. 구성¶
- 상태집합 : S
- 행동집합 : A
- 상태 전이확률 : $P_{s, s'}^a = P[S_{t+1} = s' | S_t = s, A_t = a]$ , 상태 s에서 행동 a를 취했을때 s' 로 변할 확률
- 보상 함수 : $R_s^a = E[R_{t+1}| S_t = s, A_t = a]$ , 행동에 대한 보상
- 할인 요인 : $\gamma$, 과거의 행동을 얼마나 반영할지 정하는 값, 0~1 사이 값
2. 상태 가치 함수 & 상태-행동 가치 함수¶
2.2. 상태 가치 함수 (state-vlaue function)¶
- 순서 설명 : 에이전트가 행동을함 > 상태가 변함 > 보상을 받음
상태 가치 함수 뜻
- V : 현재상태 s 에서 정책 $\pi$를 따랐을 때의 가치 $$V_\pi(s) = E[\sum\gamma^iR_{t+i+1} | S_t = s]$$
- $\pi$ : 정책
수학적으로 표현 $$ V(S_t) = \int_{a_t : a_\infty} G_t P(a_t:a_\infty | S_t) d_{a_t:a_\infty} $$ $$ V(S_t) = \int_{a_t : a_\infty} Q(S_t, a_t) P(a_t | S_t) d_{a_t:a_\infty} $$
- $P(a_t:a_\infty | S_t)$ : $S_t$ 상태에서 현재부터 마지막까지 행동 했을 확률
- $G_t$ : $R$ , 리워드
- $P(a_t | S_t)$ : 정책
2.3. 상태-행동 가치함수 (action-value function)¶
Q : 어떠한 상태 s에서 행동 a를 수행 했을 때 획등학 총 보상의 기대값 $$Q_\pi(s, a) = E[\sum\gamma^iR_{t+i+1} | S_t = s, A_t = a]$$
수학적으로 표현 $$ Q(S_t, a_t) = \int_{S_t : a_\infty} G_t P(S_{t+1}, a_{t+1}, S_{t+2}, a_{t+2}, ... | S_t, a_t) d_{S_t:a_\infty} $$
- 정책 : $P(a_t | S_t)$
- 상태 변화 확률 : $P(S_{t+1}| S_t, a_t)$
3. 벨만 방정식¶
- 설명
- 상태 가치 함수와 상태-행동 가치함수의 관계를 나타내는 방정식
- V를 그 다음의 V로 표현
- Q를 그 다음의 Q로 표현
- 종류
- 벨만 기대방정식
- 벨만 최적 방정식
공식 풀이 유튜브 : https://www.youtube.com/watch?v=gA-6J-nl4c4
3.1. 벨만 기대 방정식¶
3.1.1. 상태 가치 함수
현재 상태 $S_t$ 의 가치는 다음 상태 $S_{t+1}$ 의 가치에 할인률 $\gamma$ 를 곱해 R(다음 보상)을 더한 기대값
상태 가치함수 $$V_π(s)=E[\sum_{i=0}γ^iR_{t+i+1}|S_t=s]$$
상태가치함수 벨만 방정식 $$V_\pi(S) = E[R_{t+1} + \gamma V_\pi (S_{t+1}) | S_t = s]$$
상태 s 에서 정책 $\pi$에 따라 행동 a를 선택할 확률과, 상태 s에서 $\pi$에 따라 a를 수행했을 때의 가치를 곱해 더함 $$V_\pi(S) = \sum\pi(a|s)Q_\pi(s,a)$$
$Q_\pi(s,a)$ 부분을 상세 식으로 변경 $$V_\pi(S) = \sum\pi(a|s)(R_s^a + \gamma \sum P^a_{s,s'}V_\pi(S'))$$
3.1.2. 상태-행동 가치함수
다음 상태 $S_{t+1}$과 다음 행동 $A_{t+1}$을 더한 상태-행동 가치에 할인율을 곱한 값에 기대 보상 $R_{t+1}$을 더한 값 $$Q_\pi(S, a) = E[R_{t+1} + \gamma Q_\pi (S_{t+1}, A_{t+1}) | S_t = s, A_t = a]$$
현재 상태 s에서 행동 a를 수행했을 때의 기대보상 + 할인율 * $\sum$다음 상태 s'에 대한 기대 가치함수 x 전이 확률 $$ Q_\pi(s, a) = R_s^a + \gamma \sum P^a_{s,s'}V_\pi (s')$$
$V_\pi(s')$ 부분을 상세 식으로 변경 $$ Q_\pi(s, a) = R_s^a + \gamma \sum P^a_{s,s'}\sum\pi(a'|s')Q_\pi(s',a')$$
3.1.3. 상태 가치 함수 증명¶
4. 최적 방정식 (Bellman optimality equation)¶
- 최적 상태 가치 함수 : $\max V_\pi (s)$
최적의 상태-행동 가치 : $\max Q_\pi (s, a)$
정리 : 정책 $\pi(a|s)$ 를 최대로 하는 값을 찾는다.
5. 강화 학습 개념¶
- 복잡한 문제의 특징
- 완전한 상태 전이확률, 보상 함수를 미리 알 수 없다.
- 상태 집합이 (거의) 무한이다
5.1. 강화 학습 표기법¶
- s : 상태, 강화학습 환경에서의 상태
- a : 행동, 에이전트가 수행할 수 있는 행동
- P : 상태 전이 확률
- V : 상태 가치
- $\pi$ : 정책
- Q : 상태-행동 가치함수
- R : 보상함수
5.2. Model을 정할 수 있는 경우/ 없는 경우¶
- model-based
- MDP 에서 상태전이 확률과 보상함수를 정할 수 있는 경우
- 행동공간, 상태공간이 적어야 풀 수 있음
- model-free
- MDP 모델 없이 하는 강화학습
- 최근 대부분의 강화학습 모델
5.3. 예측과 제어¶
강화학습이란
- 상태 가치 함수의 값을 예측 하는 것이 목표
- 예측이 더 정확해지도록 제어 > 학습
예측방법
- 몬테카를로 예측
- 시간차 예측
제어방법
- SARSA (살사)
- Q-learning
5.4. 부트스트랩¶
- 현재 상태의 가치 함숫값을 예측 하는 방식
5.5. on-policy vs off-policy , policy = $\pi$¶
- on-policy : 행동을 결정하는 정책과 학습할 정책이 같은 강화학습. (정책이 업데이트 되면 다시 학습을 해야함)
- off-policy : 행동하는 정책과 학습하는 정책이 다른 방법 (이 방법이 더 좋음)
5.6. 이용 (exploitation) 과 탐험 (exploration)¶
- 이용(exploitation) : 탐욕적인 학습 방식, 알고있는 한 가장 최적의 선택
- 탐험(exploration) : 다양한 경험을 쌓기위해 아무 행동이나 선택해서 해봄
6. 몬테카를로 학습¶
6.1 몬테카를로 법칙¶
기존의 상태가치 함수 $$V_\pi(s) = E[\sum\gamma^iR_{t+i+1} | S_t = s]$$
상태가치함수에 몬테카를로 법칙에 적용 $$ V_{n+1}(s) = \frac{1}{n}\sum_{i=1}^{n}G_i $$ $$ V_{n+1}(s) = \frac{1}{n} (G_i + \sum_{i=1}^{n-1}G_i) $$ $$ V_{n+1}(s) = \frac{1}{n} (G_i + (n-1)\frac{1}{n-1} \sum_{i=1}^{n-1}G_i) $$ $$ V_{n+1}(s) = V_n(s) + \frac{1}{n}(G_n - V_n(s)) $$ $$ V_{n+1}(s) = V_n(s) + \alpha(G_n - V_n(s)) $$
- 목표 : 에피소드를 진행하면서 Q를 진화 시키는 것
- 상태-행동 가치함수 $$ Q(s,a) = Q(s,a) + \alpha (G_n - Q(s,a)) $$
7. 시간차 학습 (TD)¶
7.1 SARSA¶
$$ Q(s,a) = Q(s,a) + \alpha (R_s^a + \gamma Q(s',a') - Q(s,a)) $$설명 : 몬테카를로 학습의 G 값은 전체 학습이 끝나야 알 수 있다. 반면, 시간차 학습은 다음 스탭의 가치함수로 현재 상태의 가치 함수를 갱신한다.
SARSA 설명 : 다음 상태에 대한 행동을 이미 알고 있어야함, 정책과 학습 정책을 분리할 수 없음
7.2 Q-Learning¶
$$ Q(s,a) = Q(s,a) + \alpha (R_s^a + \gamma \max_{a'}Q(s',a') - Q(s,a)) $$- 설명 : 다음 상태 s' 에서 가장 큰 Q 값을 이용함