/////
Search

7.3 은닉 마르코프 모형

7.3.1 모델의 동작방식

모델 가정
Hidden Markov Model(HMM)은 직접적으로 관측이 불가능한 상태를 가진 시스템을 상정
미래 사건의 확률이 시스템의 현재 상태만으로도 충분히 계산될 수 있음
Markov과정
두 상태 모두 다른 시간 단계에서 통계적으로 다른 상태로 바 뀌는 것보다는 현 상태를 유지할 가능성이 높다고 가정
현재 시스템 상태 A,(1 , 0)일때(상태 B는(0 , 1)). 이때 시스템이 상 태 A를 유지할 확률은 0 . 7이며,상태 B로 바뀔 확률은 0 . 3
은닉 마르코프 모형(hidden Markov model)
관측으로부터 시스템의 상태를 직접적으로 추론할 수 없고, 관측은 시스템의 상태에 대한 단 서를 제공(그림 7-4)
그림 7-4 HMM에 대한 과정으로 특정 시간에서 시스템의 실제 상태를 x(t)로 표현합니다. 또 특정 시간에서 관측 가능한 데이터는y(t)로 표현합니다. y(t) 입장에서는 오로지 x(t)만 고려. 즉 x(t)를 이미 알고 있다면 x{t-1)은 y(t) 예측에 추가 정보를 제공하지 않는 것입니다. 마찬가지로 y(t十1)의 예측에는 x(t)의 영향만 있을 뿐,x(t~ 1)로 부터는 어떠한 추가 정보도 없습니다. 이것이 바로 마르코프가 바라보는 시스템입니다.
HMM의 실제 사용 사례
금융시장의 체제 전환식별
DNA 염기순서 정보의 분류,예측,복원
ECG 데이터에 반영된 수면 단계의 인식

7.3.2 모델을 적합 시키는 방법

시스템 구성 가정
x(t)에서 x(t+1)로 전환될 확률. 행렬로 표시, 크기는 상태의 개수에 따라 다름
x(t)가 주어졌을 때 관측y(t)가 나타날 확률 emission probability
시스템의 초기 상태
모델 적합화 단계
가능한 각 은닉상태에 대한 개별 방출 확률과 각 은닉상태 간의 전환 확률을 추정.(바움-웰치 알고리듬)
전체 관측에서 각 시간 단계별 가장 가능성이 높은 은닉 상돼를 식별. (비터비 알고리즘)
바움-웰치 알고리듬(Baum-Welch Algorithm)
우도 함수(Likelihood Function)의 정의
우도 함수는 주로 매개변수 추정, 특히 최대우도추정법(Maximum Likelihood Estimation, MLE)에서 사용. 이 함수는 관찰된 데이터가 주어졌을 때, 가능한 매개변수 값들의 우도를 나타내며, 이를 통해 가장 데이터를 잘 설명하는 매개변수 값을 찾음.
우도 함수의 적용
두 개의 분포를 상정하는 무작위 사건 및 각 시간 단계에서 특정 상태일 확률을 결정(예: 시간 단계 에서 상태 A나 B가 될 확률)
각 시간 단계에 추정 상태를 할당하면,그 추정 상태로 방출 확률을 재추정
과정을 반복하여 궤적의 추적 향상 을 위해 새롭게 갱신된 방출 확률변수를 사용하여
미분, 수치적 최적화 기법 등을 사용하여 최대우도 추정값 도출
비터비 알고리즘
HMM 과정의 파라미터가 관측 가능한 측정값으로 구성된 시계열을 구성하게 하는 가장 가능성 높은 상태들의 계열 추정
동적 프로그래밍 알고리즘. 즉 특정 해결책에 도달하기 위해 부분적인 해결책을 만들고 저장하여,적합 범위를 완전하면서도 효율적으로 탐색.
동적 프로그래밍

7.3.3 코드로 보는 HMM의 적합 과정

depmixS4 패키지로 작업.
코드를 시용해 적절한 시계열을 만듬
상기 코드는 매수세, 약세, 중립, 패닉이라는 네 가지 모드의 주식시장에서 영감을 받은 예제. 각 상태의 방출 확률 분포를 설명하는 변수(특정 상태에서 측정된 기대 값을 나타내는 mu 및 -Sd 변수)와 같이 상태가 지속될 일수는 무작위로 선택
샘플이 포괄하는 날 중 몇 일이 상태 추적에 시용하는 변수인 true.mean에 해당하는지 확인해 생성된 시계열의 모양과 각 상태의 빈도를 파악
모델은 두 단계로 적합
우선 예상 분포, 상태 개수, 적합에 사우될 입력 데이터 등이 depmix() 함수로 지정. 다음 fit 함수를 통해 모델이 적합. 이때 fit 함수에는 모델 사용에 대한 내용이 전달.
마지막으로 posterior() 함수를 사우하여 적합된 모델로부터 상태 레이블에 대한 사후분포를 생성.
상기 코드에서는 관측데이터로 returns 벡터를 제공하여 hmm.model을 생성. 상태의 개수(4)를 지정, family 파라미터를 통해 방출 확률이 가우스 분포를 따른다는 것 을 지정. 그다음 fit() 함수로 모델을 적합, posterior() 함수로 사후 획률을 계산. 사후 획률은 적합 과정에서 결정된 모델의 피라미터에로 특정 시간에서의 특정 상태에 대한 확률을 제공.
다음과 같이 측정된 값으로 상태를 시각화
HMM은 다양한 종류의 데이터를 분석하는 데 적합. 현재 금융시장이 성장기인지, 불황 기인지를 모델링하고 세포 내의 단백질 폴딩이 어느 단계에 있는지 결정하며 (딥러닝이 도래 하기 전) 사람의 움직임을 설명하는 데 시용. 이러한 모델은 예측하기 보다 시스템의 역동성을 이해하는 데 더 지주 우통하게 사용됩니다.
HMM을 시용할 때 다음과 같은 몇 가지 추론 작업에 직면.
괸측의 계열을 생성하는 상태들의 가장 가능성 있는 설명을 결정
관측의 계열, 상태에 대한 설명, 각 상태의 방출과 전환 획률을 통해 가장 기능성이 높은 상태의 연속적인 순서를 결정.
필터링과 평활화입니다. 필터링은 가장 최근의 관측이 주어졌을 때 가장 최근의 시간 단 계에서의 은닉 상태를 추정. 평활회는 특정 시간 단계의 이전, 현재, 이후에 대한 관측을 토대로 해당 시간 단계의 은닉 상태에 대한 가장 가능성 있 는 분포를 결정.