일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 클론코딩
- 딥러닝
- React
- coding
- pandas
- kaggle
- redux
- App
- selenium
- 데이터분석
- 앱개발
- 강화학습
- expo
- ReactNative
- Ros
- 카트폴
- clone coding
- 머신러닝
- JavaScript
- 사이드프로젝트
- TeachagleMachine
- FirebaseV9
- Instagrame clone
- 리액트네이티브
- 조코딩
- python
- GYM
- 강화학습 기초
- 전국국밥
- Reinforcement Learning
- Today
- Total
qcoding
[강화학습-2] 마르코프 결정 과정(MDP) 본문
2. 마르코프 결정 과정(MDP)
강화학습의 모든 수학적 토대는 MDP로부터 시작됩니다.
MDP를 이해하면 가치함수·정책·벨만 방정식·탐험-활용 전략 등 이후의 거의 모든 개념이 자연스럽게 연결됩니다.
2-1. MDP 공식 정의
MDP는 다섯 개 요소로 이루어진 튜플입니다.
$$\langle\;\mathcal{S},\;\mathcal{A},\;P,\;R,\;\gamma\;\rangle$$
기호 | 이름 | 설명 |
---|---|---|
$\mathcal{S}$ | 상태 집합 | 환경이 가질 수 있는 모든 상태 $s$ |
$\mathcal{A}$ | 행동 집합 | 각 상태에서 선택할 수 있는 행동 $a$ |
$P(s',r\mid s,a)$ | 전이 확률 | $S_t=s,\,A_t=a$ 이후 $(S_{t+1}=s',\,R_{t+1}=r)$ 로 갈 확률 |
$R(s,a)$ | 보상 분포 | $(s,a)$ 쌍에 대한 보상 기댓값 $\mathbb{E}[R_{t+1}\mid s,a]$ |
$\gamma\in[0,1)$ | 할인율 | 미래 보상의 현재 가치 (0 → “즉시 보상”, 1 → “장기 보상”) |
마르코프 성질
$$ \Pr\!\bigl(S_{t+1}=s' \mid S_t=s,\,A_t=a,\text{과거}\bigr) =\Pr\!\bigl(S_{t+1}=s' \mid S_t=s,\,A_t=a\bigr) $$
즉 “다음 상태는 현재 상태와 행동만 알면 충분하다” 는 것이 핵심입니다.
2-2. 가치(Return)와 가치함수
- 할인 누적보상 (Return)
$$G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots$$ - 정책 $\pi$ : $\pi(a\mid s)$ (상태마다 행동을 고르는 분포)
- 상태가치함수
$$V_\pi(s)=\mathbb{E}_\pi\!\bigl[G_t \mid S_t=s\bigr]$$ - 행동가치함수
$$Q_\pi(s,a)=\mathbb{E}_\pi\!\bigl[G_t \mid S_t=s,\,A_t=a\bigr]$$
2-3. 벨만 기대 방정식
현재 가치 = 즉시 보상 + 할인된 미래 가치의 기대
$$V_\pi(s)=\sum_{a}\pi(a\mid s)\sum_{s',r}P(s',r\mid s,a)\,[\,r+\gamma V_\pi(s')\,]$$
2-4. 벨만 최적 방정식
$$V_\*(s)=\max_{a}\sum_{s',r}P(s',r\mid s,a)\,[\,r+\gamma V_\*(s')\,]$$
이 $\max$ 연산 덕분에 정책 평가와 정책 개선이 동시에 진행됩니다.
2-5. 예시 MDP
(A) 3-노드 체인
[s0] --a0(+0)--> [s1] --a1(+0)--> [s2] --a2(+1)--> [terminal]
^ |
|<-------------- a_back(+0) --------------- |
- s0 : 시작 상태
- s2 : 목표 지점, +1 보상 후 종료
- 기타 이동 보상 0, 할인율 $\gamma=0.9$
- 정책 : 앞으로 0.8, 뒤로 0.2 → 손 계산으로도 $V_\pi(s)$ 를 구해볼 수 있음.
(B) 4×4 Gridworld
S 1 2 +1
3 4 5 6
7 8 9 10
11 12 13 14
- 벽에 부딪히면 제자리
- +1 칸 도달 시 종료
- 모든 이동 보상 −0.04 → 짧은 경로 선호
- $\gamma=0.99$
2-6. 가치 반복 Pseudo-code
def value_iteration(states, actions, P, R, gamma=0.99, theta=1e-6):
V = {s: 0.0 for s in states}
while True:
delta = 0.0
for s in states:
v_old = V[s]
V[s] = max(
sum(P[s][a][s_next] *
(R[s][a][s_next] + gamma * V[s_next])
for s_next in states)
for a in actions
)
delta = max(delta, abs(v_old - V[s]))
if delta < theta:
break
# 최적 정책
pi_star = {
s: max(
actions,
key=lambda a: sum(
P[s][a][s_next] *
(R[s][a][s_next] + gamma * V[s_next])
for s_next in states
)
)
for s in states
}
return V, pi_star
TIP : P[s][a][s_next]
, R[s][a][s_next]
테이블만 채우면 어떤 MDP라도 약 20줄 내외로 실험할 수 있습니다.
2-7. 할인율 $\gamma$가 1보다 작은 이유
- 수렴 보장 : $\gamma < 1$이면 $G_t$가 기하급수적으로 감쇠하여 무한합이 유한해짐.
- 미래 불확실성 반영 : 멀리 갈수록 보상 기대가 희미해짐.
- 숏텀 vs 롱텀 : 실무에서 $\gamma=0.99$는 “30–50 스텝 horizon”, $\gamma=0.9$는 “10 스텝 horizon” 정도로 해석.
2-8. 정리 & 다음 편 예고
- MDP는 강화학습 문제를 엄밀히 기술하는 공용 언어이다.
- 벨만 방정식으로 가치함수를 재귀적으로 표현하면 계산과 학습이 가능하다.
- 작은 MDP라도 직접 코딩해보면 이후 알고리즘(정책 반복, Q-Learning, DQN)을 훨씬 쉽게 이해할 수 있다.
다음 글에서는 정적 계획법(Dynamic Programming) 으로 Gridworld MDP를 단계별로 풀어보겠습니다.
정책 평가 → 정책 개선 사이클이 어떻게 최적 전략을 찾아내는지 숫자 테이블로 직접 확인해봅시다!
추가 참고 자료
- Sutton & Barto, Reinforcement Learning: An Introduction, Chapter 3
- David Silver, RL Course Lecture 2 – MDP
- OpenAI Gym
FrozenLake-v1
환경 소스코드
'머신러닝 딥러닝' 카테고리의 다른 글
[강화학습-5] 몬테카를로 방법 (Monte Carlo Methods) (0) | 2025.05.28 |
---|---|
[강화학습-3] 정책과 가치함수 (0) | 2025.05.28 |
[강화학습-1] 강화학습이란? (1) | 2025.05.28 |
[window & 아나콘다 & 텐서플로 GPU] 설치하는 방법 (1) | 2024.01.21 |
[kaggle]2진 분류 코드 - KernerelPCA / GMM / HIST FEATURE / STACKING (0) | 2023.12.12 |