본문으로 건너뛰기
아인폴랩 교육 문의
← 블로그 목록
강화학습연재 2026.09.30

[강화학습 기초 3-1] 마르코프 결정 과정: 행동과 정책이 더해진다

MDP의 행동과 정책, 상태가치함수와 행동가치함수, 최적 정책, 자주 나오는 용어를 정리합니다.

2장의 마르코프 보상 과정(MRP)은 상태가 확률에 따라 저절로 바뀌는 세계였습니다. 이번 편의 마르코프 결정 과정(MDP, Markov Decision Process)에서는 에이전트가 스스로 행동을 고릅니다. 여기서부터 난이도가 한 단계 올라가지만, Q러닝 · DQN · PPO 같은 모든 알고리즘이 이 위에 서 있으니 꼭 짚고 넘어가야 합니다.

MRP에 두 가지가 더해진다

MRPMDP
구성S, P, R, γS, A, P, R, γ + 정책 π
상태가 바뀌는 이유전이 확률만에이전트의 행동 + 전이 확률
목적가치를 계산한다가치가 가장 커지는 정책을 찾는다
  • 행동(A): 에이전트가 고를 수 있는 선택지입니다. 상태처럼 종류가 정해져 있습니다.
  • 정책(π): 각 상태에서 어떤 행동을 고를지 나타내는 확률입니다. 한 상태에서 모든 행동의 확률을 더하면 1입니다.

정책이 확률이라는 점이 중요합니다. 왼쪽 0.6, 오른쪽 0.4인 정책은 "항상 왼쪽"이 아니라 "열 번 중 여섯 번쯤 왼쪽"입니다. 이 의외성이 뒤에서 다룰 탐험과 연결됩니다.

행동이 들어오면서 전이 확률과 보상에도 행동 조건이 붙습니다. 상태 s에서 행동 a를 했을 때 다음 상태가 s′일 확률은 Pass′, 그때 받을 보상의 기댓값은 Ras로 씁니다.

배와 해류로 생각하기

에이전트는 키를 잡은 선장이고, 전이 확률은 해류나 바람입니다. 선장이 오른쪽으로 키를 틀어도(행동) 해류 때문에 다른 곳에 도착할 수 있습니다. 그래서 다음 상태에 갈 확률은 행동을 고를 확률 × 그 행동 뒤 전이 확률을 모두 더해 구합니다.

상태 s1에서정책 π도착 확률 (s2 / s3)s2에 갈 확률
행동 A1 (s2 쪽으로)0.40.8 / 0.20.4 × 0.8 = 0.32
행동 A2 (s3 쪽으로)0.60.1 / 0.90.6 × 0.1 = 0.06
s1 → s2 전체 확률0.38

(이해를 돕기 위해 새로 만든 예시입니다.) 정책을 바꾸면 이 값이 달라집니다. MDP에서 하는 일은 결국 가치가 커지도록 정책을 조정하는 것입니다.

상태가치함수와 행동가치함수

정책을 평가하려면 "이 정책을 따르면 얼마나 좋은가"를 숫자로 알아야 합니다. 그 숫자를 주는 함수가 두 가지입니다.

  • 상태가치함수 vπ(s): 상태 s에서 정책 π를 따를 때 앞으로 받을 반환값의 기댓값
  • 행동가치함수 qπ(s, a): 상태 s에서 행동 a를 먼저 하고 그 뒤로 정책 π를 따를 때의 기댓값. Q함수라고도 부릅니다.
vπ(s) = Σa π(a|s) qπ(s, a)
qπ(s, a) = Ras + γ Σs′ Pass′ vπ(s′)

첫 줄은 "상태의 가치 = 각 행동의 가치를 정책 확률로 평균 낸 것"입니다. 둘째 줄은 "행동의 가치 = 지금 받을 보상 + 그 행동 뒤에 도착할 상태들의 가치를 전이 확률로 평균 내고 할인한 것"입니다. 두 식을 서로 대입하면 MDP의 벨만 기대 방정식이 됩니다.

vπ(s)와 2장의 v(s)를 다른 것으로 생각하기 쉬운데, 둘 다 "상태의 가치"입니다. vπ는 계산할 때 정책을 하나 더 고려했을 뿐입니다.

최적 가치와 최적 정책

정책은 수없이 많습니다. 그중 가치를 가장 크게 만드는 정책을 최적 정책 π*라고 합니다.

v*(s) = maxπ vπ(s)     q*(s, a) = maxπ qπ(s, a)

"π*가 다른 정책보다 낫다"는 말은 확률이 크다는 뜻이 아니라, 모든 상태에서 π*의 가치가 다른 정책의 가치보다 크거나 같다는 뜻입니다.

최적 행동가치함수 q*를 알면 최적 정책은 아주 간단합니다. 각 상태에서 q*가 가장 큰 행동만 확률 1로 고르면 됩니다.

π*(a|s) = 1  (a = argmaxa q*(s, a)일 때), 그 외에는 0

여기서 잠깐 · ∀와 argmax

∀는 "모든"이라는 뜻입니다. ∀π는 "모든 정책에 대해"입니다. argmax는 값을 가장 크게 만드는 입력을 돌려줍니다. 0 ≤ x ≤ 2π에서 argmax sin(x)는 sin 값이 1이 되는 x = π/2입니다. 파이썬의 np.argmax와 같은 개념입니다.

앞으로 자주 나올 용어 네 개

용어뜻
정책 평가지금 정책의 가치함수를 계산해 얼마나 좋은지 보는 것
정책 제어평가 결과를 보고 더 좋은 쪽으로 정책을 바꾸는 것. 평가와 제어를 번갈아 반복해 최적 정책에 다가갑니다.
모델 기반전이 확률과 보상을 미리 다 아는 환경. 그림으로 그릴 수 있는 길 찾기 예제가 여기에 해당합니다.
모델 프리행동을 넣으면 다음 상태와 보상만 알려 주는 블랙박스 환경. 실제로 풀 문제는 대부분 여기에 속합니다.

다음 편에서는 모델 기반 문제를 푸는 다이내믹 프로그래밍과, 모델 프리 문제를 푸는 몬테카를로와 TD를 살펴봅니다.

교육과 컨설팅을 문의해 주세요

교육 대상과 일정을 알려 주시면 과정 제안과 강의계획서를 보내 드립니다.