히든 마코프 체인

히든 마코프 체인

빌드업

20190218\_114748.png

위의 그림과 같이 어떤 기계에서 일정한 시간마다 어떤 물건을 생산한다고 생각해보자. 녹색이 정상적인 양품 $1$ 이고 적색이 폐기해야하는 불량품 $0$ 이라면, 지금까지의 기록은 $\left( 1, 0 , 1 \right)$ 이 될 것이다. 이렇게 실제로 눈에 보이는 결과를 시그널Signal이라고 한다.

20190218\_111057.png 단, 불량품이 나올 확률은 기계가 정상인지 고장인지에 따라 다르다고 하자. 정상 $+$ 일 때는 불량률이 $1 %$ 밖에 안 되지만, 고장 $-$ 일 때는 불량률이 $4 %$ 로 치솟게 된다. 이를 조건부 확률로 표현해보면 $$\begin{matrix} p ( 1 \mid + ) = 0.99 & p ( 0 \mid + ) = 0.01 \\ p ( 1 \mid - ) = 0.96 & p ( 0 \mid - ) = 0.04 \end{matrix}$$

이 될 것이다. 도식으로는 다음과 같다.

20190218\_111611.png

기계가 한 번 물건을 생산할 때마다 고장날 확률은 위의 도식과 마찬가지로 $10 \%$ 라 하자. 이것은 마코프 체인이고, 확률과정 $\left\{ X_{j} \right\}_{j = 0}^{n}$ 의 상태공간은 $\left\{ + , - \right\}$ 이고, 우리의 관심사는 $j$ 번째 생산을 마쳤을 때 기계가 정상일 확률 $p \left( X_{j} = + \right)$ 이 된다. 물론 처음엔 기계가 정상이라고 가정할 것이고, 이는 $\begin{matrix} p(X_{0} = +) = 1 \\ p(X_{0} = - ) = 0 \end{matrix}$ 으로 표현된다.

기계가 고장난 상태로 방치된다면 계속해서 많은 불량품을 만들어낼 것이다. 문제는 이것을 어떻게 알겠냐는 것이다. 물론 기계가 고장인지 아닌지는 관리자가 기계를 한 번 뜯어봐도 금방 알 수 있겠지만, 큰 공장에서 엄청나게 많은 수의 기계가 있다면 이런 점검조차도 몹시 부담스러운 일이 된다. 현실적으로는 나오는 물건을 보고야 어떤 기계에 문제가 있다는 것을 짐작하는 수밖에 없는 것이다.

정의

이렇듯 마코프 체인(원인)은 숨겨져 있고 그에 따른 시그널(결과)만 알고 있을 때 $\left\{ X_{j} \right\}_{j=0}^{n}$ 을 히든 마코프 체인이라 한다.

예제

(1)

이제 시그널 $s_{(n)} = ( s_{1} , s_{2} , \cdots , s_{n} )$ 이 주어져 있을 때 $X_{n} = x $ 일 확률 $\displaystyle p \left( X_{n} = x \mid S_{(n)} = s_{(n)} \right)$ 을 구해보자.


$\displaystyle F_{n} (x):= p \left( X_{n} = x , S_{(n)} = s_{(n)} \right)$ 이라고 하면 $$ \begin{align*} & p \left( X_{n} = x \mid S_{(n)} = s_{(n)} \right) \\ =& {{ p \left( X_{n} = x , S_{(n)} = s_{(n)} \right) } \over { p \left( S_{(n)} = s_{(n)} \right) }} \\ =& {{ F_{n} (x) } \over { \sum_{y} F_{n} (y) }} \end{align*} $$ 즉, $F_{n} (x)$ 를 알면 조건부 확률을 생각하지 않고도 $\displaystyle p \left( X_{n} = x \mid S_{(n)} = s_{(n)} \right)$ 를 알 수 있다. $(1)$ $s_{n}$ 은 $s_{(n-1)}$ 과 독립이고, $(2)$ $\left\{ X_{j} \right\}_{j=1}^{n}$ 은 마코프 체인이므로 $$ \begin{align*} F_{n} (x) =& p \left( X_{n} = x , S_{(n)} = s_{(n)} \right) \\ =& p \left( X_{n} = x , S_{(n-1)} = s_{(n-1)} , S_{n} = s_{n} \right) \\ =& \sum_{y} p \left( X_{n} = x , X_{n-1} = y , S_{(n-1)} = s_{(n-1)} , S_{n} = s_{n} \right) \\ =& \sum_{y} p \left( X_{n-1} = y , S_{(n-1)} = s_{(n-1)} \right) {{ p \left( X_{n} = x , X_{n-1} = y , S_{(n-1)} = s_{(n-1)} , S_{n} = s_{n} \right)} \over { p \left( X_{n-1} = y , S_{(n-1)} = s_{(n-1)} \right) }} \\ =& \sum_{y} F_{n-1} ( y ) p \left( X_{n} = x , S_{n} = s_{n} \mid X_{n-1} = y , S_{(n-1)} = s_{(n-1)} \right) \\ &\overset{(1)}{=}& \sum_{y} F_{n-1} ( y ) p \left( X_{n} = x , S_{n} = s_{n} \mid X_{n-1} = y \right) \\ =& \sum_{y} F_{n-1} ( y ) {{ p \left( S_{n} = s_{n} , X_{n} = x , X_{n-1} = y \right) } \over { p ( X_{n-1} = y ) }} \\ =& \sum_{y} F_{n-1} ( y ) {{ p ( X_{n} = x , X_{n-1} = y ) } \over { p ( X_{n-1} = y ) }} {{ p \left( S_{n} = s_{n} , X_{n-1} = y , X_{n} = x \right) } \over { p ( X_{n} = x , X_{n-1} = y ) }} \\ =& \sum_{y} F_{n-1} ( y ) p \left( X_{n} = x \mid X_{n-1} = y \right) p \left( S_{n} = s_{n} \mid X_{n} = x , X_{n-1} = y \right) \\ &\overset{(2)}{=}& \sum_{y} F_{n-1} ( y ) p \left( X_{n} = x \mid X_{n-1} = y \right) p \left( S_{n} = s_{n} \mid X_{n} = x \right) \\ =& \sum_{y} F_{n-1} ( y ) p_{yx} p \left( s_{n} \mid x \right) \end{align*} $$ 정리하면 다음을 얻는다. $$ F_{n} (x) = p \left( s_{n} \mid x \right) \sum_{y} F_{n-1} ( y ) p_{yx} $$

(2)

20190218\_114748.png 그럼 이제 예제로써 이 포스트에서 언급된 가정 하에서 $\displaystyle p \left( X_{3} = + \mid S_{(3)} = (1,0,1) \right)$ 을 계산해보자. 다시 말해, 저 상황에서 기계가 정상일 확률을 계산하자.


마코프 체인에서 상태의 전이확률은 $$\begin{matrix} p_{++} = 0.9 & p_{+-} = 0.1 \\ p_{-+} = 0 & p_{–} = 1 \end{matrix}$$ 각 상태에서 $$\begin{matrix} p ( 1 \mid + ) = 0.99 & p ( 0 \mid + ) = 0.01 \\ p ( 1 \mid - ) = 0.96 & p ( 0 \mid - ) = 0.04 \end{matrix}$$ 처음엔 기계가 정상인 것으로 가정하므로 $$ F_{1} (+) = p( 1 \mid + ) = 0.99 \\ F_{1} (-) = p (0 \mid + ) = 0.01 $$ $s_{2} = 0$ 이므로 $$ F_{2} ( + ) = p ( 0 \mid + ) \left[ F_{1} ( + ) p_{++} + F_{1} ( - ) p_{-+} \right] = 0.01 \times [ 0.99 \times 0.9 + 0 ] = 0.00891 \\ F_{2} ( - ) = p ( 0 \mid - ) \left[ F_{1} ( + ) p_{+-} + F_{1} ( - ) p_{–} \right] = 0.04 \times [ 0.99 \times 0.1 + 0.01 \times 1 ] = 0.00436 $$ $s_{3} = 1$ 이므로 $$ F_{3} ( + ) = p ( 1 \mid + ) \left[ F_{2} ( + ) p_{++} + F_{2} ( - ) p_{-+} \right] = 0.99 \times [ .00891 \times 0.9 + 0 ]) = 0.00793881 \\ F_{3} ( - ) = p ( 1 \mid - ) \left[ F_{2} ( + ) p_{+-} + F_{2} ( - ) p_{–} \right] = 0.94 \times [ .00891 \times 0.1 + .00436 \times 1 ] = 0.00493594 $$ 따라서 $$\displaystyle p \left( X_{3} = + \mid S_{(3)} = (1,0,1) \right) = {{ F_{3} ( + ) } \over { F_{3} ( + ) + F_{3} ( - ) }} = {{ 0.00793881 } \over { 0.01287475 }} = 0.6166 \cdots$$

상식적으로 생각해보아도 불량률이 그렇게 높지가 않은데 고작 세 개중에서도 하나가 불량이라면 기계가 정상일 가능성은 현저히 떨어짐을 짐작할 수 있다. 계산 결과 기계가 정상일 확률은 $60 \%$ 를 간신히 넘기는 수준이다.

댓글