1. 程式人生 > >[work]馬爾可夫鏈 (Markov Chain)是什麼鬼

[work]馬爾可夫鏈 (Markov Chain)是什麼鬼

“隨機過程隨機過,實變函式學十遍,微機原理鬧危機,組合語言不會編”


1. 唯一讓我徹底蒙圈的課程

這些課程真的太難了,大學裡無數人為此傷透了腦筋,掛科率槓槓的。我當初也是的,特別是隨機過程這門課,上完了一學期的課,只記住了幾個公式,問我幹嘛的?不知道!

像其他的高等數學啊,電磁場電磁波啊,通訊原理啊,我都能大體知道是幹嘛的,用在什麼地方。講真的,唯獨就隨機過程,感覺這門課太變態了,學的我雲裡霧裡的,尤其是我當時那本只有公式,別無其他的影印教材,看了讓人直蒙圈。

此後的很長一段時間,隨機過程都是我的噩夢,是一段不忍回憶的歷史,不過慶幸還好工作中不會接觸到它,學不會就罷了。可是---直到我最近買了一本機器學習的書,翻開目錄,看到了馬爾可夫隨機場時。。。哎,還是乖乖的去把馬爾可夫鏈這個隨機過程裡很重要的概念搞搞清楚吧。

這幾天又把之前的教材翻開復習了一遍,這才對隨機過程和馬爾可夫鏈有了更為深入的瞭解。

接下來,我用一個簡單的例子,來給大家講講馬爾可夫鏈到底是什麼東東。



2. 隨機過程是啥玩意兒

講馬爾可夫鏈不得不提到隨機過程,因為它是隨機過程課本中的,啊啊。

顧名思義,它其實就是個過程,比如今天下雨,那麼明天下不下雨呢?後天下不下雨呢?從今天下雨到明天不下雨再到後天下雨,這就是個過程。那麼怎麼預測N天后到底下不下雨呢?這其實是可以利用公式進行計算的,隨機過程就是這樣一個工具,把整個過程進行量化處理,用公式就可以推匯出來N天后的天氣狀況,下雨的概率是多少,不下雨的概率是多少。說白了,隨機過程就是一些統計模型,利用這些統計模型可以對自然界的一些事物進行預測和處理

,比如天氣預報,比如股票,比如市場分析,比如人工智慧。它的應用還真是多了去了。

話說回來,還真是佩服能構造出這些統計模型的大牛,簡直腦洞大開啊。



3. 馬爾可夫鏈 (Markov Chain)又是什麼鬼

好了,終於可以來看看馬爾可夫鏈 (Markov Chain)到底是什麼了。

它是隨機過程中的一種過程,到底是哪一種過程呢?好像一兩句話也說不清楚,還是先看個例子吧。

先說說我們村智商為0的王二狗,人傻不拉幾的,見人就傻笑,每天中午12點的標配,仨狀態:吃,玩,睡。這就是傳說中的狀態分佈。

你想知道他n天后中午12點的狀態麼?是在吃,還是在玩,還是在睡?這些狀態發生的概率分別都是多少? (知道你不想,就假裝想知道吧~~學習真的好累~~)

先看個假設,他每個狀態的轉移都是有概率的,比如今天玩,明天睡的概率是幾,今天玩,明天也玩的概率是几几,看圖更清楚一點。

這個矩陣就是轉移概率矩陣P,並且它是保持不變的,就是說第一天到第二天的轉移概率矩陣跟第二天到第三天的轉移概率矩陣是一樣的。(這個叫時齊,不細說了,有興趣的同學自行百度)。

有了這個矩陣,再加上已知的第一天的狀態分佈,就可以計算出第N天的狀態分佈了。

S1 是4月1號中午12點的的狀態分佈矩陣 [0.6, 0.2, 0.2],裡面的數字分別代表吃的概率,玩的概率,睡的概率。

那麼

4月2號的狀態分佈矩陣 S2 = S1 * P (倆矩陣相乘)。

4月3號的狀態分佈矩陣 S3 = S2 * P (看見沒,跟S1無關,只跟S2有關)。

4月4號的狀態分佈矩陣 S4 = S3 * P (看見沒,跟S1,S2無關,只跟S3有關)。

...

4月n號的狀態分佈矩陣 Sn = Sn-1 * P (看見沒,只跟它前面一個狀態Sn-1有關)。

總結:馬爾可夫鏈就是這樣一個任性的過程,它將來的狀態分佈只取決於現在,跟過去無關!


就把下面這幅圖想象成是一個馬爾可夫鏈吧。實際上就是一個隨機變數隨時間按照Markov性進行變化的過程。



=================================更新============


附:S2 的計算過程 (沒興趣的同學自行略過)



歡迎關注我的微信公眾號:紅猴子

這是一個工科生漲知識的號,公眾號的內容有CS\EE技術, 職場以及經驗談,知乎專欄文章會首發於我的微信公眾號,希望能給迷茫和困惑中的朋友一些啟發與幫助,歡迎圍觀