은닉마르코프모델(HMM, Hidden Marcov Model)
태그 :
- 개념
- 지도학습, 예측적분류, 순차 데이터, 문맥 의존 데이터, 상태 은닉, 마르코프 체인. 은닉마르코프모델의 정의 - 시스템이 은닉된 상태와 관찰 가능한 결과의 두 가지 요소로 이루어졌다고 보는 통계 기반의 모델. - 순차 데이터나 문맥 의존 데이터를 인식하는 가장 대표적인 모델, 확률을 이용한 모델.
## Ⅰ 은닉마르코프모델의 개요
### 가. 은닉마르코프모델의 정의
- 시스템이 은닉된 상태와 관찰 가능한 결과의 두 가지 요소로 이루어졌다고 보는 통계 기반의 모델.
- 순차 데이터나 문맥 의존 데이터를 인식하는 가장 대표적인 모델, 확률을 이용한 모델.
### 나. 특징
- **은닉 상태**: 상태를 직접적으로 볼 수 없고 상태들로부터 야기된 결과들만을 관찰 가능
- **마르코프 체인**: 각 시행 결과가 바로 앞의 시행 결과에만 영향을 받는 일련의 확률적 시행
- **순차 데이터**: 시간성을 갖는 데이터, 대부분 가변 길이를 가짐
- **문맥 의존 데이터**: 명시적으로 시간성을 갖지는 않지만 단어 간에 앞 뒤 관계가 있는 문장 속의 단어나 단어 속의 문자들
## Ⅱ. 은닉 마르코프 모델 구성
### 가. 구성도
| 예제 설명 | 은닉 마르코프 모델 예 |
| -------- | -------- |
| ⁻ 직접 볼 수 없는 지역의 날씨 상태를 예측하려고 함.
(전화로 결과를 관찰 가능)
⁻ 은닉 상태에는 비옴, 맑음(은닉변수)
⁻ 관찰 결과에는 걷기, 쇼핑, 청소
(관찰자는 관찰 결과와 은닉 상태간의 확률적인 관계를 알고 있음. 즉, 은닉 마르코프 모델의 모수가 알려져 있음) |  | ### 나. 마르코프의 대표적인 아키텍처 |구분 | 아키텍처 | 설명 |
| -------- | -------- | -------- |
| 어고딕 (Ergodic) 모델 |  | 완전연결구조 |
| 좌우(Left to Right) 모델 |  | 상태 전이가 왼쪽에서 오른쪽으로 일어남, 음성인식에서 사용 |
### 다. 매개 변수
| 구분 |설명 |
| -------- | -------- |
| 상태 전이 확률 | ⁻ 오늘 비가 왔을 때 내일 날씨가 맑을 확률 |
| 관측 확률 | ⁻ 비가 올 때 집에 있을 확률, 비가 올 때 외출할 확률 |
| 초기상태 확률 벡터 | ⁻ HMM을 기동시킬 때 어느 상태에서 시작할 지를 결정하는데 이용 |
- HMM에서는 상태를 은닉
### 라. 매개 변수와 3가지 문제점
| 구분 | 문제점 | 적용가능 방법 |
| -------- | -------- | -------- |
| 확률평가 문제 | ⁻ 모델에서 관측값이 여러 개 일 때 각
출력 될 확률이 얼마인지 효과적으로
계산할 수 있어야 함
⁻ 각 확률값에 따라 최적의 모델을 다수의
모델로부터 선택할 수 있기 때문 | 동적 프로그래밍 이용
(forward, backward 알고리즘) | | 최적상태 열을 찾는 문제
(디코딩) | ⁻ 가장 최적의 숨겨져 있는 상태열을
어떻게 찾아낼 것인지 문제| 동적 프로그래밍 이용
(Viterbi 알고리즘) | | 파라미터 추정
(학습)| ⁻ 우도(likelihood)를 최대화 하는 모델의
각 파라미터 추정은?
- 곧, 관측열을 가장 잘 설명하는 모델의
파라미터들을 어떻게 최적화하여 구할
지의 문제
- '**학습의 문제**'라고도 함 (성능을
결정하는 중요한 사항). | EM 알고리즘
(Baum-Welch 알고리즘)| |HMM의 세가지 문제 |
| -------- |
|  |
## Ⅲ. 은닉 마르코프 모델 활용과 실제 적용
**활용**: 음성 인식, DNA 분석 영역에서 활용
**적용**: 복잡한 계산을 위해 동적 계획법 (동적 테이블) 등을 활용하여 수행
(전화로 결과를 관찰 가능)
⁻ 은닉 상태에는 비옴, 맑음(은닉변수)
⁻ 관찰 결과에는 걷기, 쇼핑, 청소
(관찰자는 관찰 결과와 은닉 상태간의 확률적인 관계를 알고 있음. 즉, 은닉 마르코프 모델의 모수가 알려져 있음) |  | ### 나. 마르코프의 대표적인 아키텍처 |
출력 될 확률이 얼마인지 효과적으로
계산할 수 있어야 함
⁻ 각 확률값에 따라 최적의 모델을 다수의
모델로부터 선택할 수 있기 때문 | 동적 프로그래밍 이용
(forward, backward 알고리즘) | | 최적상태 열을 찾는 문제
(디코딩) | ⁻ 가장 최적의 숨겨져 있는 상태열을
어떻게 찾아낼 것인지 문제| 동적 프로그래밍 이용
(Viterbi 알고리즘) | | 파라미터 추정
(학습)| ⁻ 우도(likelihood)를 최대화 하는 모델의
각 파라미터 추정은?
- 곧, 관측열을 가장 잘 설명하는 모델의
파라미터들을 어떻게 최적화하여 구할
지의 문제
- '**학습의 문제**'라고도 함 (성능을
결정하는 중요한 사항). | EM 알고리즘
(Baum-Welch 알고리즘)| |
**적용**: 복잡한 계산을 위해 동적 계획법 (동적 테이블) 등을 활용하여 수행