HMM
HMM(Hidden Markov Model)의 전반적인 개념 이해을 목적으로 작성되었으며, 아래 글은 이곳에서 참조하였음을 알립니다.
I. 개요
현실의 체계를 모델링해서 시스템화 할 때 종종, 시간과 밀접한 패턴 변화에 관심을 갖게 된다. 가까운 예로서 음성 인식이라 할 수 있다. 패턴들의 일련(sequence)에서, 크게 두 가지 정도로 구분할 수 있다.
- 정해진 규칙에 따라 패턴 일련(Deterministic Patterns)
- 확률에 따른 패턴 일련(non-Deterministic Patterns, Probability Patterns)
HMM은 확률에 따른 패턴의 일련을 모델링한 수학적 모델이며, 구축된 모델을 기반으로 음성인식에서 형태소 분석까지 다양한 시스템을 구축하는 기반 알고리즘으로 활용되고 있다.
II. 패턴(Patterns)의 종류
1. 규칙형 패턴(Deterministic Patterns)
신호등과 같은 패턴 변화는 일정한 규칙을 가지고 변화며, 패턴의 일련을 모델링하기도 쉽다. 규칙적으로 변화하기에, amber의 다음 상태를 명백히 알 수 있다. (답은 red이다;;)

2. 확률 패턴(Non-deterministic, Probablistic Patterns)
확률적인 패턴 변화의 예는 날씨 변화이다. 맑은 날에서 흐린날로의 전환은 여러 가지 요인이 있어 정확히 예측할 수 없으며, 따라서 확률적으로 밖에 모델링이 안 된다. "맑음"의 다음 상태는 무엇인가에 답변을 할 수 있는가? 이 질문에 답변을 하기 위해 진행되는 것이 바로 이후에 진행되어야 할 HMM 모델링 과정이다.

확률적으로 모델링을 한다고 한다면, 과연 어떤 식으로 모델링을 해야 할까, 만약 날씨가 마구잡이 랜덤하게 변화한다면, 말 그대로 랜덤이며, 모델링은 더 이상 진행될 수 없다. 하지만 Markov이라는 과학자는 미래의 랜덤 프로세스가 현재의 상태에 의해서만 결정되는, 즉 과거와는 독립적인 프로세스라는 가정(Markov assumption)을 기반으로 이론을 전개해 나갔다. 물론 현실적으로 약간의 괴리가 있을 수 있지만, 어느 정도의 모델링이 가능하며(오류 범위 안에서), 그 결과 여러 가지 논리적으로 해결되는 문제(예측 등)들이 있기 때문에 주어진 가정(Markov assumption) 하에 HMM 알고리즘이 많이 사용되고 있는 것이다.
III. 마코프 프로세스 (Markov Process) 이해
HMM 을 이해하기 위해서 필요한 개념 이해가 우선 마코프 프로세스에 대한 이해가 필요하다. 앞에서 설명 드린 Markov assumption에 따르는 랜덤 프로세스(process)가 마코프 프로세스(Markov process)이다. 여기서 랜덤 프로세스란 랜덤으로 진행되는 프로세스?이나 완전한 랜덤은 아니고 평균값이나 분표 등 여러 가지 수치적으로 모델링 가능한 수준에서의 랜덤을 말한다. 완전한 랜덤을 모델링하는 이론은 이 지구상에는 없다. 그것은 그냥 랜덤일 뿐이다. 다시 본론으로 들어와서 명시적으로 마코브 프로세스(Markov process) 정의를 한다면 아래와 같다.
- 마코프 프로세스(Markov Process)
미래의 프로세스는 현재의 상태에 의해서만 결정되는, 과거와는 독립적인 (랜덤) 프로세스 (or memoryless process)
가장 간단한 형태의 1차 Markov Process는 이전 오직 1개의 상태가 현태 상태에 영향을 미치는 프로세스를 가리킨다. 위 날씨 그림의 경우, 화살표를 살펴보면, 현 상태를 결정하는 이전 상태는 오직 1개임을 알 수 있다. 그러므로 1차 Markov Process이다. 물론 실제 날씨 시스템에서는 훨씬 더 복잡하게 관련이 되어 있지만, 확률적인 시스템을 모델링하기 위한 제약 조건이라 생각하면 된다. 이런식으로 제약을 가하면서까지 모델링을 하는 이유는, 그 체계 속에서는 예측이나 평가, 판단이 가능하기 때문이다.
- State transition matrix
상태들의 변화(Transition) 확률 정보를 담고 있다. 현 상태에서 다음 상태로의 변화 확률을 행렬로 구성한 것이다. 날씨의 경우 예를 들어보자. 어제 "맑음"에서 오늘은 "맑음" 상태로 변할 확률이 0.5임을 알 수 있으며, 또 세로(column)의 확률 합이 1이 됨을 확인할 수 있다.

Vector (Initial state's probability)
최초 상태들의 확률값이다. State transition matrix은 상태가 변할 확률을 표현하며, Initial state's probability 는 최초 상태를 설명한다. 날씨의 경우는 "맑음"이 최초 상태이다.

1차 Markov process는 지금까지 언급한 세 가지 항목으로 표현이 가능하다.
- 상태(states) : 상태 정보
(Initial state's probability) : 최초 상태 확률
- State transition matrix : 상태 전이 확률
IV. Hidden Pattern
패턴을 모델링할 때 Markov Process 그 자체만으로는 그다지 Powerful 하지 않다. 왜냐면, 패턴이 직접적으로 관찰되지 않을 경우가 있기 때문이다. 그럼 그런 경우에는 어떻게 모델링 할 것인가? 그 전에 알아야 할 용어가 있다. 바로 Hidden Pattern 이다. Hidden Pattern이란 직접적으로 관찰되지 않는 패턴을 말하며, 반대로 관찰 가능한 패턴은 Observable pattern이라 한다. Observable pattern 과 Hidden Pattern 간의 연관성이 바로 HMM으로 모델링 된다.
다시 예를 들어, 날씨의 경우에 날씨의 상태와 밀접하게 관련이 있으면서, 관찰 가능한 상태는 해초가 있을 것이다. 해초의 축축함과 날씨는 밀접한 관련이 있다.(고 말한다. 본인은 잘 모른다.) 날씨의 패턴을 모델링하고자 했으나, 실제 날씨의 패턴은 관찰하기 어렵고, 그렇다고 해서 포기할 수는 없고, 그래서 날씨와 관련이 있어며, 관찰 가능한 해초의 패턴으로 날씨의 패턴을 모델링하는 방식이다. 다시 말해, Markov process 자체의 모델링보다는 위와같은 관계의 Hidden Pattern과, Observable Pattern로의 통합 모델링이 필요한 시점이 된 것이다. (-> HMM)

좀 더 실생활에서 예를 찾아본다면, 음성인식이다. 음성 정보(음파)나 혀의 위치 등은 관찰 가능한 상태변화이지만, 그와 밀접한 관련이 있는 실제 음성 정보를 발생시킨 단어의 패턴은 직접적으로 관찰할 수 없는 패턴이다. 이 경우에 소리에서 얻을 수 있는 단어의 패턴이 Hidden Pattern이 되며, 음성 정보(음파) 등은 관찰 가능한 패턴(Observable Pattern) 이 되는 것이다. 두 패턴의 연관성으로 음성인식까지? 가능하게 한 모델이 HMM이다.
Hidden states : the states of s system that may be described by a Markov Process (e.g. weather) Observable states : states of the process that are 'visible' (e.g. seaweed states)
V. HMM (Hidden Markov Model)
Hidden Pattern을 관찰하기 위한 모델이 바로 HMM (Hidden Markov Model) 이며 HMM은 아래와 같이(
, A, B)로 정의될 수 있다. (단, 아래 Confusion 행렬은 Hidden state와 Observable state와의 Relation Probability를 말함)
![]() | 최초 상태 백터 |
![]() | 상태 전이 행렬 |
![]() | Confusion 행렬 |



Recent Comments