當前位置:
首頁 > 知識 > 如何用賭場風雲解釋隱馬爾可夫模型?

如何用賭場風雲解釋隱馬爾可夫模型?

來源:DataCastle數據城堡

本文約3300字,建議閱讀10分鐘

本文以「賭場風雲」為背景,帶你直觀認識隱馬爾可夫模型。

一、背景介紹:賭場風雲

最近一個賭場的老闆發現生意不暢,於是派出手下去賭場張望。經探子回報,有位大叔在賭場中總能贏到錢,玩得一手好骰子,幾乎是戰無不勝。而且每次玩骰子的時候周圍都有幾個保鏢站在身邊,讓人不明就裡,只能看到每次開局,骰子飛出,沉穩落地。老闆根據多年的經驗,推測這位不善之客使用的正是江湖失傳多年的"偷換骰子大法」(編者注:偷換骰子大法,用兜里自帶的骰子偷偷換掉均勻的骰子)。老闆是個冷靜的人,看這位大叔也不是善者,不想輕易得罪他,又不想讓他壞了規矩。正愁上心頭,這時候進來一位名叫HMM帥哥,告訴老闆他有一個很好的解決方案。

不用近其身,只要在遠處裝個攝像頭,把每局的骰子的點數都記錄下來。

然後HMM帥哥將會運用其強大的數學內力,用這些數據推導出:

該大叔是不是在出千?

如果是在出千,那麼他用了幾個作弊的骰子? 還有當前是不是在用作弊的骰子?

這幾個作弊骰子出現各點的概率是多少?

天吶,老闆一聽,這位叫HMM的甚至都不用近身,就能算出是不是在作弊,甚至都能算出別人作弊的骰子是什麼樣的。那麼,只要再當他作弊時,派人圍捕他,當場驗證骰子就能讓他啞口無言。

二、HMM是何方神聖?

在讓HMM開展調查活動之前,該賭場老闆也對HMM作了一番調查。

HMM(Hidden Markov Model), 也稱隱性馬爾可夫模型,是一個概率模型,用來描述一個系統隱性狀態的轉移和隱性狀態的表現概率。

系統的隱性狀態指的就是一些外界不便觀察(或觀察不到)的狀態, 比如在當前的例子裡面, 系統的狀態指的是大叔使用骰子的狀態,即

隱性狀態的表現也就是可以觀察到的,由隱性狀態產生的外在表現特點。這裡就是說, 骰子擲出的點數.

HMM模型將會描述,系統隱性狀態的轉移概率。也就是大叔切換骰子的概率,下圖是一個例子,這時候大叔切換骰子的可能性被描述得淋漓盡致。

很幸運的,這麼複雜的概率轉移圖,竟然能用簡單的矩陣表達, 其中a_代表的是從i狀態到j狀態發生的概率:

當然同時也會有,隱性狀態表現轉移概率。也就是骰子出現各點的概率分布, (e.g. 作弊骰子1能有90%的機會擲到六,作弊骰子2有85%的機會擲到"小』)。給個圖如下:

隱性狀態的表現分布概率也可以用矩陣美麗地表示出來:

把這兩個東西總結起來,就是整個HMM模型。

這個模型描述了隱性狀態的轉換的概率,同時也描述了每個狀態外在表現的概率的分布。總之,HMM模型就能夠描述扔骰子大叔作弊的頻率(骰子更換的概率),和大叔用的骰子的概率分布。有了大叔的HMM模型,就能把大叔看透,讓他完全在陽光下現形。

三、HMM能幹什麼!

總結起來HMM能處理三個問題,


3.1 解碼(Decoding)

解碼就是需要從一連串的骰子中,看出來哪一些骰子是用了作弊的骰子,哪些是用的正常的骰子。

比如上圖中,給出一串骰子序列(3,6,1,2..)和大叔的HMM模型, 我們想要計算哪一些骰子的結果(隱性狀態表現)可能對是哪種骰子的結果(隱性狀態).


3.2 學習(Learning)

學習就是,從一連串的骰子中,學習到大叔切換骰子的概率,當然也有這些骰子的點數的分布概率。這是HMM最為恐怖也最為複雜的招數!!


3.3 估計(Evaluation)

估計說的是,在我們已經知道了該大叔的HMM模型的情況下,估測某串骰子出現的可能性概率。比如說,在我們已經知道大叔的HMM模型的情況下,我們就能直接估測到大叔扔到10個6或者8個1的概率。

四、HMM是怎麼做到的?


(這章需要概率論,遞歸,動態規劃的知識, 如果不感興趣可以跳著第5節)

4.1 估計

估計是最容易的一招,在完全知道了大叔的HMM模型的情況下,我們很容易就能對其做出估計。

現在我們有了大叔的狀態轉移概率矩陣A,B就能夠進行估計。比如我們想知道這位大叔下一局連續擲出10個6的概率是多少? 如下

這表示的是,在一開始隱性狀態(s0)為1,也就是一開始拿著的是正常的骰子的情況下,這位大叔連續擲出10個6的概率。

現在問題難就難在,我們雖然知道了HMM的轉換概率,和觀察到的狀態V, 但是我們卻不知道實際的隱性的狀態變化。

好吧,我們不知道隱性狀態的變化,那好吧,我們就先假設一個隱性狀態序列, 假設大叔前5個用的是正常骰子, 後5個用的是作弊骰子1.

好了,那麼我們可以計算,在這種隱性序列假設下擲出10個6的概率.

這個概率其實就是,隱性狀態表現概率B的乘積.

但是問題又出現了,剛才那個隱性狀態序列是我假設的,而實際的序列我不知道,這該怎麼辦。好辦,把所有可能出現的隱狀態序列組合全都試一遍就可以了。於是,

R就是所有可能的隱性狀態序列的集合。的嗯,現在問題好像解決了,我們已經能夠通過嘗試所有組合來獲得出現的概率值,並且可以通過A,B矩陣來計算出現的總概率。

但是問題又出現了,可能的集合太大了, 比如有三種骰子,有10次選擇機會, 那麼總共的組合會有3^10次...這個量級O(c^T)太大了,當問題再大一點時候,組合的數目就會大得超出了計算的可能。所以我們需要一種更有效的計算P(V(1:T)概率的方法。

比如說如下圖的演算法可以將計算P(V1:T)的計算複雜度降低至O(cT).

有了這個方程,我們就能從t=0的情況往前推導,一直推導出P(V1:T)的概率。下面讓我們算一算,大叔擲出3,2,1這個骰子序列的可能性有多大(假設初始狀態為1, 也就是大叔前一次拿著的是正常的骰子)?

4.2 解碼(Decoding)

解碼的過程就是在給出一串序列的情況下和已知HMM模型的情況下,找到最可能的隱性狀態序列。

用數學公式表示就是, (V是Visible可見序列, w是隱性狀態序列, A,B是HMM狀態轉移概率矩陣)

還記得以下公式:

然後又可以使用估計(4.1)中的前向推導法,計算出最大的P(w(1:T), V(1:T)).

在完成前向推導法之後,再使用後向追蹤法(Back Tracking),對求解出能令這個P(w(1:T), V(1:T))最大的隱性序列。這個演算法被稱為維特比演算法(Viterbi Algorithm).


維特比演算法找尋最有可能的隱性序列

這是動態規劃演算法的一種, 解法都是一樣的, 找到遞歸方程後用前向推導求解.然後使用後向追蹤法找到使得方程達到最優解的組合. 以下是一個計算骰子序列最有可能的隱性序列組合.(初始狀態為1=正常骰子,)


4.3 學習(Learning)

學習是在給出HMM的結構的情況下(比如說假設已經知道該大叔有3隻骰子,每隻骰子有6面),計算出最有可能的模型參數.

在假設完HMM的結構以後,就可以使用EM(Expectation Maximization) 演算法最大化Likelihood. 這裡的最大似然是,

我們要做的就是,找到能使似然最大的函數.所以這個問題又轉化成了"最大似然估計問題(MLE)". 在MLE問題中需要估計隱含參量時,就需要用到EM演算法(EM具體演算法推導可參考JerryLead的博客)進行估計.

五、HMM 的應用

以上舉的例子是用HMM對擲骰子進行建模與分析。當然還有很多HMM經典的應用,能根據不同的應用需求,對問題進行建模。

但是使用HMM進行建模的問題,必須滿足以下條件,

隱性狀態的轉移必須滿足馬爾可夫性。(狀態轉移的馬爾可夫性:一個狀態只與前一個狀態有關)

隱性狀態必須能夠大概被估計。

在滿足條件的情況下,確定問題中的隱性狀態是什麼,隱性狀態的表現可能又有哪些。

HMM適用於的問題在於,真正的狀態(隱態)難以被估計,而狀態與狀態之間又存在聯繫。


5.1 語音識別

語音識別問題就是將一段語音信號轉換為文字序列的過程. 在個問題裡面

隱性狀態就是: 語音信號對應的文字序列

而顯性的狀態就是: 語音信號.

HMM模型的學習(Learning): 語音識別的模型學習和上文中通過觀察骰子序列建立起一個最有可能的模型不同. 語音識別的HMM模型學習有兩個步驟:

統計文字的發音概率,建立隱性表現概率矩陣B

統計字詞之間的轉換概率(這個步驟並不需要考慮到語音,可以直接統計字詞之間的轉移概率即可)

語音模型的估計(Evaluation): 計算"是十四」,"四十四"等等的概率,比較得出最有可能出現的文字序列.

5.2 手寫識別

這是一個和語音差不多,只不過手寫識別的過程是將字的圖像當成了顯性序列.

5.3 中文分詞

「總所周知,在漢語中,詞與詞之間不存在分隔符(英文中,詞與詞之間用空格分隔,這是天然的分詞標記),詞本身也缺乏明顯的形態標記,因此,中文信息處理的特有問題就是如何將漢語的字串分割為合理的詞語序。

例如,英文句子:you should go to kindergarten now 天然的空格已然將詞分好,只需要去除其中的介詞「to」即可;而「你現在應該去幼兒園了」這句表達同樣意思的話沒有明顯的分隔符,中文分詞的目的是,得到「你/現在/應該/去/幼兒園/了」。

那麼如何進行分詞呢?主流的方法有三種:

第1類是基於語言學知識的規則方法,如:各種形態的最大匹配、最少切分方法;

第2類是基於大規模語料庫的機器學習方法,這是目前應用比較廣泛、效果較好的解決方案.用到的統計模型有N元語言模型、信道—雜訊模型、最大期望、HMM等。

第3類也是實際的分詞系統中用到的,即規則與統計等多類方法的綜合。使用HMM進行中文分詞。

作者:龐雨穠

https://www.zhihu.com/question/20962240/answer/33561657

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數據派THU 的精彩文章:

融合與發展:五位業界專家正式接受聘請,成為數據科學研究院RONG研究員

TAG:數據派THU |