一、什么是馬爾可夫模型
馬爾可夫在研究概率論時(shí)候發(fā)現(xiàn):現(xiàn)實(shí)世界中,很多事情的未來(lái)只取決于現(xiàn)在,而與過(guò)去無(wú)關(guān)!
具體來(lái)說(shuō)就是——很多系統(tǒng)轉(zhuǎn)換到一個(gè)新?tīng)顟B(tài)的概率,只由當(dāng)前狀態(tài)決定,與歷史路徑無(wú)關(guān)!
如果一個(gè)系統(tǒng)的動(dòng)態(tài)變化符合這個(gè)假設(shè),我們就會(huì)說(shuō)它具備馬爾可夫性。
比如,若我們認(rèn)為短期天氣變化是具備馬爾科夫性的—即明天的天氣是什么只取決于今天的天氣狀況,和昨天以及更久的以前無(wú)關(guān)。
那么基于這個(gè)模型我們來(lái)看看怎樣進(jìn)行天氣預(yù)測(cè)——
假設(shè)長(zhǎng)期觀察后發(fā)現(xiàn)某一個(gè)地區(qū)天氣變化有以下規(guī)律:
某一天天氣是晴,那么它接下來(lái)一天的天氣是晴的概率是80%,是雨的概率是20%;
某一天天氣是雨,那么它接下來(lái)一天的天氣是晴的概率是40%,是雨的概率是60%;
做成表格形式如下:
| 當(dāng)前天氣\下一天天氣 | 晴 | 雨 |
|---|---|---|
| 晴 | 80% | 20% |
| 雨 | 40% | 60% |
問(wèn)題來(lái)了——
已知今天天氣是晴天
那明天天氣狀態(tài)如何?
很明顯明天天氣是晴天的概率是80%,雨天的概率是20%。
后天呢?
該根據(jù)馬爾可夫模型,后天天氣只跟明天天氣有關(guān)。
那么后天天氣是晴天的概率是:
P(后天=晴)=P(明天=晴)×0.8+P(明天=雨)×0.4=0.8×0.8+0.2×0.4=0.72
P(后天=雨)= P(明天=晴)×0.2+P(明天=雨)×0.6=0.8×0.2+0.2×0.6=0.28
其中P(后天=晴)代表后天是雨天的概率。
這就是馬爾可夫可夫模型最基礎(chǔ)的應(yīng)用。
小結(jié)下
馬爾可夫模型最初出現(xiàn)是為了預(yù)測(cè)未來(lái)或者說(shuō)推斷一個(gè)系統(tǒng)動(dòng)態(tài)變化的規(guī)律,
利用馬爾可夫模型需要知道三個(gè)條件:
- 狀態(tài)集合 : 系統(tǒng)可能出現(xiàn)的所有狀態(tài),比如 {晴、雨}
- 初始狀態(tài)分布:系統(tǒng)一開(kāi)始在哪個(gè)狀態(tài)的概率,比如上文中 已知今天晴天(可以認(rèn)為是今天晴天概率100%);
- 轉(zhuǎn)移概率矩陣:當(dāng)前狀態(tài)到下一個(gè)狀態(tài)轉(zhuǎn)換概率矩陣,比如上文中當(dāng)前天氣到下一天天氣的轉(zhuǎn)換表格就是轉(zhuǎn)移概率。
講到這里,我們有了第一個(gè)疑問(wèn):怎么判斷一個(gè)系統(tǒng)的動(dòng)態(tài)變化規(guī)律能夠利用馬爾可夫模型進(jìn)行推斷?
接下來(lái),我們就開(kāi)始探討這件事——
二、馬爾可夫模型的適用范圍
首先要聲明
“沒(méi)有完全馬爾可夫的世界,只有足夠接近的馬爾可夫模型的場(chǎng)景
在現(xiàn)實(shí)世界中一個(gè)事件的發(fā)生涉及到的因素太多、太復(fù)雜,很難全部建模和分析。
但是我們發(fā)現(xiàn)很多場(chǎng)景和系統(tǒng)中
只考慮上一時(shí)刻的影響,其它忽略,也可以推斷出未來(lái)趨勢(shì)!
就是說(shuō)在這種場(chǎng)景下可以用馬爾可夫模型來(lái)推算未來(lái)趨勢(shì)。
那怎么判斷一個(gè)系統(tǒng)或者某個(gè)場(chǎng)景可以使用馬爾可夫模型進(jìn)行推斷呢?
目前主要有三種方法:
① 經(jīng)驗(yàn)觀察(數(shù)據(jù)統(tǒng)計(jì)法)
拿歷史數(shù)據(jù)看看:
比如天氣序列:
昨天 晴 → 今天 晴
昨天 雨 → 今天 晴
我們可以統(tǒng)計(jì):
| 昨天天氣 | 今天晴的概率 |
|---|---|
| 晴 | 0.8 |
| 雨 | 0.4 |
再進(jìn)一步看:
如果我們考慮前天呢?比如:
- 前天晴、昨天天晴 → 今天晴 的概率
- 前天雨、昨天天晴 → 今天晴 的概率
如果這兩者幾乎相等,說(shuō)明“前天”對(duì)預(yù)測(cè)沒(méi)啥額外信息;
此時(shí)我們可以說(shuō):這個(gè)系統(tǒng)“近似滿(mǎn)足馬爾可夫性”。
② 物理或邏輯判斷(理論依據(jù)法)
有些系統(tǒng)天然地具有“當(dāng)前決定未來(lái)”的特征。
比如:
- 一個(gè)粒子的運(yùn)動(dòng),只要知道當(dāng)前位置和速度(即當(dāng)前狀態(tài)),下一步就能算出它的位置;
- 某機(jī)器設(shè)備只要知道當(dāng)前狀態(tài)(開(kāi)/關(guān)、溫度、壓力),就能預(yù)測(cè)下一個(gè)狀態(tài)。
在這種情況下,系統(tǒng)物理上就符合馬爾可夫性。
這是從上帝視角看的:世界是馬爾可夫的,因?yàn)榇丝痰囊磺袥Q定了下一刻。
但從人類(lèi)建模視角看:世界不是馬爾可夫的,因?yàn)槲覀冇肋h(yuǎn)拿不到“此刻的一切”。
③ 實(shí)驗(yàn)驗(yàn)證(建模后檢驗(yàn)法)
即便一開(kāi)始不能確定,也可以:
- 用馬爾可夫模型建模;
- 再用更復(fù)雜的“高階模型”或“帶記憶的模型”建模;
- 比較它們?cè)陬A(yù)測(cè)上的效果。
如果馬爾可夫一階模型(只看當(dāng)前)和二階模型(看當(dāng)前+上一個(gè))效果差不多,
那就說(shuō)明一階馬爾可夫假設(shè)足夠用了。
如果通過(guò)以上驗(yàn)證后系統(tǒng)變換還是不符合馬爾可夫性怎么辦?
可以有幾種改進(jìn)方向??
| 情況 | 處理方法 |
|---|---|
| 需要考慮更早的狀態(tài) | 使用 高階馬爾可夫模型(如二階:考慮上兩個(gè)時(shí)刻) |
| 狀態(tài)信息不完整 | 擴(kuò)充“狀態(tài)定義”,讓狀態(tài)本身攜帶更多歷史信息 |
| 系統(tǒng)太復(fù)雜 | 使用 隱馬爾可夫模型 (HMM) 或 循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 來(lái)建模時(shí)間依賴(lài) |
例如:
如果“今天的天氣”受“昨天+前天”影響,我們可以把“昨天+前天”合并定義成一個(gè)復(fù)合狀態(tài):
狀態(tài) = (前天天氣, 昨天天氣)
這樣又能“恢復(fù)”馬爾可夫性。
那是否是說(shuō)所有系統(tǒng)最后都可以利用馬爾可夫模型進(jìn)行推斷?
非也!
馬爾可夫模型(HMM)本質(zhì)上是一種基于(時(shí)間)序列的概率模型,就是說(shuō)它必須滿(mǎn)足:
- 系統(tǒng)狀態(tài)是離散或可離散化的、或可以用有限個(gè)隱狀態(tài)表示(隱馬爾可夫模型);
- 系統(tǒng)是基于時(shí)間序列/序列演化的,有明確的順序;
- 狀態(tài)隨時(shí)間變化具有局部依賴(lài)性,過(guò)去的影響可以被“當(dāng)前狀態(tài)”壓縮表示。
典型例子:
- 語(yǔ)音識(shí)別(音素狀態(tài)序列)
- 導(dǎo)航系統(tǒng)中的軌跡預(yù)測(cè)
- 用戶(hù)行為建模(點(diǎn)擊序列、行為序列)
那不適合直接用 HMM 的情況有哪些呢?
一些系統(tǒng)雖然有序列,但歷史依賴(lài)很強(qiáng)、狀態(tài)空間龐大、狀態(tài)非離散,HMM 很難直接建模:
- 自然語(yǔ)言長(zhǎng)句子生成(長(zhǎng)距離依賴(lài)非常明顯)
- 股市價(jià)格預(yù)測(cè)(價(jià)格受長(zhǎng)期趨勢(shì)影響,非一階馬爾可夫)
- 高維連續(xù)控制系統(tǒng)(機(jī)器人控制、物理仿真)
在這些系統(tǒng)里,用 HMM 可能會(huì)丟失重要?dú)v史信息或者狀態(tài)信息,需要用 RNN、Transformer、LSTM、強(qiáng)化學(xué)習(xí)等方法。
所以不能說(shuō)“所有系統(tǒng)都可以用馬爾可夫模型推斷”,只能說(shuō)“很多序列化、短期相關(guān)的系統(tǒng)可以用馬爾可夫模型進(jìn)行有效推斷”,而對(duì)于更復(fù)雜的系統(tǒng),需要改進(jìn)或用更強(qiáng)大的模型。
三、馬爾可夫模型怎么使用?
ok,在了解了馬爾可夫模型的適用范圍后,我們來(lái)談?wù)勸R爾可夫模型怎么使用?
在第一章最后,我們談到利用馬爾可夫模型需要知道三個(gè)條件:
- 狀態(tài)集合 : 系統(tǒng)可能出現(xiàn)的所有狀態(tài),比如 {晴、雨}
- 初始狀態(tài)分布:系統(tǒng)一開(kāi)始在哪個(gè)狀態(tài)的概率,比如上文中 已知今天晴天(可以認(rèn)為是今天晴天概率100%);
- 轉(zhuǎn)移概率矩陣:當(dāng)前狀態(tài)到下一個(gè)狀態(tài)轉(zhuǎn)換概率矩陣,比如上文中當(dāng)前天氣到下一天天氣的轉(zhuǎn)換表格就是轉(zhuǎn)移概率。
我們對(duì)一個(gè)系統(tǒng)進(jìn)行馬爾可夫建模,關(guān)鍵就獲取這三個(gè)條件,這三者一旦確定,整個(gè)馬爾可夫過(guò)程就被完全定義。
接下來(lái)我們就來(lái)討論下這三項(xiàng)是怎么獲取的
3.1 狀態(tài)集合(State Set)怎么定義?
?? 含義
狀態(tài)是在某一時(shí)刻下,能夠描述系統(tǒng)當(dāng)前行為特征、并決定其未來(lái)演化規(guī)律的變量或變量集合。
狀態(tài)是系統(tǒng)的核心內(nèi)部變量,它決定系統(tǒng)的演化與輸出;而觀測(cè)值只是狀態(tài)投射到外部世界后的一個(gè)“影子”。
比如:我們說(shuō)一個(gè)人的有一個(gè)狀態(tài)是勇敢或者怯懦,這個(gè)狀態(tài)能夠決定他面對(duì)真正困難的具體行為是迎難而上還是躲避,但是我們從他外貌和日常生活中很難直接觀測(cè)出來(lái),只能通過(guò)無(wú)數(shù)個(gè)小事去推斷他的這個(gè)狀態(tài)。
狀態(tài)集合是系統(tǒng)中可能出現(xiàn)的所有“狀態(tài)”取值集合。
比如:
- 天氣模型:{晴,陰,雨}
- 用戶(hù)行為模型:{瀏覽,點(diǎn)擊,購(gòu)買(mǎi),離開(kāi)}
- 導(dǎo)航模型:{路段A,路段B,路段C}
- 語(yǔ)音識(shí)別:{音素b, a, t, ...}
?? 定義方法
-
已知定義:
如果系統(tǒng)本身就是離散的(如天氣、用戶(hù)行為、交通路段),我們直接采用原來(lái)的定義。
例:天氣模型,我們?nèi)藶闆Q定狀態(tài)集合為 {晴, 陰, 雨}。
- 數(shù)據(jù)驅(qū)動(dòng)劃分并定義:
- 我們沒(méi)有直接的狀態(tài)標(biāo)簽,只有觀測(cè)數(shù)據(jù)(比如氣壓、溫度、股價(jià)特征等)。
- 通過(guò)聚類(lèi),把這些觀測(cè)樣本分成幾組,每組的統(tǒng)計(jì)特征相似。
- 每一組就代表一種狀態(tài)(比如晴天、雨天、震蕩期、下跌期)。
-
新的觀測(cè)數(shù)據(jù)出現(xiàn)時(shí),只要看看它最像哪一類(lèi)(例如通過(guò)距離或概率),
就能判斷它“當(dāng)前處于哪個(gè)狀態(tài)”。 - 然后再用狀態(tài)序列統(tǒng)計(jì)轉(zhuǎn)移頻率,得到轉(zhuǎn)移概率矩陣
例:在語(yǔ)音識(shí)別中,我們先提取音頻特征,然后用聚類(lèi)算法(如K-Means)把聲學(xué)特征劃成若干類(lèi),每一類(lèi)對(duì)應(yīng)一個(gè)“隱藏狀態(tài)”。
-
理論建模確定:
對(duì)于一些控制系統(tǒng)或物理系統(tǒng),狀態(tài)就是系統(tǒng)變量的組合。
例:機(jī)器人狀態(tài) = [位置x, 速度v, 姿態(tài)θ]。
3.2、初始狀態(tài)分布(Initial State Distribution)怎么獲???
?? 含義
初始狀態(tài)分布(通常記作 π)表示系統(tǒng)在起始時(shí)刻各狀態(tài)出現(xiàn)的概率:
- 當(dāng)前狀態(tài)已知:設(shè)為 100%(確定狀態(tài))
- 當(dāng)前狀態(tài)未知:用歷史統(tǒng)計(jì)分布
比如在某一個(gè)地區(qū)的?? 天氣模型,根據(jù)歷史統(tǒng)計(jì),假設(shè):
P(晴)=0.6, P(陰)=0.3, P(雨)=0.1
若如你只是想預(yù)測(cè)“明天天氣”,而今天確實(shí)知道是晴天,
那就直接設(shè)定:
——這時(shí)候馬爾可夫鏈的第一步是從“晴天”出發(fā),完全確定。
但如果你想做“未來(lái) 30 天的天氣序列仿真”,而你不知道今天的天氣,
就只能用過(guò)去經(jīng)驗(yàn)分布(比如平均氣候統(tǒng)計(jì)):
這更符合隨機(jī)仿真的設(shè)定。
?? 獲取方法
- 直接設(shè)定:適合有明確起點(diǎn),且知道起點(diǎn)明確狀態(tài)的場(chǎng)景
- 從數(shù)據(jù)統(tǒng)計(jì):無(wú)明確起點(diǎn),直接統(tǒng)計(jì)樣本中初始狀態(tài)出現(xiàn)的頻率;
- 假設(shè)均勻分布:如果缺乏先驗(yàn)知識(shí),可認(rèn)為所有狀態(tài)等可能;
- 由其他模型估計(jì):有時(shí)初始狀態(tài)分布來(lái)自上一個(gè)系統(tǒng)的輸出結(jié)果(例如語(yǔ)音上下文、導(dǎo)航預(yù)測(cè))。
3.3、轉(zhuǎn)移概率矩陣(Transition Probability Matrix)怎么獲???
?? 含義
描述系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)的概率:
比如天氣模型:
| 當(dāng)前→次日 | 晴 | 陰 | 雨 |
|---|---|---|---|
| 晴 | 0.7 | 0.2 | 0.1 |
| 陰 | 0.3 | 0.4 | 0.3 |
| 雨 | 0.2 | 0.5 | 0.3 |
?? 獲取方法
1?? 監(jiān)督學(xué)習(xí)(直接從標(biāo)注數(shù)據(jù)計(jì)算)
如果我們有大量的狀態(tài)序列樣本(每一天的真實(shí)狀態(tài)),
那就可以直接統(tǒng)計(jì):
例:天氣序列
晴 → 晴 → 陰 → 晴 → 雨 → 晴 ...
統(tǒng)計(jì)轉(zhuǎn)移次數(shù)即可。
這種方法最直接、最可靠,但需要“狀態(tài)可見(jiàn)”——也就是每一步的狀態(tài)必須能觀測(cè)到。
2?? 無(wú)監(jiān)督學(xué)習(xí)(隱藏狀態(tài),用算法推斷,隱馬爾可夫模型)
如果狀態(tài)不可直接觀測(cè)(例如語(yǔ)音識(shí)別中的“音素”),
我們就需要用 EM算法(期望最大化) 或 Baum-Welch算法 來(lái)訓(xùn)練。
思想:
- 假設(shè)一組隨機(jī)轉(zhuǎn)移概率;
- 計(jì)算在這些概率下,出現(xiàn)觀測(cè)序列的可能性;
- 調(diào)整參數(shù),使得觀測(cè)序列的出現(xiàn)概率增加;
- 不斷迭代,直到收斂。
換句話(huà)說(shuō),我們?cè)凇胺聪蛲评怼保?br> 找出那組轉(zhuǎn)移概率矩陣,最有可能解釋我們觀測(cè)到的數(shù)據(jù)。
3?? 先驗(yàn)經(jīng)驗(yàn) + 數(shù)據(jù)修正
有時(shí)我們沒(méi)有足夠數(shù)據(jù),只能靠經(jīng)驗(yàn)設(shè)定一個(gè)初始矩陣,然后用數(shù)據(jù)進(jìn)行微調(diào)。
比如導(dǎo)航系統(tǒng):
- 經(jīng)驗(yàn):直行概率高、掉頭概率低;
- 實(shí)測(cè)數(shù)據(jù):根據(jù)實(shí)際路口通過(guò)情況再修正。
小結(jié)
使用馬爾可夫模型的關(guān)鍵,就是找到合適的狀態(tài)定義,并通過(guò)觀測(cè)數(shù)據(jù)(或算法)獲取初始分布與轉(zhuǎn)移概率矩陣。
這三者一旦確定,就能讓我們基于某一個(gè)時(shí)刻的狀態(tài)預(yù)測(cè)未來(lái),或計(jì)算系統(tǒng)隨時(shí)間演化的規(guī)律。
四、HMM隱馬爾可夫模型
在上文中也提到,很多現(xiàn)實(shí)場(chǎng)景中,我們并不能直接獲取系統(tǒng)的狀態(tài),只有對(duì)系統(tǒng)的觀測(cè)值,這種情況又該如何處理呢? 這個(gè)章節(jié)我們展開(kāi)來(lái)談?wù)劇?/p>
在回答這個(gè)問(wèn)題前,我們首先回顧下,狀態(tài)和觀測(cè)值的區(qū)別,狀態(tài)是一個(gè)系統(tǒng)的內(nèi)在決定性的屬性,比如一個(gè)人,善良、邪惡、勇敢、怯懦、自信、自卑;觀測(cè)值則是從外面不同觀察者獲取的數(shù)值,可能有局限,有偏差。
但是實(shí)際場(chǎng)景中,我們大概率是很難獲取一個(gè)系統(tǒng)的真實(shí)狀態(tài),一個(gè)人的真實(shí)底色,只能利用大量觀測(cè)值推測(cè)一二,所以就出現(xiàn)了隱馬爾可夫模型。
HMM(隱馬爾可夫模型)是對(duì)普通馬爾可夫的拓展,它們的核心區(qū)別如下:
| 特性 | 普通馬爾可夫模型 | 隱馬爾可夫模型(HMM) |
|---|---|---|
| 狀態(tài)可見(jiàn)性 | 狀態(tài)可直接觀測(cè) | 狀態(tài)隱藏,需要通過(guò)觀測(cè)推測(cè) |
| 觀測(cè) | 不涉及觀測(cè) | 每個(gè)隱藏狀態(tài)生成觀測(cè)數(shù)據(jù),通過(guò)觀測(cè)概率連接隱藏狀態(tài) |
| 模型要素 | 狀態(tài) + 轉(zhuǎn)移概率 + 初始概率 | 狀態(tài) + 轉(zhuǎn)移概率 + 初始概率 + 觀測(cè) + 觀測(cè)概率 |
| 應(yīng)用場(chǎng)景 | 可以直接統(tǒng)計(jì)狀態(tài)變化 | 觀測(cè)數(shù)據(jù)可以測(cè)量,但內(nèi)部狀態(tài)未知 |
| 推斷任務(wù) | 直接計(jì)算下一狀態(tài)概率 | 需要根據(jù)觀測(cè)序列推測(cè)最可能的隱藏狀態(tài)序列(如 Viterbi) |
再舉幾個(gè)例子,來(lái)感受下隱馬爾可夫模型
1?? 音樂(lè)會(huì)(經(jīng)典 HMM 場(chǎng)景)
- 隱藏狀態(tài):樂(lè)譜上正在演奏的音符
- 觀測(cè):聽(tīng)到的聲音(可能有噪音、演奏差異)
- 理解:樂(lè)譜是隱藏狀態(tài),它決定了實(shí)際聽(tīng)到的音符序列,但聲音本身可能有變化,不直接代表樂(lè)譜。
2??醫(yī)學(xué)診斷
- 隱藏狀態(tài):病人的真實(shí)健康狀態(tài)(健康、輕微發(fā)病、重病)
- 觀測(cè):體溫、血壓、實(shí)驗(yàn)室檢查結(jié)果
- 理解:測(cè)量指標(biāo)只是病情的表現(xiàn),指標(biāo)會(huì)有噪聲,真正決定病情演變的是隱藏狀態(tài)。HMM就是用這些觀測(cè)推測(cè)病情序列。
3?? 戲劇
- 隱藏狀態(tài):劇本中角色真正的心理狀態(tài)(開(kāi)心、緊張、憤怒)
- 觀測(cè):演員的表情、臺(tái)詞
- 理解:觀眾看到的是表象(觀測(cè)),真實(shí)的心理狀態(tài)(隱藏狀態(tài))才決定故事發(fā)展和臺(tái)詞的選擇。
隱馬爾可夫模型包含以下五個(gè)核心要素:
| 符號(hào) | 含義 |
|---|---|
| S = {S?, S?, ..., S_N} | 隱藏狀態(tài)集合 |
| V = {v?, v?, ..., v_M} | 觀測(cè)值集合 |
| A = [a??] | 狀態(tài)轉(zhuǎn)移概率矩陣,表示從狀態(tài) i 到狀態(tài) j 的概率 |
| B = [b?(k)] | 觀測(cè)概率矩陣,表示在狀態(tài) j 下生成觀測(cè) v? 的概率 |
| π = [π?] | 初始狀態(tài)分布 |
一個(gè)完整的 HMM 通常寫(xiě)作:
其中,A 決定了隱藏狀態(tài)之間如何轉(zhuǎn)移;
B 決定了每個(gè)狀態(tài)下“觀測(cè)值”可能出現(xiàn)的概率分布;
π 決定了系統(tǒng)最開(kāi)始可能在哪個(gè)隱藏狀態(tài)。
講到這里,我們?cè)僦厣晗履繕?biāo)
馬爾可夫模型(Markov Model, MM):已知當(dāng)前“狀態(tài)”,預(yù)測(cè)未來(lái)“狀態(tài)”。它的關(guān)鍵行為是通過(guò)統(tǒng)計(jì)方法找到狀態(tài)之間的轉(zhuǎn)移矩陣。
隱馬爾可夫模型(Hidden Markov Model, HMM):已知當(dāng)前“觀測(cè)值”,推斷當(dāng)前或未來(lái)“隱藏狀態(tài)”。它的關(guān)鍵行為是根據(jù)觀測(cè)序列找到一個(gè)隱馬爾可夫模型,在這個(gè)隱馬爾可夫模型下計(jì)算出來(lái)觀測(cè)序列出現(xiàn)概率最大。
但是呢,人類(lèi)沒(méi)有辦法直接獲取全局最優(yōu)解
不過(guò),到這里偉大的數(shù)學(xué)家們又出手了:沒(méi)有辦法獲取到全局最優(yōu)解,那咱能不能根據(jù)以往經(jīng)驗(yàn)或者隨便給一隱馬爾可夫模型,然后不斷對(duì)這個(gè)模型進(jìn)行調(diào)整,使得調(diào)整后得模型計(jì)算出來(lái)的觀測(cè)序列出現(xiàn)概率一直增加,直到最后這個(gè)概率不增加了,就把最后的模型當(dāng)作全局最優(yōu)解。
當(dāng)然這種辦法給出的解只能叫做局部最優(yōu)解,是基于觀測(cè)序列和隱馬爾可夫模型給出的一個(gè)局部最優(yōu)解,是不是全局最優(yōu),鬼知道,不過(guò)只要樣本數(shù)量夠多、多進(jìn)行嘗試,局部最優(yōu)就會(huì)不斷逼近全局最優(yōu),或者發(fā)現(xiàn)這種情況無(wú)法用隱馬爾可夫模型推測(cè)。
ok,那接下來(lái),我們來(lái)談?wù)劔@取隱馬爾可夫模型的局部最優(yōu)解一種最經(jīng)典的算法——EM(Baum-Welch)算法
EM算法本質(zhì)是在觀測(cè)數(shù)據(jù)確定下,不斷用當(dāng)前模型對(duì)隱藏狀態(tài)進(jìn)行概率性的統(tǒng)計(jì)(E步),然后用這些完整的統(tǒng)計(jì)結(jié)果來(lái)重新計(jì)算(M步)出一套更好的、更匹配數(shù)據(jù)的模型參數(shù)。
具體來(lái)說(shuō)如下
問(wèn)題
已知一個(gè)觀測(cè)序列
假設(shè)它符合隱馬爾可夫模型,目標(biāo)是估計(jì) HMM 參數(shù)
使這個(gè)隱馬爾可夫模型下下計(jì)算出來(lái)觀測(cè)序列出現(xiàn)概率 P(O∣λ)最大
解答
1?? 計(jì)算前向概率 α?(i):
表示在時(shí)刻 t 處于狀態(tài) i 并觀測(cè)到 O?...O? 的概率。
通過(guò)遞推計(jì)算:
2?? 后向概率 β?(i):
表示從時(shí)刻 t 狀態(tài) i 出發(fā),觀測(cè)到 的概率。
觀測(cè)序列概率
3?? 狀態(tài)期望概率 γ?(i):
觀測(cè)序列是O且時(shí)刻 t 在狀態(tài) i 的概率 ,這里要解釋下,時(shí)刻t有可能是狀態(tài)i,也有可能是狀態(tài)j,k等
4?? 轉(zhuǎn)移期望概率 ξ?(i,j):
時(shí)刻 t 從狀態(tài) i 轉(zhuǎn)移到狀態(tài) j 的概率:
M步:重新估計(jì)參數(shù) A、B、π
現(xiàn)在我們用這些期望概率重新計(jì)算模型參數(shù):
這些更新意味著:
- A 更新 = 實(shí)際上 i→j 的期望次數(shù) / i 狀態(tài)出現(xiàn)的總期望次數(shù)
- B 更新 = 狀態(tài) i 發(fā)出觀測(cè) k 的期望次數(shù) / 狀態(tài) i 總出現(xiàn)次數(shù)
- π 更新 = 第一個(gè)時(shí)刻各狀態(tài)的概率
也就是說(shuō),我們讓模型參數(shù)直接匹配“數(shù)據(jù)中期望的統(tǒng)計(jì)頻率”。
重復(fù) E步 + M步,直到收斂
因?yàn)镋M算法保證,每次更新使觀測(cè)序列的概率不斷增大。
最后,當(dāng)似然增大到變化極小時(shí)(或迭代次數(shù)達(dá)到上限),就認(rèn)為收斂,輸出 所有模型參數(shù)。
小結(jié)
在使用 HMM 時(shí),我們通常要解決以下三個(gè)經(jīng)典問(wèn)題??
| 問(wèn)題 | 名稱(chēng) | 目標(biāo) |
|---|---|---|
| ① 概率計(jì)算問(wèn)題 | Evaluation | 給定模型 λ 和觀測(cè)序列 O,求該觀測(cè)序列出現(xiàn)的概率 P(O|λ) |
| ② 解碼問(wèn)題 | Decoding | 給定 λ 和 O,求最可能的隱藏狀態(tài)序列 Q |
| ③ 學(xué)習(xí)問(wèn)題 | Learning | 給定觀測(cè)序列 O,估計(jì)模型參數(shù) (A, B, π) 使得 P(O|λ) 最大 |
Baum–Welch 是 EM 在 HMM 上的具體實(shí)現(xiàn):在“看不見(jiàn)狀態(tài)”的條件下,E 步用當(dāng)前模型軟估計(jì)隱藏狀態(tài)的期望統(tǒng)計(jì)(γ、ξ),M 步用這些期望統(tǒng)計(jì)更新參數(shù)(π、A、B),每次迭代使觀測(cè)似然單調(diào)不減,直到收斂(通常到局部最優(yōu))
總結(jié)
隱馬爾可夫模型(HMM)揭示了“觀測(cè)背后的隱藏規(guī)律”——我們看到的只是表象,而真正決定系統(tǒng)行為的是隱藏狀態(tài)。通過(guò)狀態(tài)轉(zhuǎn)移和觀測(cè)概率,HMM 能從外部信號(hào)中推斷系統(tǒng)內(nèi)部的演化邏輯。雖然它假設(shè)狀態(tài)轉(zhuǎn)移是離散且僅依賴(lài)上一個(gè)狀態(tài),難以處理復(fù)雜連續(xù)或長(zhǎng)距離依賴(lài),但這一思想為后續(xù)的 CRF、RNN、Transformer 等模型奠定了基礎(chǔ),讓機(jī)器具備了從觀測(cè)中理解“隱含因果”的能力。