隱馬爾科夫模型HMM
作者:櫻花豬
摘要:
本文為七月算法(julyedu.com)12月機器學習第十七次課在線筆記。隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一個含有隱含未知參數的馬爾科夫過程。其難點是從可觀察的參數中確定該過程的隱含參數,然后利用這些參數來作進一步的分析。在早些年HMM模型被非常廣泛的應用,而現在隨着機器學習的發展HMM模型的應用場景越來越小然而在圖像識別等領域HMM依然起着重要的作用。
引言:
隱馬爾科夫模型是馬爾科夫鏈的一種,它的狀態不能直接觀察到,但能通過觀測向量序列觀察到,每個觀測向量都是通過某些概率密度分布表現為各種狀態,每一個觀測向量是由一個具有相應概率密度分布的狀態序列產生。所以,隱馬爾科夫模型是一個雙重隨機過程----具有一定狀態數的隱馬爾科夫鏈和顯示隨機函數集。自20世紀80年代以來,HMM被應用於語音識別,取得重大成功。到了90年代,HMM還被引入計算機文字識別和移動通信核心技術“多用戶的檢測”。HMM在生物信息科學、故障診斷等領域也開始得到應用。
本次課程以中文分子算法為實踐背景基礎來講述隱馬爾科夫模型。本次課程主要分享了隱馬爾科夫模型的概率計算、參數估計和模擬預測等方法,結合課程上提到的實力,我們能夠感受大HMM能夠經久不衰的強大力量。
馬爾科夫模型在推導過程中用到了之前提到的一些經典算法需要融匯貫通。
預備知識:
概率論和數理統計、矩陣論、貝葉斯網絡、EM算法
一、隱馬爾科夫模型:
1、定義
隱馬爾科夫模型(HMM,Hidden Markov Model)可用標注問題,在語音識別、NLP、生物信息、模式識別等領域被實踐證明是有效的算法。
HMM是關於時序的概率模型,描述由一個隱藏的馬爾科夫鏈生成不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。
隱馬爾科夫模型隨機生成的狀態隨機序列,稱為狀態序列;每個狀態生成一個觀測,由此產生的觀測隨機序列,稱為觀測序列。
Z是未知的,X是已知的,我們通過對X來做Z的推論,就是隱馬爾科夫模型。
2、HMM的確定
HMM由初始概率分布π、狀態轉移概率分布A以及觀測概率分布B確定。
描述整個隱碼模型。
3、HMM的參數:
Q是所有可能的狀態的集合,N是可能的狀態數;
V是所有可能的觀測的集合,M是可能的觀測數。
二、HMM的概率計算問題:
1、直接計算:
按照概率公式,列舉所有可能的長度為T的狀態序列,求各個狀態序列I與觀測序列
的聯合概率
,然后對所有可能的狀態序列求和,從而得到
。
2、前向算法
前向概率定義:給定λ,定義到時刻t部分觀測序列為且狀態為qi的概率稱為前向概率,記做:
前向算法計算方案:
初值:
遞推:對於t=1,2,...,T-1
有:
最終:
3、后向算法
定義:給定λ,定義到時刻t狀態為qi的前提下,從t+1到T的部分觀測序列為的概率為后向概率,記做:
計算方法:
初值:
遞推:對於t=T-1,T-2,...,1
最終:
二、預測算法
1、預測的近似算法
A. 在每個時刻t選擇在該時刻最有可能出現的狀態it*,從而得到一個狀態序列I*={i1*,i2*…iT*},將它作為預測的結果。
B. 給定模型和觀測序列,時刻t處於狀態qi的概率為:
C. 選擇概率最大的i作為最有可能的狀態(注:會出現此狀態在實際中可能不會發生的情況)
2、Viterbi算法
Viterbi算法實際是用動態規划解HMM預測問題,用DP求概率最大的路徑(最優路徑),這是一條路徑對應一個狀態序列。
定義變量:在時刻t狀態為i的所有路徑中,概率的最大值。
具體過程:
定義:
遞推: