Markov Decision Process


서론

지난 시간에는 정책을 평가하기 위해 에르고딕 조건 아래에서 장기적인 시간이 흘렀을 때의 상태분포를 구하는 것 까지 알았다. 그런데 처음의 질문 — "현재 상황에서 어떤 행동을 해야 미래에 더 좋은 결과를 얻을 수 있는가?" 는 아직 완전히 해결되지 않았다.

첫 번째는, "좋다"의 개념이 없다. Sunny와 Cloudy를 오가는 체인은 어느 쪽이 좋은 상태인지 알지 못한다. 두 번째, "행동"이 없다. Markov Chain으로 구성된 상태방문은 전이행렬에 의해 흘러갈 뿐, 우리가 이 Chain에 개입할 수단이 없다.

첫 번째의 좋음을 구별하기 위해 보상이라는 개념을 도입한다. 이를 MRP이라고 한다. 두 번째의 행동 개념까지 추가하면 MDP가 완성된다.

이렇게 구별하는 이유는, 보상이 만들어내는 개념들(return, 가치함수, 벨만 방정식)이 행동과 무관하게 정의되기 때문이다. 이 뼈대를 MRP에서 먼저 세워두고 MDP에서 행동까지 확장하여 보겠다.

목차

Markov Reward Process

Markov Chain \(\langle \mathcal{S}, \mathcal{P} \rangle\)에 두 가지를 추가한다:

\[\text{MRP} = \langle \mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma \rangle\]
  • \(\mathcal{R}:\) reward function - 보상 함수로 상태 s에 도달하면 받는 점수 \(\mathcal{R}_s = \mathbb{E}[R_{t+1} \mid S_t = s]\)
  • \(\gamma :\) discount factor(할인율)

날씨 예제에 보상을 얹어 보자. Sunny인 날은 기분이 좋아 +1, Cloudy인 날은 −1이라 하자:

\[R(\text{Sunny}) = +1, \quad R(\text{Cloudy}) = -1\]

이때 상태전이 행렬은 아래와 같았다.

\[\begin{aligned} \mathcal{P} &= \begin{pmatrix} \frac{2}{3} & \frac{1}{3} \\[6pt] \frac{1}{2} & \frac{1}{2} \end{pmatrix}\end{aligned} \]

이제 각 상태에 보상이 주어졌으므로, 어떤 상태가 얼마나 좋은지 평가할 수 있다. 그러나 상태의 좋음은 현재 받는 보상만으로 결정되지 않는다. 예를 들어 오늘이 Sunny라면 현재 보상 +1을 받을 뿐 아니라, 내일도 Sunny일 확률이 높아( \(P_{11}=\frac{2}{3}\) ) 미래에도 좋은 보상을 받을 가능성이 크다. 따라서 한 상태의 가치는 그 상태에서 시작했을 때 앞으로 받을 모든 보상의 기대값으로 평가해야 한다.

Return

미래 보상의 총합을 계산하기 위해 시점 t부터 받게될 보상의 총합을 return \(G_t\) 라고 한다.

\[G_t = R_{t+1} + R_{t+2} + R_{t+3} + \cdots\]

하지만 미래 보상을 단순히 모두 더하면 문제가 생긴다. 끝없이 계속되는 환경에서는 보상이 무한히 누적될 수 있기 때문이다. 예를 들어 Sunny 상태가 계속 반복되면

\[1 + 1 + 1 + \cdots = \infty\]

가 되어 모든 상태의 가치가 무한대가 될 수 있다. 이렇게 되면 어떤 상태가 더 좋은지 비교할 수 없으므로, 미래 보상의 합이 유한하도록 만드는 방법이 필요하다.

따라서 수렴하기 위해 미래의 보상을 한 스텝 멀어질 때마다 일정 비율로 깎는 방식을 사용한다.

할인율 \(0 \le \gamma < 1\) 을 도입한다.