天天看點

5分鐘學會馬爾科夫模型

馬爾可夫模型(Markov Model)是一種統計模型,廣泛應用在語音識别,詞性自動标注,音字轉換,機率文法等各個自然語言處理等應用領域。經過長期發展,尤其是在語音識别中的成功應用,使它成為一種通用的統計工具。

有時候,數學就是這麼強大,數學家就是這麼富于創造力。很多人覺得馬爾科夫不好了解,今天先對馬爾科夫模型做一個5分鐘快速入門,希望對新手有幫助!

一、馬爾科夫模型

包括我自己,很多人都不喜歡理論公式。可是,馬爾科夫鍊作為數學分支随機過程的産物,理論部分這裡不得不簡單提一下。作為數學專業出身的我自己深知數學理論的嚴謹與描述事物的美妙。

随機過程最早是用于統計實體學的數學方法,研究空間粒子的随機運動。後來這門科學蓬勃發展,随機過程應用的領域越來越廣。這裡介紹随機過程的一種——馬爾科夫鍊模型。

馬爾科夫的無後效性:系統在t>t0時刻所處的狀态與系統在t0時刻以前的狀态無關,這就是馬爾科夫性或者無後效性。

馬爾科夫模型具體公式描述如下

有随機過程{Xn,n為整數},對于任意n和I0,I1,In,滿足條件機率:

5分鐘學會馬爾科夫模型

就稱為馬爾科夫鍊。

但凡學過機率論的對這個條件機率應該都能看懂吧!

二、舉例說明

下面是一個馬爾科夫模型在天氣預測方面的簡單例子。如果第一天是雨天,第二天還是雨天的機率是0.8,是晴天的機率是0.2;如果第一天是晴天,第二天還是晴天的機率是0.6,是雨天的機率是0.4。問:如果第一天下雨了,第二天仍然是雨天的機率,第十天是晴天的機率;經過很長一段時間後雨天、晴天的機率分别是多少?

5分鐘學會馬爾科夫模型

首先建構轉移機率矩陣,初學者很容易建構錯誤:

雨天

晴天

0.8

0.4

0.2

0.6

注意:每列和為1,分别對雨天、晴天,這樣建構出來的就是轉移機率矩陣了。

5分鐘學會馬爾科夫模型

初始狀态第一天是雨天,我們記為

5分鐘學會馬爾科夫模型

這裡【1,0】分别對于雨天,晴天。

初始條件:第一天是雨天,第二天仍然是雨天(記為P1)的機率為:

P1 = AxP0

得到P1 = 【0.8,0.2】,正好滿足雨天~雨天機率為0.8,當然這根據所給條件就是這樣。

下面計算第十天(記為P9)是晴天機率:

5分鐘學會馬爾科夫模型

得到,第十天為雨天機率為0.6668,為晴天的機率為0.3332。

下面計算經過很長一段時間後雨天、晴天的機率,顯然就是公式(1.1)

5分鐘學會馬爾科夫模型

直接算A的n次方顯然不行,我們知道任意一個可逆矩陣總可以化為(1.2)形式。其中,T為A的特征值對應的兩個特征向量組成的矩陣,這兩個特征向量分别為【2,1】、【1 -1】。D為一個對角矩陣(1.4)。

那麼,我們可以這樣算,就簡單多了:

5分鐘學會馬爾科夫模型

顯然,當n趨于無窮即很長一段時間以後,Pn = 【0.67,0.33】。即雨天機率為0.67,晴天機率為0.33。并且,我們發現:初始狀态如果是P0 =【0,1】,最後結果仍然是Pn = 【0.67,0.33】。這表明,馬爾科夫過程與初始狀态無關,跟轉移矩陣有關。

下面,簡單驗證一下,分别求第50天,100天,1000天時,Pn的取值情況是否與理論一緻:Pn = 【0.67,0.33】。

5分鐘學會馬爾科夫模型

        可以看出第50天時與第1000天在0.00001精度下是一樣的,最終結果與理論值Pn = 【0.67,0.33】一緻。馬爾科夫過程與初始狀态無關,跟轉移矩陣有關。

馬爾科夫作為一種随機機率模型模型在現今在機器學習、人工智能方面用處很大,值得學習。

我的個人部落格網站

5分鐘學會馬爾科夫模型

繼續閱讀