機器學習(10)隱馬爾可夫模型

2021-08-13 16:07:49 字數 1562 閱讀 8295

「多一條公式,少一半讀者」--霍金

飲水不忘挖井人,感謝知乎上關於隱馬爾可夫的回答。

這裡分兩部分,第一部分是隱馬爾可夫模型「像」什麼,第二部分是實際應用中,隱馬爾可夫模型的三類問題。

第一部分:

有一款遊戲,裡面有個角色,職業是戰士,戰士有三種狀態:正常狀態,狂暴狀態,防禦狀態。戰士戰鬥只有兩種動作:平a和格擋。

正常狀態:平a出現暴擊的概率為20%,格擋概率為10%

狂暴狀態:平a出現暴擊的概率為40%,格擋概率為7%

防禦狀態:平a出現暴擊的概率為5%,格擋概率為25%

三種狀態之間是隨機切換,比如,在t1時間時,戰士是正常狀態,t2狀態時,戰士可以保持正常狀態,也可以是狂暴狀態或者防禦狀態,這裡先假設三種狀態轉換的概率都為33.3%,也就是下乙個時間段可能出現的狀態的機率是一樣的。

那麼問題來了,一天,這個戰士和boss肉山大魔王戰鬥,戰士出現暴擊或者成功閃避時都只有出現暴擊字樣或者閃避字樣。戰鬥一開始,戰士平a了大魔王3下,均為暴擊,問:現在戰士處於什麼狀態?過了一會,戰士連續格擋掉大魔王的攻擊,問:現在戰士處於什麼狀態?

很大機率你們會回答,一開始戰士處於狂暴狀態,過一會,戰士處於防禦狀態。

你看,你們已經知道隱馬爾可夫模型「像」什麼了。

隱馬爾可夫有四個東西,狀態(如上面的3種狀態),狀態轉換概率(如上面的33.3%),行為(如上面的平a和格擋),每種狀態對應不同行為的概率(如每個狀態對應平a和格擋的概率都不一樣)。

隱馬爾可夫就是,給你看一堆行為(不斷的平a和格擋),然後你去猜測,這個行為到底是哪個狀態下的行為,不同狀態行為下這個行為的概率是多少。

於是乎,就有了隱馬爾可夫的三類問題。

第二部分:

問題1:已知狀態型別,狀態轉換概率,每種狀態對應行為的概率,給出行為序列去求行為對應的狀態。這個問題就是上面場景中,玩家看戰士出現暴擊和格擋去猜戰士那時候處於什麼狀態。該問題的解法是:viterbi algo演算法,比如

戰士第乙個行為-暴擊

然後你猜這個時候戰士處於什麼狀態,正常狀態暴擊率為20%,狂暴狀態暴擊率為40%,防禦狀態暴擊為5%,明顯狂暴狀態下暴擊的概率比較高,那麼第一發平a時,戰士處於狂暴狀態。

戰士第二行為-格擋

防禦狀態出現格擋的概率比較高,所以我們確定戰士第二行為處於防禦狀態

不是在戰士第一行為時一定是狂暴狀態,而是我們只是選出概率最大狀態。

問題2:

已知狀態型別,狀態轉換概率,每種狀態對應行為的概率,給出行為序列去求行為對應的概率。有一天,戰士繼續去打大魔王,發現很少出暴擊,於是玩家懷疑是不是自己沒衝錢買裝備,遊戲產商故意把自己暴擊率的數值改了。該問題的解法是:前向演算法。

先算出正常情況下的暴擊概率,再和現實對比。

1,算出3種狀態下的暴擊概率相加:33.3%×20%+33.3%×40%+33.3%×5%

2,每出現乙個行為都用上面式子概率求和一次

...

最後與現實資料對比

問題3:

什麼都不知道,只給你看行為,讓你從暴擊和閃避概率中反推出整個模型,第三類問題很複雜,我就不不談了。。。

隱馬爾可夫模型HMM 機器學習模型

隱馬爾科夫模型,hidden markov model,簡稱hmm,是乙個比較經典的機器學習模型。它在語言識別,自然語言處理,模式識別等領域得到廣泛的應用。當然,隨著目前深度學習的崛起,尤其是rnn,lstm等神經網路序列模型的火熱,hmm的地位有所下降。隱馬爾可夫模型 hidden markov ...

隱馬爾可夫模型

隱 馬爾可夫模型 hidden markov model,hmm 作為一種統計分析模型,創立於20世紀70年代。80 年代得到了傳播和發展,成為訊號處理的乙個重要方向,現已成功地用於語音識別 行為識別,文字識別以及故障診斷等領域。隱馬爾可夫模型是馬爾可夫鏈的一種,它的狀態不能直接觀察到,但能通過觀測...

隱馬爾可夫模型

對隱馬爾可夫模型的解釋,個人覺得一句簡單概括就是 在馬爾可夫鏈的情況下對每乙個狀態都加入乙個單獨輸出口,而我們把這個輸出口定為可視視窗,可把馬爾可夫鏈放到裡面藏起來。ok!這樣就是知道隱馬爾可夫模型的結構了。通過如下例子來說明hmm的含義。假定乙個暗室中有n個口袋,每個口袋中有m種不同顏色的球,乙個...