열렬히.뛰기

7. 마코프체인 : intro

수학 & 통계 > 확률과정론 > 확률과정론 > 7. 마코프체인 : intro

마코프 체인이란?

  • 마코프과정의 일종.
  • 시점 t: 이산형 / 상태공간: 이산형
  • 여기서는 정상성을 만족하는 마코프 체인을 다룬다.

앞서 확률과정을 정의할 때, 우리는 독립이 아닌 다변량 확률을 다음과 같이 정의했다.

\begin{align*} P(&X_1=x_1,~X_2=x_2, ~\cdots,~X_n=x_n) \\[15pt] =~&~ P(X_1=x_1) ~\times~ \cdots ~\times~ P(X_n=x_n|X_1=x_1, \cdots, X_{n-1}=x_{n-1}) \\[15pt] &\text{(if. markov process \& stationary)}\\[15pt] =~&~ P(X_1 = x_1) ~\times~ \cdots \times~P(X_n=x_n|X_{n-1}=x_{n-1}) \end{align*}

마코프체인에서는 이 식을 다음과 같이 다시 쓸 수 있다.

\phi(X_1) \times p(x_1, x_2) \times p(x_2, x_3) \times~ \cdots ~\times p(x_{n-1}, x_{n})
  • \phi(x)를 초기확률함수라고 한다.
  • 조건부확률 p(a, b)를 전이확률(또는 추이확률)함수이라고 한다.

초기확률함수

initial probability function

\phi(a) = P(X_0 = a)
  • X_0 일때의 확률분포를 의미한다.
  • 이걸 정해줘야 마코프 체인의 값을 구할 수 있다.

추이확률함수

transient probability function

P(a, b) = P(X_{t+1}=a ~|~ X_{t}=b)
  • 전이확률함수라고도 한다.
  • 역시 확률함수인 만큼 다음과 같은 규칙이 존재한다.
    1. P(a, b) 는 1보다 작아야 한다.
    2. a, b는 상태공간 S의 원소이다.
    3. a를 고정하고, b를 이동시키며 P(a, b)를 다 더하면 0보다 크다.
    4. b를 고정하고, a를 이동시키며 P(a, b)를 다 더 하면 1이다.
P(a,b) \le 1 \kern{10pt} a, b \in S \\[10pt] \sum_a~P(a,b) \ge 0 \\[10pt] \sum_b~P(a,b) = 1

마코프 체인의 표현

마코프 체인은 크게 3가지; 함수, 그림, 행렬로 표현할 수 있다.

함수는 위의 식과 같고, 그림과 행렬 표현을 보자.

추이도식

마코프 체인을 그림으로 표현한 것을 추이도식이라고 한다.

그래프 구조 또는 상태 전이도라고도 한다.

추이도식의 특징

  1. 동그라미를 노드 또는 시점이라고 하고, 화살표를 간선이라고 한다.

  2. 화살표(간선)이 곧 추이확률함수라고 할 수 있다.

  3. 한 시점에서 나가는 화살표의 합은 반드시 1이 나온다.

    이는 추이확률함수의 조건 3과 같다.

\begin{align*} \sum_{b \in S}~p(a,b) &= p(1,~1) + P(1,~2) + p(1,~3) + p(1,~4) \\[5pt] &= 0.1 + 0.2 + 0.3 + 0.4 \\[5pt] &= 1 \end{align*}

추이도식 그리기

손으로 그려도 되고, 그리는 도구도 있다.

중요한 것은 이걸 보고 어떻게 식이 세워질 수 있는지 파악하는 것!

  • 컴퓨터로는 mermaid라는 자바스크립트 기반 라이브러리를 이용해 그릴 수 있다.

추이행렬

마코프 체인을 행렬로 표현한 것을 추이행렬이라고 한다.

왜, 그리고 어떻게 쓰는지 앞서서 한 가지 질문을 던져보자.

Limiting probability

  • 시작 상태 및 과정과 상관없이, 특정 상태 = 특정 숫자일 확률은 얼마일까?
  • 이를 Limiting probability라고 한다.

예를 들어, X_1이 0이 될 확률은 얼마일까? 추이도식은 아래 그림과 같다.

mermaid
graph TD
  Mermaid --> Diagram
\begin{align*} &P(X_1 = 0) = \sum_{x_0 = 0}^2 P(X_0 = x_0,~X_1 = 0) \kern{15pt} S=\{0,1,2\} \\[15pt] &= \sum_{x_0 = 0}^2 P(X_0 = x_0)~P(X_1 = 0~|~X_0=x_0) \\[15pt] &= \sum_{x_0 = 0}^2 \phi(X_0)~P(X_0=0) \end{align*}
  • 또, X_2가 0이 될 확률은 얼마일까?

P(X_0이 되는 모든 것) + P(X_1이 되는 모든 것)을 다 더해야 한다.

\small \begin{align*} &P(X_2 = 0) = \sum_{x_0 = 0}^2 P(X_0 = x_0,~X_2 = 0) \kern{15pt} S=\{0,1,2\} \\[15pt] &= \sum_{x_0 = 0}^2 P(X_0 = x_0)~P(X_1 = 0~|~X_0=x_0)~P(X_2=x_2~|~X_1=x_1) \\[15pt] &= \sum_{x_0 = 0}^2 \phi(X_0)~\sum_{x_1} ~p(x_0, x_1)~p(x_1, x_2) \\[15pt] &= \sum_{x_0 = 0}^2 \phi(X_0)~\sum_{x_1} ~p(x_0, x_1)~p(x_1, 0) \end{align*}

그럼 X_{1000}이 0이 될 확률은 얼마인가?

P(X_0이 되는 모든 것)부터 P(X_{999}가 될 모든 것)을 다 더해야 한다.

식이 너무 복잡해지기 때문에, 행렬을 사용한다.

추이행렬의 특징

Limiting probability를 계산하기 앞서, 추이행렬이 어떻게 생겼는지 보자.

다음과 같이 생겼으며, 특징은 아래와 같다.

\begin{pmatrix} 0.1 & 0.2 & 0.3 \\ 0.1 & 0.2 & 0.3 \\ 0.1 & 0.2 & 0.3 \\ \end{pmatrix}
  1. 행렬의 각 원소는 조건부확률이라고 할 수 있다.

    예를 들어, 상태 1(X_1) → 상태 1(X_1)이 될 확률은 0.1이다.

  2. 행렬의 각 행의 합은 반드시 1이 나온다. (추이확률함수의 조건 3)

    그래서 그 고유값은 1이 된다.

\begin{pmatrix} 0.1 & 0.2 & 0.3 \\ 0.1 & 0.2 & 0.3 \\ 0.1 & 0.2 & 0.3 \\ \end{pmatrix} \begin{pmatrix} 1 \\ 1 \\ 1 \\ \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \\ 1 \\ \end{pmatrix} = \bold1

추이행렬로 계산 (1)

이를 이용해 limiting probability를 계산해보자.

예를 들어, X_1이 0이 될 확률은 얼마일까? 추이도식은 아래 그림과 같다.

mermaid
graph TD
  X_1 -->|0.4| X_1;  X_1 -->|0.1| X_2;  X_1 -->|0.5| X_3;
  X_2 -->|0.3| X_1;  X_2 -->|0.4| X_2;  X_2 -->|0.3| X_3;
  X_3 -->|0.1| X_1;  X_3 -->|0.2| X_2;  X_3 -->|0.7| X_3;
\begin{pmatrix} 0.4 & 0.1 & 0.5 \\ 0.3 & 0.4 & 0.3 \\ 0.1 & 0.2 & 0.7 \\ \end{pmatrix} \begin{pmatrix} 0.2 \\ 0.3 \\ 0.5 \\ \end{pmatrix} = \begin{pmatrix} 0.36 \\ 0.33 \\ 0.43 \\ \end{pmatrix}
  1. 앞 행렬 : 추이확률행렬. 각 원소 하나하나가 추이확률함수.
  2. 뒤 벡터 : 초기확률벡터. 각 원소 하나하나가 초기확률함수.

이 행렬-벡터 곱셈을 보통은 아래처럼 작성한다.

\begin{bmatrix} P(0,0) & P(0,1) & P(0,2) \\ P(1,0) & P(1,1) & P(1,2) \\ P(1,2) & P(2,1) & P(2,2) \end{bmatrix}^n \begin{bmatrix} P(X_0 = 0) \\ P(X_0 = 1) \\ P(X_0 = 2) \end{bmatrix} = \begin{bmatrix} P(X_n = 0) \\ P(X_n = 1) \\ P(X_n = 2) \end{bmatrix}
\begin{bmatrix} p(0,0) & p(0,1) & p(0,2) \\ p(1,0) & p(1,1) & p(1,2) \\ p(2,0) & p(2,1) & p(2,2) \\ \end{bmatrix} \begin{bmatrix} \phi(0) \\ \phi(1) \\ \phi(2) \\ \end{bmatrix} = \begin{bmatrix} \pi(0) \\ \pi(1) \\ \pi(2) \\ \end{bmatrix}

좀 더 간결한 기호로 쓰면 다음과 같다.

\mathbf{{\phi_0}^T~P} ={\Pi_1}^T

우리가 원했던 X_1이 0이 될 확률은 결국 0.33임을 알 수 있다.

추이행렬로 계산 (2)

이번에는 X_n이 무한대로 갈 때 0일 확률을 찾아보자.

\mathbf{{\phi_0}^T~P^n} ={\Pi_n}^T

예를 들어 상태공간 S = {0, 1, 2}인 경우 다음과 같다.

\begin{bmatrix} P(0,0) & P(0,1) & P(0,2) \\ P(1,0) & P(1,1) & P(1,2) \\ P(1,2) & P(2,1) & P(2,2) \end{bmatrix}^n \begin{bmatrix} P(X_0 = 0) \\ P(X_0 = 1) \\ P(X_0 = 2) \end{bmatrix} = \begin{bmatrix} P(X_n = 0) \\ P(X_n = 1) \\ P(X_n = 2) \end{bmatrix}

추이행렬 P의 n승을 구해야 할 때는 고유값 분해를 이용한다.

  1. 고유값을 찾는다.
  2. 고유벡터를 찾는다.
  3. 고유벡터를 모아 행렬 U를 만든다.
  4. 행렬 U의 역행렬 V를 구한다.
  5. 고유값을 모아 행렬 D를 구한다.
  6. P = U \cdot V \cdot D

또 이를 이용해서 마코프체인의 극한을 계산 할 수 있다.

\lim_{x \to \infty}~ \mathbf{{\phi_0}^T~P}^x = \lim_{x \to \infty}~ {\Pi_x}^T