機器學習 演算法 馬爾科夫

2022-09-08 09:33:13 字數 3499 閱讀 5802

考慮一套交通訊號燈,燈的顏色變化序列依次是紅色-紅色/黃色-綠色-黃色-紅色。這個序列可以作為乙個狀態機器,交通訊號燈的不同狀態都緊跟著上乙個狀態。

注意每乙個狀態都是唯一的依賴於前乙個狀態,所以,如果交通燈為綠色,那麼下乙個顏色狀態將始終是黃色——也就是說,該系統是確定性的。確定性系統相對比較容易理解和分析,因為狀態間的轉移是完全已知的。

為了使天氣那個例子更符合實際,加入第三個狀態——多雲。與交通訊號燈例子不同,我們並不期望這三個天氣狀態之間的變化是確定性的,但是我們依然希望對這個系統建模以便生成乙個天氣變化模式(規律)。

一種做法是假設模型的當前狀態僅僅依賴於前面的幾個狀態,這被稱為馬爾科夫假設,它極大地簡化了問題。顯然,這可能是一種粗糙的假設,並且因此可能將一些非常重要的資訊丟失。

當考慮天氣問題時,馬爾科夫假設假定今天的天氣只能通過過去幾天已知的天氣情況進行**——而對於其他因素,譬如風力、氣壓等則沒有考慮。在這個例子以及其他相似的例子中,這樣的假設顯然是不現實的。然而,由於這樣經過簡化的系統可以用來分析,我們常常接受這樣的知識假設,雖然它產生的某些資訊不完全準確。

乙個馬爾科夫過程是狀態間的轉移僅依賴於前n個狀態的過程。這個過程被稱之為n階馬爾科夫模型,其中n是影響下乙個狀態選擇的(前)n個狀態。最簡單的馬爾科夫過程是一階模型,它的狀態選擇僅與前乙個狀態有關。這裡要注意它與確定性系統並不相同,因為下乙個狀態的選擇由相應的概率決定,並不是確定性的。

下圖是天氣例子中狀態間所有可能的一階狀態轉移情況:

對於有m個狀態的一階馬爾科夫模型,共有m^2個狀態轉移,因為任何乙個狀態都有可能是所有狀態的下乙個轉移狀態。每乙個狀態轉移都有乙個概率值,稱為狀態轉移概率——這是從乙個狀態轉移到另乙個狀態的概率。所有的m^2個概率可以用乙個狀態轉移矩陣表示。注意這些概率並不隨時間變化而不同——這是乙個非常重要(但常常不符合實際)的假設。

下面的狀態轉移矩陣顯示的是天氣例子中可能的狀態轉移概率:

-也就是說,如果昨天是晴天,那麼今天是晴天的概率為0.5,是多雲的概率為0.375。注意,每一行的概率之和為1。

要初始化這樣乙個系統,我們需要確定起始日天氣的(或可能的)情況,定義其為乙個初始概率向量,稱為pi向量。

-也就是說,第一天為晴天的概率為1。

我們定義乙個一階馬爾科夫過程如下:

狀態:三個狀態——晴天,多雲,雨天。

pi向量:定義系統初始化時每乙個狀態的概率。

狀態轉移矩陣:給定前一天天氣情況下的當前天氣概率。

任何乙個可以用這種方式描述的系統都是乙個馬爾科夫過程。

**:

3、馬爾科夫模型

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

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

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

有隨機過程,對於任意n和i0,i1,in,滿足條件概率:

就稱為馬爾科夫鏈。

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

4、舉例說明

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

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

雨天晴天

0.80.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】。

p =0.6667

0.3333

p =0.6667

0.3333

p =0.6667

0.3333

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

馬爾科夫過程,馬爾科夫獎勵過程和馬爾科夫決策過程

馬爾科夫決策過程是強化學習中的乙個基本框架,用來表示agent與環境的互動過程 agent觀測得到環境的當前狀態之後,採取動作,環境進入下乙個狀態,agent又得到下乙個環境狀態的資訊,形成乙個迴圈迴路。在理解馬爾科夫決策過程之前,首先要理解馬爾科夫 馬爾科夫獎勵過程。1.馬爾科夫過程 滿足馬爾科夫...

馬爾科夫模型與隱馬爾科夫模型

隨機過程 是隨時間而隨機變化的過程。又稱為隨機函式。馬爾科夫模型 vmm 它描述了一類重要的隨機過程。乙個系統有有限個狀態集s 隨時間推移,該系統將同某一狀態轉移到另一狀態。q s1,s2,sn 為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。對系統的描述通常是給出當前時...

馬爾科夫鏈

馬爾科夫鏈,是數學中具有馬爾科夫性質的離散事件隨機過程。該過程中,在給定當前知識和資訊的情況下,過去 即當前以前的歷史狀態 對於 將來 即當前以後的未來狀態 是無關的 一 馬爾科夫性質 原理簡潔 x1,x2,x3 馬爾科夫鏈 描述了乙個狀態序列,其每個狀態值取決於前面有限個狀態。馬爾科夫鏈是具有馬爾...