본문 바로가기
데이터 과학 수학

알파고는 어떻게 바둑을 배웠는가, 강화학습(Reinforcement Learning)과 MDP의 수학

by dexien 2026. 4. 17.

알파고가 이세돌을 이겼을 때 사람들이 가장 많이 한 질문이 있습니다. "누가 바둑을 가르쳤나요?" 아무도 가르치지 않았습니다. 알파고는 스스로 수백만 번 바둑을 두면서 이기면 보상, 지면 페널티를 받으며 최적의 전략을 찾아냈습니다. 이게 강화학습입니다.

강화학습이 지도 학습과 다른 점은 정답 데이터가 없다는 겁니다. 대신 보상(Reward)이 있습니다. 체스에서 이기면 +1, 지면 -1. 이 단순한 피드백만으로 AI가 스스로 전략을 학습합니다. 오늘은 이 과정을 수학적으로 어떻게 설계하는지, 마르코프 결정 과정(MDP)과 벨만 방정식을 중심으로 따라가 보겠습니다.

강화학습(Reinforcement Learning)과 MDP의 수학
강화학습(Reinforcement Learning)과 MDP의 수학

강화학습의 4대 요소 — 에이전트, 환경, 상태, 보상

강화학습의 구조는 명확합니다. 에이전트(Agent)가 환경(Environment)과 상호작용합니다. 에이전트는 현재 상태(State)를 관찰하고 행동(Action)을 선택합니다. 환경은 그 행동에 따라 보상(Reward)을 주고 다음 상태로 전환합니다.

강화학습 루프:
에이전트 → 행동(Action) → 환경
환경 → 상태(State) + 보상(Reward) → 에이전트

게임 예시 (팩맨):
상태: 현재 팩맨 위치, 유령 위치, 남은 점 위치
행동: 상/하/좌/우 이동
보상: 점 먹으면 +10, 유령에게 잡히면 -100, 생존 +1
목표: 총 보상 합계를 최대화하는 정책(Policy) 학습

정책 π: 상태 s에서 행동 a를 선택하는 함수
π(a|s) = 상태 s에서 행동 a를 할 확률

에이전트의 목표는 지금 당장의 보상이 아니라 앞으로 받을 모든 보상의 합을 최대화하는 겁니다. 체스에서 지금 당장 상대 말을 잡는 것보다 10수 후에 체크메이트를 노리는 게 더 좋은 수일 수 있습니다. 이 장기적 관점이 강화학습을 지도 학습과 구분 짓는 핵심입니다.


마르코프 결정 과정(MDP) — 현재가 미래를 결정한다

강화학습의 수학적 기반이 마르코프 결정 과정(MDP, Markov Decision Process)입니다. MDP는 다섯 가지 요소로 구성됩니다.

MDP = (S, A, P, R, γ)

S: 상태 집합 (State Space)
A: 행동 집합 (Action Space)
P: 상태 전이 확률 P(s'|s, a)
  → 상태 s에서 행동 a를 했을 때 s'로 갈 확률
R: 보상 함수 R(s, a, s')
γ: 감가율 (0 ≤ γ ≤ 1)

마르코프 성질:
P(s_{t+1} | s_t, a_t, s_{t-1}, a_{t-1}, ...) = P(s_{t+1} | s_t, a_t)

→ 다음 상태는 현재 상태와 행동에만 의존
→ 과거 이력은 필요 없다

마르코프 성질이 강력한 이유는 과거를 다 기억하지 않아도 된다는 겁니다. 지금 내가 어디에 있고 무엇을 하느냐만 알면 됩니다. 이 단순화 덕분에 복잡한 문제가 계산 가능해집니다. 체스판의 현재 상태만 보면 되고, 지금까지 어떤 수가 오갔는지는 몰라도 됩니다.


벨만 방정식 — 미래 보상을 현재 가치로 환산하기

강화학습의 핵심 수식이 벨만 방정식(Bellman Equation)입니다. "지금 이 상태의 가치는 지금 받는 보상과 앞으로 받을 가치의 합"이라고 정의합니다.

가치 함수 V(s):
V(s) = E[R_{t+1} + γ·R_{t+2} + γ²·R_{t+3} + ...]

벨만 방정식으로 재귀적 표현:
V(s) = E[R_{t+1} + γ·V(s_{t+1})]

Q 함수 Q(s, a) (행동 가치 함수):
Q(s, a) = E[R_{t+1} + γ·max_a' Q(s_{t+1}, a')]

감가율 γ의 의미:
γ = 0: 현재 보상만 봄 (완전한 근시안)
γ = 0.9: 미래를 많이 고려
γ = 1: 미래와 현재를 동등하게 봄 (수렴 안 될 수 있음)

→ 오늘 받는 10점이 내일 받는 10점보다 가치 있다
→ 멀리 있는 보상일수록 γ로 할인

벨만 방정식이 재귀적 구조를 갖는 게 중요합니다. V(s)를 구하려면 V(s')가 필요하고, V(s')를 구하려면 V(s'')가 필요합니다. 이 순환을 반복적으로 풀면 각 상태의 진짜 가치가 수렴합니다. 이 과정이 Q-러닝의 핵심 아이디어입니다.


Q-러닝 — 실제 숫자로 계산해보기

Q-러닝은 Q(s, a) 값을 반복적으로 업데이트해서 최적의 정책을 찾는 알고리즘입니다. 처음에는 모든 Q 값이 0입니다. 에피소드를 반복하면서 실제 보상을 받을 때마다 Q 테이블을 업데이트합니다.

Q-러닝 업데이트 수식:
Q(s, a) ← Q(s, a) + α[R + γ·max_a' Q(s', a') - Q(s, a)]

α: 학습률 (얼마나 빠르게 업데이트할지)
R: 받은 보상
γ: 감가율
max_a' Q(s', a'): 다음 상태에서 최선의 Q 값

간단한 예시 (미로 탈출):
현재 상태 s=A, 행동 a=오른쪽, 다음 상태 s'=B
보상 R=0, γ=0.9, α=0.1
Q(B, 최선) = 10 (이미 학습된 값)

Q(A, 오른쪽) = 0 + 0.1×[0 + 0.9×10 - 0]
= 0 + 0.1×9 = 0.9

→ Q(A, 오른쪽)이 0에서 0.9로 업데이트됨
→ 에피소드 반복할수록 Q 값이 정확해짐

직접 이 과정을 코드로 구현해 보면 처음에 0으로 가득했던 Q 테이블이 수천 번 에피소드를 거치면서 의미 있는 숫자로 채워지는 걸 볼 수 있습니다. 그 Q 테이블이 완성되는 순간 에이전트가 최적의 길을 찾아가기 시작합니다.


탐험과 이용의 딜레마

강화학습 에이전트는 항상 딜레마에 빠집니다. 지금껏 알게 된 최선의 행동을 반복하는 이용(Exploitation)과, 더 좋은 방법이 있을지 새로운 행동을 시도하는 탐험(Exploration) 사이의 균형입니다.

ε-greedy 전략:
확률 ε로 무작위 행동 (탐험)
확률 1-ε로 최선의 행동 (이용)

ε 스케줄링:
초기 ε = 1.0 (처음엔 완전히 탐험)
점차 감소: ε = max(0.01, ε × 0.995)
나중엔 ε = 0.01 (대부분 이용, 약간 탐험)

이용만 할 때 문제:
처음 발견한 괜찮은 길만 계속 감
→ 더 좋은 지름길을 영원히 못 찾음 (국소 최적)

탐험만 할 때 문제:
매번 무작위로 움직임
→ 보상이 쌓이지 않음, 학습 안 됨

식당 선택에 비유하면 이렇습니다. 맛있다고 알려진 식당만 가면 더 맛있는 곳을 영원히 모릅니다. 반대로 매번 새 식당만 가면 좋아하는 메뉴를 한 번도 못 먹습니다. ε을 시간이 지날수록 줄여가는 방식이 대부분의 실무 구현에서 쓰입니다.


DQN — 딥러닝과 강화학습의 결합

Q-러닝은 상태와 행동의 수가 적을 때만 쓸 수 있습니다. 바둑은 가능한 상태가 10^170개입니다. Q 테이블을 만들 수 없습니다. 2013년 DeepMind가 발표한 DQN(Deep Q-Network)은 Q 테이블 대신 신경망으로 Q(s, a) 값을 근사합니다.

DQN 구조:
입력: 현재 상태 s (예: 게임 화면 픽셀)
신경망: CNN으로 상태 특징 추출
출력: 각 행동의 Q 값 [Q(s,왼쪽), Q(s,오른쪽), ...]

DQN의 핵심 트릭 두 가지:

1. Experience Replay:
과거 경험 (s, a, r, s')을 메모리에 저장
무작위로 샘플해서 학습 → 데이터 상관관계 제거

2. Target Network:
학습 중인 네트워크와 별도의 타겟 네트워크 유지
→ 학습 안정화

성과:
아타리 게임 49개에서 인간 수준 또는 초월

이 연재에서 다룬 개념들이 DQN에서 모두 만납니다. CNN으로 게임 화면에서 특징을 추출하고, 역전파로 Q 값 예측을 학습하고, 경사하강법으로 가중치를 업데이트합니다. 강화학습은 지도 학습과 다른 목표를 갖지만 같은 수학적 도구를 씁니다. ChatGPT의 RLHF(인간 피드백 기반 강화학습)도 이 DQN에서 발전한 아이디어입니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름