隱馬爾科夫模型(1)基本概念和概率計(jì)算

隱馬爾科夫模型 HMM


本文我們介紹一個(gè)機(jī)器學(xué)習(xí)中常用的模型————隱馬爾科夫模型(Hidden Markov Model森爽,HMM)督函,后文我們簡(jiǎn)稱(chēng)為HMM嘀粱。HMM是一種概率圖模型,常用于對(duì)有序數(shù)據(jù)進(jìn)行處理辰狡。下面我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)理解下什么是HMM锋叨。

引子

假設(shè)你的鄰居家有個(gè)正在上小學(xué)的兒子,我們稱(chēng)之為小明吧宛篇,小明每天都在早上背上小書(shū)包去上學(xué)娃磺,然后到晚上的時(shí)候回家。假設(shè)我們現(xiàn)在對(duì)小明在學(xué)校里的表現(xiàn)很感興趣叫倍,認(rèn)為小明在學(xué)校里的狀態(tài)有三種偷卧,分別是被老師批評(píng)了,被老師表?yè)P(yáng)了吆倦,和既沒(méi)被表?yè)P(yáng)也沒(méi)被批評(píng)听诸,我們分別記為q_{0},q_{1},q_{2}

小明在學(xué)校到底過(guò)得怎么樣呢

那么怎么能確定他在學(xué)校的狀態(tài)呢逼庞?最好的辦法就是去小明的學(xué)校盯著他。但是誰(shuí)吃飽了撐的有那個(gè)時(shí)間去盯他呢瞻赶?于是我們左思右想赛糟,想到一個(gè)好主意,小明如果被表?yè)P(yáng)砸逊,他應(yīng)該心情不錯(cuò)吧璧南,如果被批評(píng)了,他不開(kāi)心的概率可能更大一點(diǎn)师逸。所以我們可以在他放學(xué)回家時(shí)的心情來(lái)估計(jì)下他今天的表現(xiàn)司倚。但是凡事也有例外,比如他今天雖然被批評(píng)了,但是喜歡的小紅成為了他的鄰桌动知,那么他可能會(huì)忘掉老師帶來(lái)的不愉快皿伺,而因?yàn)樾〖t開(kāi)心的不得了。所以啊盒粮,我們只能說(shuō)被表?yè)P(yáng)的情況下鸵鸥,他開(kāi)心的可能性比較大,但也不會(huì)是1丹皱,而同樣妒穴,被批評(píng)的時(shí)候,不開(kāi)心概率比較大摊崭,但也不會(huì)是1讼油,而我們要是看到他今天平平淡淡地回家,那么他比較有可能是既沒(méi)被批評(píng)也沒(méi)被表?yè)P(yáng)呢簸。這里我們記我們觀測(cè)到他的心情好矮台、壞、一般分別為v_{0},v_{1},v_{2}阔墩。那么假設(shè)我們觀察了一星期嘿架,觀測(cè)到他的心情序列為v_{0}v_{0}啸箫,v_{1}耸彪,v_{1}v_{2}忘苛,v_{0}蝉娜,v_{1},請(qǐng)問(wèn)小明同學(xué)這一星期在學(xué)習(xí)的狀態(tài)序列應(yīng)該是什么呢扎唾?

是不是感覺(jué)無(wú)從下手召川?是不是感覺(jué)這種又有看得見(jiàn)的變量(觀測(cè)值),又有看不見(jiàn)的變量(狀態(tài))胸遇,還有變量序列的問(wèn)題很變態(tài)很棘手荧呐?沒(méi)關(guān)系,在馬爾科夫大神和各位數(shù)據(jù)分析前輩的努力下纸镊,我們已經(jīng)有了解決這種問(wèn)題的數(shù)學(xué)工具啦倍阐!這就是我們今天要講的隱馬爾科夫模型。

首先讓我們先一睹下馬老爺子的真容

隱馬爾科夫模型的基本定義

在《統(tǒng)計(jì)學(xué)習(xí)方法》一書(shū)中逗威,隱馬爾科夫模型用于描述這樣一個(gè)過(guò)程:

隱馬爾可夫模型是關(guān)于時(shí)序的概率模型峰搪,描述由一個(gè)隱藏的馬爾科夫鏈隨機(jī)生成不可觀測(cè)的狀態(tài)隨機(jī)序列,再由各個(gè)狀態(tài)生成一個(gè)觀測(cè)而產(chǎn)生觀測(cè)隨機(jī)序列的過(guò)程凯旭。

隱藏的馬爾科夫鏈隨機(jī)生成的不可觀測(cè)的狀態(tài)隨機(jī)序列概耻,就稱(chēng)為是狀態(tài)序列使套,而由狀態(tài)序列生成的觀測(cè)隨機(jī)序列為觀測(cè)序列。讀到這里鞠柄,讀者可能已經(jīng)意識(shí)到了侦高,如果要利用隱馬爾可夫模型,模型的狀態(tài)集合和觀測(cè)集合應(yīng)該事先給出春锋。隱馬爾科夫模型的形式定義如下

  • 狀態(tài)集合Q=\{q_{0},q_{1},q_{2}......q_{N-1}\}矫膨,N為狀態(tài)數(shù)量。在上面的例子中期奔,Q=\{q_{0},q_{1},q_{2}\}
  • 可能的觀測(cè)集合V=\{ v_{0},v_{1},v_{2},......v_{M-1} \}侧馅,M為可能的觀測(cè)數(shù)量。在上面的例子中呐萌,V=\{v_{0},v_{1},v_{2}\}
  • 長(zhǎng)度為T的狀態(tài)序列S=[s_{0},s_{1},s_{2},......s_{T-1}]馁痴,對(duì)應(yīng)得觀測(cè)序列為O=[o_{0},o_{1},o_{2},......o_{T-1}]。在上面的例子中肺孤,O=[v_{0},v_{0},v_{1},v_{1},v_{2},v_{0},v_{1}]
  • 狀態(tài)轉(zhuǎn)移矩陣A=[a_{ij}]_{N\times N}罗晕,其中a_{ij}表示狀態(tài)q_{i}轉(zhuǎn)變?yōu)闋顟B(tài)q_{j}的概率a_{ij}=P(i_{t+1}=q_{j}|i_{t}=q_{i})。在上面的例子中赠堵,就是前一天小明的狀態(tài)對(duì)第二天小明的狀態(tài)的影響小渊,或者說(shuō)前一天老師對(duì)小明的態(tài)度,對(duì)后一天老師對(duì)小明的態(tài)度的影響茫叭。
  • 觀測(cè)概率矩陣B=[b_{j}(k)]_{N\times M}酬屉,b_{j}(k)=P(v_{k}|q_{j}),表示狀態(tài)q_{j}產(chǎn)生v_{k}觀測(cè)的概率揍愁。在上面的例子中,就是已知小明j天的狀態(tài)莽囤,小明當(dāng)天的某種表現(xiàn)情緒的概率谬擦。
  • 初始狀態(tài)概率分布\pi=[\pi_{0},\pi_{1}......\pi_{N-1}],其中\pi_{i}=P(i_{1}=q_{i})朽缎。在上面的例子中惨远,我們第一天觀察的時(shí)候,他的每個(gè)狀態(tài)的可能性话肖。

由定義可知北秽,在給定狀態(tài)集合Q和可能的觀測(cè)集合V后,一個(gè)HMM模型可以由狀態(tài)轉(zhuǎn)移矩陣A狼牺、觀測(cè)概率矩陣B以及初始狀態(tài)概率分布\pi確定羡儿,因此一個(gè)HMM模型可以表示為\lambda(A,B,\pi)礼患。

隱馬爾可夫模型的三個(gè)基本問(wèn)題

利用隱馬爾可夫模型時(shí)是钥,通常涉及三個(gè)問(wèn)題掠归,分別是:

  • 概率計(jì)算:已知HMM的所有參數(shù),給定長(zhǎng)度為T(mén)的觀測(cè)序列O=[o_{0},o_{1},o_{2},......o_{T-1}]悄泥,求解P(O)虏冻。
  • 狀態(tài)解碼:已知HMM的所有參數(shù),給定長(zhǎng)度為T(mén)的觀測(cè)序列O=[o_{0},o_{1},o_{2},......o_{T-1}]弹囚,求解O出現(xiàn)的條件下厨相,概率最大的狀態(tài)序列argmax_{I} P(I|O)
  • 參數(shù)學(xué)習(xí):HMM參數(shù)未知鸥鹉,通過(guò)觀測(cè)序列O學(xué)習(xí)HMM的參數(shù)蛮穿,argmax_{\lambda}P(\lambda|O)

本小節(jié)首先對(duì)概率計(jì)算問(wèn)題進(jìn)行闡述毁渗。

概率計(jì)算

計(jì)算P(O)践磅,一個(gè)很自然的想法是計(jì)算\Sigma_{I\in I^{*}}P(O,I)。其中I^{*}為從1時(shí)刻到T時(shí)刻所有可能的狀態(tài)序列灸异,應(yīng)該有N^{T}個(gè)不同的狀態(tài)序列府适,計(jì)算的復(fù)雜度過(guò)高,很難利用該方法肺樟。
現(xiàn)有的方法是使用一種動(dòng)態(tài)規(guī)劃的方案檐春,稱(chēng)之為前向算法。首先定義前向概率的概念:

給定HMM模型\lambda么伯,時(shí)刻t時(shí)已有觀測(cè)序列為o_{0},o_{1}......o_{t-1}疟暖,且t時(shí)刻狀態(tài)為q_{i}的概率前向概率\alpha_{t}(i)=P(o_{0},o_{1}......o_{t},s_{t}=q_{i}), 0\leq t \leq T-1

需要注意的是蹦狂,當(dāng)引入一個(gè)特定的前向概率時(shí)誓篱,需要說(shuō)明具體的觀測(cè)序列、時(shí)刻t凯楔,以及時(shí)刻t時(shí)的狀態(tài)窜骄。

可以看出,前向概率\alpha_{t}(i)涵蓋了從0時(shí)刻到t-1時(shí)刻為止摆屯,N^{t-1}條狀態(tài)路徑的所有可能性邻遏。這使得我們?cè)谟?jì)算t+1時(shí)的情況時(shí),不必再考慮從時(shí)刻1到時(shí)刻t這段時(shí)間內(nèi)的狀態(tài)路徑虐骑,只用考慮時(shí)間t到時(shí)間t+1間的狀態(tài)路徑即可准验。這無(wú)疑大大減少了工作量。具體的算法如下:

1.時(shí)刻1的初值:
計(jì)算\alpha_{0}(i)=\pi_{i}b_{i}(o_{1})
2.遞推出時(shí)刻2,3...T時(shí)刻的前向概率:
\alpha_{t}(i)=[\Sigma_{0\leq j\leq N-1}\alpha_{t-1}(j)a_{ji}]b_{i}(o_{t})
3.求得P(O):
P(O)=\Sigma_{0\leq i\leq N-1}\alpha_{T-1}(i)

下面是一個(gè)動(dòng)態(tài)演示圖廷没,圖中的例子有4中狀態(tài)糊饱。


前向算法動(dòng)態(tài)演示圖,圖中的向前概率一詞有誤颠黎,應(yīng)為前向概率

除了前向算法外另锋,還有一種后向算法滞项,同樣是利用了動(dòng)態(tài)規(guī)劃的方案,這里我們同樣首先定義后向概率的概念:

給定HMM模型\lambda夭坪,定義t時(shí)刻狀態(tài)為q_{i}的條件下文判,t+1至T時(shí)刻觀測(cè)序列為o_{t},o_{t+1}......o_{T-1},后向概率\beta_{t}(i)=P(o_{t},o_{t+1}......o_{T-1}|s_{t-1}=q_{i})室梅。

可以看出戏仓,前向算法是從前向后推演整個(gè)狀態(tài)路徑,而后向算法是從后往前推演整個(gè)狀態(tài)路徑亡鼠。但本質(zhì)原理是一樣的赏殃,后向算法的具體如下:

1.時(shí)刻T的初值:
計(jì)算\beta_{T-1}(i)=1。這里是直接定義為1间涵,從上面的后向概率概念可以看出沒(méi)有對(duì)\beta_{T-1}(i)的定義嗓奢。因?yàn)椴淮嬖赥+1時(shí)刻。
2.遞推出當(dāng)t=T-2,T-3...0時(shí)刻的后向概率:
\beta_{t}(i)=\Sigma_{0\leq j\leq N-1}\beta_{t+1}(j)a_{ij}b_{j}(o_{t+1})
3.求得P(O):
P(O)=\Sigma_{0\leq j\leq N-1}\beta_{1}(i)\pi_{i}b_i (o_0)
大家可以思考一下浑厚,為什么前向概率是聯(lián)合概率模式股耽,而后向概率是條件概率模式呢?這是因?yàn)榍跋蚋怕书_(kāi)始于一個(gè)已知量\pi钳幅,因?yàn)樵诿枋雎窂降臅r(shí)候有一個(gè)已知的開(kāi)頭物蝙,可以用聯(lián)合概率。而后向概率開(kāi)始于未知量敢艰,在向前推演的時(shí)候诬乞,沒(méi)有一個(gè)已知的開(kāi)頭,因此需要假設(shè)一個(gè)開(kāi)頭钠导,因此得使用條件概率震嫉。

我在學(xué)習(xí)HMM的時(shí)候,一開(kāi)始不是很理解后向算法牡属,首先是直觀上沒(méi)有前向算法那么好理解票堵,其次公式推導(dǎo)上也有點(diǎn)費(fèi)腦。后來(lái)我推導(dǎo)出了后向算法逮栅,它的思路也在腦海中漸漸清晰悴势。如果后期有時(shí)間,我會(huì)把后向算法推導(dǎo)更新上措伐。
后期還會(huì)繼續(xù)更新HMM的內(nèi)容特纤,包括狀態(tài)解碼和參數(shù)學(xué)習(xí),歡迎一起探討侥加。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捧存,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昔穴,老刑警劉巖短蜕,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異傻咖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)岖研,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)卿操,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人孙援,你說(shuō)我怎么就攤上這事害淤。” “怎么了拓售?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵窥摄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我础淤,道長(zhǎng)崭放,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任鸽凶,我火速辦了婚禮币砂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玻侥。我一直安慰自己决摧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布凑兰。 她就那樣靜靜地躺著掌桩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姑食。 梳的紋絲不亂的頭發(fā)上波岛,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音音半,去河邊找鬼盆色。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祟剔,可吹牛的內(nèi)容都是我干的隔躲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼物延,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宣旱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起叛薯,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浑吟,失蹤者是張志新(化名)和其女友劉穎笙纤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體组力,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡省容,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了燎字。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腥椒。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖候衍,靈堂內(nèi)的尸體忽然破棺而出笼蛛,到底是詐尸還是另有隱情,我是刑警寧澤蛉鹿,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布滨砍,位于F島的核電站,受9級(jí)特大地震影響妖异,放射性物質(zhì)發(fā)生泄漏惋戏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一他膳、第九天 我趴在偏房一處隱蔽的房頂上張望日川。 院中可真熱鬧,春花似錦矩乐、人聲如沸龄句。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)分歇。三九已至,卻和暖如春欧漱,著一層夾襖步出監(jiān)牢的瞬間职抡,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工误甚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缚甩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓窑邦,卻偏偏與公主長(zhǎng)得像擅威,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冈钦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容