馬爾可夫模型(Markov Model)是一種統計模型,廣泛應用在語音識别,詞性自動标注,音字轉換,機率文法等各個自然語言處理等應用領域。經過長期發展,尤其是在語音識别中的成功應用,使它成為一種通用的統計工具。
有時候,數學就是這麼強大,數學家就是這麼富于創造力。很多人覺得馬爾科夫不好了解,今天先對馬爾科夫模型做一個5分鐘快速入門,希望對新手有幫助!
一、馬爾科夫模型
包括我自己,很多人都不喜歡理論公式。可是,馬爾科夫鍊作為數學分支随機過程的産物,理論部分這裡不得不簡單提一下。作為數學專業出身的我自己深知數學理論的嚴謹與描述事物的美妙。
随機過程最早是用于統計實體學的數學方法,研究空間粒子的随機運動。後來這門科學蓬勃發展,随機過程應用的領域越來越廣。這裡介紹随機過程的一種——馬爾科夫鍊模型。
馬爾科夫的無後效性:系統在t>t0時刻所處的狀态與系統在t0時刻以前的狀态無關,這就是馬爾科夫性或者無後效性。
馬爾科夫模型具體公式描述如下
有随機過程{Xn,n為整數},對于任意n和I0,I1,In,滿足條件機率:
就稱為馬爾科夫鍊。
但凡學過機率論的對這個條件機率應該都能看懂吧!
二、舉例說明
下面是一個馬爾科夫模型在天氣預測方面的簡單例子。如果第一天是雨天,第二天還是雨天的機率是0.8,是晴天的機率是0.2;如果第一天是晴天,第二天還是晴天的機率是0.6,是雨天的機率是0.4。問:如果第一天下雨了,第二天仍然是雨天的機率,第十天是晴天的機率;經過很長一段時間後雨天、晴天的機率分别是多少?
首先建構轉移機率矩陣,初學者很容易建構錯誤:
雨天
晴天
0.8
0.4
0.2
0.6
注意:每列和為1,分别對雨天、晴天,這樣建構出來的就是轉移機率矩陣了。
初始狀态第一天是雨天,我們記為
這裡【1,0】分别對于雨天,晴天。
初始條件:第一天是雨天,第二天仍然是雨天(記為P1)的機率為:
P1 = AxP0
得到P1 = 【0.8,0.2】,正好滿足雨天~雨天機率為0.8,當然這根據所給條件就是這樣。
下面計算第十天(記為P9)是晴天機率:
得到,第十天為雨天機率為0.6668,為晴天的機率為0.3332。
下面計算經過很長一段時間後雨天、晴天的機率,顯然就是公式(1.1)
直接算A的n次方顯然不行,我們知道任意一個可逆矩陣總可以化為(1.2)形式。其中,T為A的特征值對應的兩個特征向量組成的矩陣,這兩個特征向量分别為【2,1】、【1 -1】。D為一個對角矩陣(1.4)。
那麼,我們可以這樣算,就簡單多了:
顯然,當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】。
可以看出第50天時與第1000天在0.00001精度下是一樣的,最終結果與理論值Pn = 【0.67,0.33】一緻。馬爾科夫過程與初始狀态無關,跟轉移矩陣有關。
馬爾科夫作為一種随機機率模型模型在現今在機器學習、人工智能方面用處很大,值得學習。
我的個人部落格網站