當前位置:
首頁 > 新聞 > 今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

什麼是馬爾可夫鏈?什麼時候應該使用它們?它們是如何運作的?

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

馬爾可夫鏈是一個相當常見、相當簡單的對隨機過程進行統計建模的方式。它們被應用在很多領域,從文本生成到金融建模。一個比較流行的例子是 SubredditSimulator,它使用馬爾可夫鏈自動創建整個 subreddit 的內容。總之,馬爾可夫鏈在概念上是非常直觀,並且易於理解的,不使用任何高級的統計或者數學概念就可以實現。馬爾可夫鏈是入門概率建模和數據科學技術的很好的開端。

簡介

首先,我們用一個很常見的例子來描述它們:


試想有兩種可能的天氣狀態:晴天或者陰天。你總是可以直接地觀察當前的天氣狀態,而且保證是之前提及的兩者之一。現在,你決定預測明天的天氣。假設在這個過程中有一個潛在的轉移,因為當前的天氣會對第二天的天氣狀態有所影響。因此,作為一個敬業的人,你收集了幾年的天氣數據,然後計算得到陰天之後出現晴天的概率是 0.25。你還注意到,廣泛地講,陰天之後發生陰天的概率是 0.75,因為只有兩種可能的天氣狀態。你現在可以利用這個分布,根據當地目前的天氣狀態去預測未來幾天的天氣。

這個例子描述了馬爾可夫鏈的很多關鍵概念。馬爾可夫鏈本質上是由一系列滿足馬爾可夫性質的轉移組成,這些轉換服從某種概率分布。

我們來觀察一下在這個例子中,如何僅僅通過觀察從當天到第二天的轉換就得到概率分布。這其實說的就是馬爾可夫性,即馬爾可夫過程獨有的讓狀態轉移沒有記憶的性質。這通常使它們無法成功地生成會出現某些期望潛在趨勢的序列。例如,馬爾可夫鏈可能根據詞頻來模仿一個作者的寫作風格,但是它無法生成包含深層含義的文本或者蘊含某種主題意義的文本,因為這些文本都是基於更長的文本序列開發的。因此,它們缺乏生成語境相關內容的能力,因為它們無法考慮到之前的整條狀態鏈。

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

天氣預測例子的可視化

模型

形式上,馬爾可夫鏈是一個概率自動機。狀態轉移的概率分布通常表示為馬爾可夫鏈的轉移矩陣。如果馬爾可夫鏈有 N 個可能的狀態,那麼這個轉移矩陣就是 N*x*N 的矩陣,使得元素 (I, J) 代表從狀態 I 轉移到狀態 J 的概率。此外,狀態轉移矩陣必須是隨機矩陣,它的每一行元素之和必須是 1。這完全是能夠講得通的,因為每一行代表它自己的概率分布。

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

馬爾可夫鏈的一般視圖,圓圈代表狀態,邊代表轉移。

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

具有三個可能狀態的狀態轉移矩陣。

此外,馬爾可夫鏈也會有一個初始狀態向量,由一個 N x 1 的向量表示,用這個向量來描述從 N 個狀態中的某個狀態開始的概率分布。初始向量中的元素 I 代表該馬爾可夫鏈從 I 狀態開始的概率。

今天是霧霾,明天是什麼?馬爾可夫鏈告訴你

具有四個可能狀態的初始向量。

這兩個實體通常就是用來描述一個馬爾可夫鏈所需的全部內容了。

我們知道如何獲得從一個狀態轉移到另一個狀態的可能性,但是如何知道經過多個步驟後發生轉移的概率呢?為了將這個也形式化,我們現在要定義在 M 個步驟中從狀態 I 轉移到狀態 J 的概率。事實證明,這是很容易的。給定一個狀態轉移矩陣 P,這可以通過計算矩陣 P 的 M 次冪中的元素 (I, J) 來決定。然而,對於 M 值比較大的情況,如果您對簡單的線性代數比較熟悉,更有效的方法是先將矩陣對角化,然後再計算它的 M 次冪。

結論

既然你已經了解了馬爾可夫鏈的基本知識,現在就應該能夠用你選擇的語言輕鬆地實現它們。如果你不擅長編程,還有許多更高級的馬爾可夫鏈和馬爾可夫過程的屬性可以深入研究。在我看來,馬爾可夫鏈沿著理論路線的自然發展將是隱馬爾可夫過程或 MCMC(馬爾可夫鏈蒙特卡羅)。簡單的馬爾可夫鏈是其他更複雜的建模技術的基本組成,因此,掌握了這些知識,你現在可以去嘗試更多這種主題的技術,例如信念建模和採樣。

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

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


請您繼續閱讀更多來自 機器之心 的精彩文章:

如何淘汰「人人痛恨」的密碼,微軟Windows正在努力
教程 | 如何通過Scikit-Learn實現多類別文本分類?

TAG:機器之心 |