POST

강화학습의 근간 (2): 에이전트, 환경, 그리고 MDP

문제를 먼저 정의해야 한다

앞 글에서 강화학습이 심리학의 시행착오와 수학의 최적 제어가 합류한 분야임을 봤다. 그런데 합류가 가능했던 것은 두 전통이 같은 형식 언어 위에 올라탔기 때문이다 — 그 언어가 MDP다. 이 글은 그 언어를 바닥부터 쌓는다: 에이전트-환경 루프의 부품들을 먼저 정의하고, 마르코프 성질이라는 한 줄의 가정에서 출발해 Markov Process → Markov Reward Process → Markov Decision Process로 구조를 하나씩 얹는다. 알고리즘은 하나도 안 나온다 — 하지만 이 글의 정의가 흔들리면 이후의 모든 알고리즘이 공중에 뜬다.

에이전트-환경 루프

강화학습 문제의 등장인물은 둘이다. 에이전트(agent) 는 배우고 결정하는 주체이고, 환경(environment) 은 에이전트 바깥의 모든 것이다. 매 시점 tt마다 루프가 돈다:

  1. 에이전트가 행동(action) AtA_t를 낸다.
  2. 환경이 그 행동을 받아 내부적으로 전이하고, 관측(observation) Ot+1O_{t+1}과 보상(reward) Rt+1R_{t+1}을 돌려준다.
  3. 에이전트는 이를 보고 다음 행동을 고른다.

각 부품을 분명히 하자:

  • 보상 RtR_t: 스칼라 피드백 신호. 강화학습의 목표는 보상 자체가 아니라 누적 보상(return)의 기댓값 최대화다. “목표는 항상 스칼라 누적 보상의 최대화로 표현될 수 있다”는 가정을 보상 가설(reward hypothesis) 이라 부르는데, 이는 증명이 아니라 이 분야의 설계 결단이다.
  • 행동 AtA_t: 에이전트가 환경에 영향을 주는 유일한 통로. 이산(바둑의 착점)일 수도, 연속(로봇 관절 토크)일 수도 있으며 이 구분이 나중에 가치 기반 vs 정책 기반의 갈림을 만든다.
  • 관측 OtO_t: 환경이 에이전트에게 보여주는 것. 환경의 내부 상태와 같다는 보장이 없다 — 이 간극이 아래 POMDP 논의의 전부다.
  • 히스토리 Ht=O1,R1,A1,…,At−1,Ot,RtH_t = O_1, R_1, A_1, \ldots, A_{t-1}, O_t, R_t: 지금까지 오간 모든 것. 원칙적으로 에이전트가 쓸 수 있는 정보의 전부이지만, 매 스텝 히스토리 전체를 근거로 판단하는 것은 불가능하다.

그래서 필요한 것이 상태(state) 다: 상태란 다음에 무슨 일이 일어날지 결정하는 데 충분한 정보의 요약, 형식적으로는 히스토리의 함수 St=f(Ht)S_t = f(H_t)다. 여기서 중요한 구분 — 환경 상태 SteS_t^e 는 환경이 다음 관측/보상을 만드는 데 쓰는 내부 데이터(에이전트에게 보통 안 보인다)이고, 에이전트 상태 StaS_t^a 는 에이전트가 다음 행동을 고르는 데 쓰는 요약이다. 알고리즘이 “상태”라 할 때는 항상 후자이며, 에이전트 상태를 무엇으로 잡을지는 설계자의 선택이다.

마르코프 성질 — 버려도 되는 과거

어떤 요약이 좋은 상태인가에 대한 답이 마르코프 성질(Markov property) 이다. 상태 StS_t가 마르코프라는 것은

P[St+1∣St]=P[St+1∣S1,S2,…,St]\mathbb{P}[S_{t+1} \mid S_t] = \mathbb{P}[S_{t+1} \mid S_1, S_2, \ldots, S_t]

— 미래는 현재가 주어지면 과거와 독립이라는 뜻이다. 상태가 마르코프이면 히스토리 전체를 버리고 현재 상태만 들고 다녀도 잃는 것이 없다: “The future is independent of the past given the present.” 체스판의 현재 배치는 마르코프다(어떤 순서로 도달했든 이후 게임은 동일하다). 헬리콥터의 위치·속도·각속도 벡터도 마르코프다. 반면 “현재 프레임 한 장”은 대개 마르코프가 아니다 — 공의 위치는 보여도 속도는 안 보이니까(Atari에서 프레임 4장을 쌓는 이유가 정확히 이것이다).

마르코프 성질은 이후 모든 이론의 지반이다. 벨만 방정식의 재귀가 성립하는 것도, 가치가 “상태의 함수”로 잘 정의되는 것도 전부 이 가정 위에서다.

완전 관측과 부분 관측 — MDP인가 POMDP인가

관측과 환경 상태의 관계에 따라 문제의 급이 갈린다.

완전 관측(fully observable): Ot=SteO_t = S_t^e, 즉 에이전트가 환경 상태를 그대로 본다. 이때는 에이전트 상태를 그냥 관측으로 잡으면 되고(Sta=Ot=SteS_t^a = O_t = S_t^e), 이것이 마르코프이므로 문제는 아래에서 정의할 MDP가 된다. 이 시리즈의 (3) 이후 글들은 기본적으로 이 설정 위에 서 있다.

부분 관측(partially observable): 에이전트가 환경 상태의 일부만 본다 — 포커(상대 패가 안 보인다), 카메라 한 대짜리 로봇(자기 절대 위치를 모른다), 트레이딩(호가창은 보여도 시장의 “진짜 상태”는 안 보인다). 형식적으로는 POMDP: MDP 위에 관측 공간 O\mathcal{O}와 관측 확률 Z(o∣s′,a)Z(o \mid s', a)를 얹은 ⟨S,A,O,P,R,Z,γ⟩\langle \mathcal{S}, \mathcal{A}, \mathcal{O}, \mathcal{P}, \mathcal{R}, Z, \gamma \rangle이다. 관측 자체는 마르코프가 아니므로, 에이전트는 마르코프인 상태를 스스로 만들어야 한다. 대표적 선택지:

  • 히스토리 전체: Sta=HtS_t^a = H_t. 항상 가능하지만 무한히 자란다.
  • Belief state: 환경 상태에 대한 사후 분포 bt(s)=P[Ste=s∣Ht]b_t(s) = \mathbb{P}[S_t^e = s \mid H_t]. 이것은 마르코프임이 증명되지만, 상태 공간이 크면 유지가 불가능하다.
  • 학습된 요약: RNN 등으로 Sta=fθ(St−1a,At−1,Ot)S_t^a = f_\theta(S_{t-1}^a, A_{t-1}, O_t)를 학습. 현대 deep RL이 실제로 쓰는 답이고, World Models·PlaNet·Dreamer의 latent state가 정확히 이 노선이다.

정리하면 — “이 문제는 완전 관측인가?”는 강화학습 문제를 받았을 때 가장 먼저 물어야 할 질문이다. 이 시리즈의 이론은 MDP 기준으로 전개하되, 부분 관측이면 위의 방법으로 마르코프 상태를 복원한 뒤 같은 이론을 적용한다고 이해하면 된다.

Markov Process — 상태와 전이만 있는 세계

이제 MDP를 한 층씩 쌓는다. 가장 아래층은 Markov Process(마르코프 연쇄) ⟨S,P⟩\langle \mathcal{S}, \mathcal{P} \rangle: 마르코프인 상태들의 집합 S\mathcal{S}와 상태 전이 확률

Pss′=P[St+1=s′∣St=s]\mathcal{P}_{ss'} = \mathbb{P}[S_{t+1} = s' \mid S_t = s]

이 전부인 세계다. 행동도 보상도 없다 — 그냥 확률적으로 흘러가는 과정이다. 학생이 “수업 → 딴짓 → 수업 → 술집 → …”을 떠도는 David Silver의 student chain 같은 예를 떠올리면 된다. 여기서 에피소드(episode) 라는 개념이 나온다: 시작 상태에서 종단(terminal) 상태까지의 표본 경로 S1,S2,…,STS_1, S_2, \ldots, S_T. 뒤에서 몬테카를로 방법이 “에피소드를 여러 번 굴려 평균”할 때의 그 에피소드다.

Markov Reward Process — 가치가 태어나는 층

Markov Process에 보상을 얹으면 MRP ⟨S,P,R,γ⟩\langle \mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma \rangle가 된다. Rs=E[Rt+1∣St=s]\mathcal{R}_s = \mathbb{E}[R_{t+1} \mid S_t = s]는 상태별 기대 보상, γ∈[0,1]\gamma \in [0, 1]은 할인율이다. 이 층에서 강화학습의 핵심 수량 두 개가 정의된다.

수익(return) — 한 시점부터의 할인 누적 보상:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

γ\gamma를 두는 이유는 세 겹이다: (1) 수학 — 무한 합을 유한하게 만들어 이론을 성립시킨다, (2) 모델링 — 미래의 불확실성을 반영한다(당장의 보상이 더 확실하다), (3) 실용 — γ\gamma가 실질적 계획 지평(horizon) ≈1/(1−γ)\approx 1/(1-\gamma)을 정한다.

가치 함수(value function) — 수익의 기댓값:

V(s)=E[Gt∣St=s]V(s) = \mathbb{E}[G_t \mid S_t = s]

수익 GtG_t는 확률 변수(에피소드마다 다르다)이고 가치 V(s)V(s)는 그 평균이라는 구분을 확실히 해두자 — 몬테카를로(GtG_t의 표본 평균)와 TD(VV의 재귀식 이용)의 차이가 정확히 이 구분에서 나온다.

가치의 정의에 Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}을 넣으면 MRP의 벨만 방정식이 나온다:

V(s)=Rs+γ∑s′∈SPss′V(s′)V(s) = \mathcal{R}_s + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'} V(s')

행렬로 쓰면 V=R+γPVV = \mathcal{R} + \gamma \mathcal{P} V이고, 이는 선형 방정식이라 닫힌 해가 있다:

V=(I−γP)−1RV = (I - \gamma \mathcal{P})^{-1} \mathcal{R}

역행렬 계산이 O(∣S∣3)O(|\mathcal{S}|^3)이라 작은 문제에서만 실용적이지만, “가치는 원리적으로 풀리는 대상”임을 보여주는 중요한 사실이다. 상태가 많아지면 반복법(DP), 모델을 모르면 표본 기반 방법(MC, TD)으로 근사하게 되는데 — 그 전체 여정이 이 시리즈의 나머지다.

Markov Decision Process — 선택이 들어오는 층

마지막으로 행동을 얹으면 MDP ⟨S,A,P,R,γ⟩\langle \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma \rangle다. 전이와 보상이 행동에 의존하게 된다:

Pss′a=P[St+1=s′∣St=s,At=a],Rsa=E[Rt+1∣St=s,At=a]\mathcal{P}_{ss'}^a = \mathbb{P}[S_{t+1} = s' \mid S_t = s, A_t = a], \qquad \mathcal{R}_s^a = \mathbb{E}[R_{t+1} \mid S_t = s, A_t = a]

행동이 생기는 순간 정책(policy) 이 정의된다 — 상태에서 행동으로의 (확률적) 사상:

π(a∣s)=P[At=a∣St=s]\pi(a \mid s) = \mathbb{P}[A_t = a \mid S_t = s]

정책을 하나 고정하면 MDP는 MRP로 접힌다(전이를 π\pi로 평균하면 된다) — 그래서 MRP에서 만든 모든 개념이 그대로 올라온다. 다만 이제 가치가 정책에 붙는다:

  • 상태 가치 Vπ(s)=Eπ[Gt∣St=s]V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s] — 상태 ss에서 π\pi를 따를 때의 기대 수익.
  • 행동 가치 Qπ(s,a)=Eπ[Gt∣St=s,At=a]Q^\pi(s, a) = \mathbb{E}_\pi[G_t \mid S_t = s, A_t = a] — ss에서 aa를 하고 이후 π\pi를 따를 때의 기대 수익.

QQ를 따로 정의하는 이유는 실용적이다: QQ만 있으면 모델 없이 행동을 고를 수 있다(arg⁡max⁡aQ(s,a)\arg\max_a Q(s,a)). VV만 있으면 “어느 행동이 어느 상태로 이어지는가”(Pa\mathcal{P}^a)를 알아야 greedy 선택이 가능하다. model-free 제어가 VV가 아니라 QQ를 배우는 이유가 이것이고, (6)에서 다시 만난다.

벨만 기대 방정식

두 가치는 서로를 통해 재귀된다:

Vπ(s)=∑aπ(a∣s) Qπ(s,a)V^\pi(s) = \sum_{a} \pi(a \mid s) \, Q^\pi(s, a)

Qπ(s,a)=Rsa+γ∑s′Pss′a Vπ(s′)Q^\pi(s, a) = \mathcal{R}_s^a + \gamma \sum_{s'} \mathcal{P}_{ss'}^a \, V^\pi(s')

둘을 합치면 VπV^\pi만의(또는 QπQ^\pi만의) 재귀 — 벨만 기대 방정식(Bellman expectation equation) 이 된다:

Vπ(s)=∑aπ(a∣s)(Rsa+γ∑s′Pss′aVπ(s′))V^\pi(s) = \sum_a \pi(a \mid s) \left( \mathcal{R}_s^a + \gamma \sum_{s'} \mathcal{P}_{ss'}^a V^\pi(s') \right)

“기대”라는 이름대로 이는 주어진 π\pi를 평가하는 방정식이다 — (3)의 policy evaluation이 푸는 대상이 정확히 이것이다.

벨만 최적 방정식

우리가 진짜 원하는 것은 최적이다. 최적 가치 V∗(s)=max⁡πVπ(s)V^*(s) = \max_\pi V^\pi(s), Q∗(s,a)=max⁡πQπ(s,a)Q^*(s,a) = \max_\pi Q^\pi(s,a)를 정의하면, MDP에는 모든 상태에서 동시에 다른 모든 정책 이상인 최적 정책 π∗\pi^*가 존재하고, Q∗Q^*에 대해 greedy한 결정적 정책이 그 하나다. 최적 가치의 재귀가 벨만 최적 방정식(Bellman optimality equation):

V∗(s)=max⁡a(Rsa+γ∑s′Pss′aV∗(s′))V^*(s) = \max_a \left( \mathcal{R}_s^a + \gamma \sum_{s'} \mathcal{P}_{ss'}^a V^*(s') \right)

Q∗(s,a)=Rsa+γ∑s′Pss′amax⁡a′Q∗(s′,a′)Q^*(s, a) = \mathcal{R}_s^a + \gamma \sum_{s'} \mathcal{P}_{ss'}^a \max_{a'} Q^*(s', a')

기대 방정식과 꼴이 같지만 ∑aπ\sum_a \pi가 max⁡a\max_a로 바뀌었다 — 그리고 이 max⁡\max 때문에 방정식이 비선형이 되어 MRP처럼 역행렬로 풀 수 없다. 반복적으로 풀어야 하며, 그 반복법들의 이름이 value iteration, Q-learning, DQN, …이다. 즉 이 시리즈의 남은 글 전부가 “벨만 최적 방정식을 어떤 조건에서 어떻게 푸는가”에 대한 답들이다.

다음 글

이제 언어가 갖춰졌다. 다음 글에서는 가장 좋은 조건 — 모델(P,R\mathcal{P}, \mathcal{R})을 완전히 아는 세계 — 에서 벨만 방정식을 푸는 동적 계획법(policy evaluation, policy iteration, value iteration)을 다룬다. 조건을 하나씩 빼앗기며(모델 모름 → (4)·(6), 상태 공간 폭발 → (6)의 DQN 이후) 알고리즘이 진화하는 것이 시리즈의 큰 줄기다.