马尔可夫模型
一、馬爾科夫模型
1.1 馬爾可夫過程
馬爾可夫過程(Markov process)是一類隨機過程。由俄國數學家A.A.馬爾可夫于1907年提出。該過程具有如下特性:在已知目前狀態(現在)的條件下,它未來的演變(將來)不依賴于它以往的演變 (過去 )。例如森林中動物頭數的變化構成——馬爾可夫過程。在現實世界中,有很多過程都是馬爾可夫過程,如液體中微粒所作的布朗運動、傳染病受感染的人數、車站的候車人數等,都可視為馬爾可夫過程。
馬爾科夫過程中最核心的幾個概念:過去,現在,將來。其中最核心的在于“現在”如何理解。
在馬爾可夫性的定義中,"現在"是指固定的時刻,但實際問題中常需把馬爾可夫性中的“現在”這個時刻概念推廣為停時(見隨機過程)。例如考察從圓心出發的平面上的布朗運動,如果要研究首次到達圓周的時刻 τ以前的事件和以后的事件的條件獨立性,這里τ為停時,并且認為τ是“現在”。如果把“現在”推廣為停時情形的“現在”,在已知“現在”的條件下,“將來”與“過去”無關,這種特性就叫強馬爾可夫性。具有這種性質的馬爾可夫過程叫強馬爾可夫過程。在相當一段時間內,不少人認為馬爾可夫過程必然是強馬爾可夫過程。首次提出對強馬爾可夫性需要嚴格證明的是J.L.杜布。直到1956年,才有人找到馬爾可夫過程不是強馬爾可夫過程的例子。馬爾可夫過程理論的進一步發展表明,強馬爾可夫過程才是馬爾可夫過程真正研究的對象。
(這段話實在是太過于抽象了,不好理解,心里有數就行,因為這里的過去、現在、將來和我們生活中是有所差別的,不太好理解!)
所以:一個馬爾科夫過程就是指過程中的每個狀態的轉移只依賴于之前的 n個狀態,這個過程被稱為 n階馬爾科夫模型,其中 n是影響轉移狀態的數目。最簡單的馬爾科夫過程就是一階過程,每一個狀態的轉移只依賴于其之前的那一個狀態,這也是后面很多模型的討論基礎,很多時候馬爾科夫鏈、隱馬爾可夫模型都是只討論一階模型,甚至很多文章就將一階模型稱之為馬爾科夫模型,現在我們知道一階只是一種特例而已了。
對于一階馬爾科夫模型,則有:
如果第 i 時刻上的取值依賴于且僅依賴于第 i?1 時刻的取值,即
? 從這個式子可以看出,xi 僅僅與 xi-1有關,二跟他前面的都沒有關系了,這就是一階過程。
?
總結:馬爾科夫過程指的是一個狀態不斷演變的過程,對其進行建模后稱之為馬爾科夫模型,在一定程度上,馬爾科夫過程和馬爾科夫鏈可以打等號的。
1.2 馬爾科夫性(無后效型)
在馬爾科夫過程中,在給定當前知識或信息的情況下,過去(即當前以前的歷史狀態)對于預測將來(即當前以后的未來狀態)是無關的。這種性質叫做無后效性。簡單地說就是將來與過去無關,值與現在有關,不斷向前形成這樣一個過程。
1.3 馬爾可夫鏈
時間和狀態都是離散的馬爾可夫過程稱為馬爾可夫鏈,簡記為Xn=X(n),n=0,1,2…馬爾可夫鏈是隨機變量X1,X2,X3…的一個數列。
這種離散的情況其實草是我們所討論的重點,很多時候我們就直接說這樣的離散情況就是一個馬爾科夫模型。
(1)關鍵概念——狀態空間
馬爾可夫鏈是隨機變量X1,X2,X3…Xn所組成的一個數列,每一個變量Xi 都有幾種不同的可能取值,即他們所有可能取值的集合,被稱為“狀態空間”,而Xn的值則是在時間n的狀態。
(2)關鍵概念——轉移概率(Transition Probability)
馬爾可夫鏈可以用條件概率模型來描述。我們把在前一時刻某取值下當前時刻取值的條件概率稱作轉移概率。
上面是一個條件概率,表示在前一個狀態為s的條件下,當前狀態為t的概率是多少。
(3)關鍵概念——轉移概率矩陣
很明顯,由于在每一個不同的時刻狀態不止一種,所以由前一個時刻的狀態轉移到當前的某一個狀態有幾種情況,那么所有的條件概率會組成一個矩陣,這個矩陣就稱之為“轉移概率矩陣”。比如每一個時刻的狀態有n中,前一時刻的每一種狀態都有可能轉移到當前時刻的任意一種狀態,所以一共有n*n種情況,組織成一個矩陣形式如下:
1.4 馬爾可夫模型的應用
馬爾可夫模型(Markov Model)是一種統計模型,廣泛應用在語音識別,詞性自動標注,音字轉換,概率文法、序列分類等各個自然語言處理等應用領域。經過長期發展,尤其是在語音識別中的成功應用,使它成為一種通用的統計工具。到目前為止,它一直被認為是實現快速精確的語音識別系統的最成功的方法之一。
二、馬爾科夫模型的案例之一——天氣預報
下面是一個馬爾科夫模型在天氣預測方面的簡單例子。如果第一天是雨天,第二天還是雨天的概率是0.8,是晴天的概率是0.2;如果第一天是晴天,第二天還是晴天的概率是0.6,是雨天的概率是0.4。問:如果第一天下雨了,第二天仍然是雨天的概率是多少?,第十天是晴天的概率是多少?;經過很長一段時間后雨天、晴天的概率分別是多少?
首先構建轉移概率矩陣,由于這里每一天的狀態就是晴天或者是下雨兩種情況,所以矩陣是2x2的,如下:
| 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。
下面計算經過很長一段時間后雨天、晴天的概率,顯然就是下面的遞推公式了:
2.2 遞推公式的改進
雖然上面構造了一個遞推公式,但是直接計算矩陣A的n次方是很難計算的,我們將A進行特征分解(譜分解)一下,得到:
現在遞推公式變成了下面的樣子:
顯然,當n趨于無窮即很長一段時間以后,Pn = 【0.67,0.33】。即雨天概率為0.67,晴天概率為0.33。并且,我們發現:初始狀態如果是P0 =【0,1】,最后結果仍然是Pn = 【0.67,0.33】。這表明,馬爾科夫過程與初始狀態無關,跟轉移矩陣有關。
總結
- 上一篇: Eclipse中单元测试
- 下一篇: 从mysql 5.7 到 mysql 8