馬爾可夫鏈(Markov chain)

馬爾可夫鏈(Markov chain)是數學建模和機器學習常用的工具(據說尤其在NLP中,我目前尚不瞭解很多,但之前曾看過一篇用簡單的馬爾可夫鏈實現一個雞湯生成器的博文,有興趣的朋友可以看看)。這篇文章將對它做一個簡單的介紹。

以下內容爲本人在參考了一些資料後的原創,因此版權屬於本人。歡迎轉載,但請標明原作者和原鏈接。

由於內容比較繁多,我將在未來一段時間內完成這篇文章。

另注:根據作者測試,本文在移動端存在一個問題:公式無法顯示完全。 解決辦法是點擊公式,使其出現選擇框;長按至出現選項;選擇Math Settings 裏的 Scale All Math... 將scale調爲大概50%,即可顯示完全。

如下圖所示:

image_1c52vkbaacsv1euj1eqabv61b2rm.png-67.5kB

什麼是Markov chain?

定義

維基百科上給出的定義如下:

馬爾可夫鏈(英語:Markov chain),又稱離散時間馬爾可夫鏈(discrete-time Markov chain,縮寫爲DTMC),因俄國數學家安德烈·馬爾可夫(俄語:Андрей Андреевич Марков)得名,爲狀態空間中經過從一個狀態到另一個狀態的轉換的隨機過程。該過程要求具備“無記憶”的性質:下一狀態的概率分佈只能由當前狀態決定,在時間序列中它前面的事件均與之無關。這種特定類型的“無記憶性”稱作馬爾可夫性質。馬爾科夫鏈作爲實際過程的統計模型具有許多應用。

而用形式化的語言描述則爲:
當等式兩邊的條件概率都有意義時,

 

P(Xn+m=j |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=j |Xn=i)P(Xn+m=j |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=j |Xn=i)


m=1m=1 時等式成立,則隨機變量序列 XnXn 是一個馬爾可夫鏈, XiXi 的可能值構成的可數集稱爲該鏈的狀態空間(state space)

定義的推論

使用數學歸納法容易證明, 若 m=1m=1時 上式成立,則 mm 爲任意正整數都成立。
要完成這個證明,我們先證明這樣一個引理:

引理1 P(A|B)=∑P(A|B∩Ci)×P(Ci|B)P(A|B)=∑P(A|B∩Ci)×P(Ci|B)
其中,∑P(Ci)=1∑P(Ci)=1。

證明

 

∑P(A|B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B)P(Ci|B)×P(Ci|B)=∑P(A∩B∩Ci)P(B)=∑P(A∩B∩Ci)P(B)=P(A∩B)P(B)=P(A|B)∑P(A|B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B)P(Ci|B)×P(Ci|B)=∑P(A∩B∩Ci)P(B)=∑P(A∩B∩Ci)P(B)=P(A∩B)P(B)=P(A|B)

引理1,我們有:

 

P(Xn+m+1=k |Xn=i,Xn−1=in−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=i,Xn−1=in−1,…X1=i1)×P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)P(Xn+m+1=k |Xn=i,Xn−1=in−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=i,Xn−1=in−1,…X1=i1)×P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)

這裏我們已經知道 m=1m=1 時是成立的,那麼

 

P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=P(Xn+m+1=k |Xn+m=k′)=P(Xn+m+1=k |Xn+m=k,Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=P(Xn+m+1=k |Xn+m=k′)=P(Xn+m+1=k |Xn+m=k,Xn=in)


這個等式成立是因爲 Xn+m+1Xn+m+1 只與 Xn+mXn+m 有關,至於我們爲什麼要引入 Xn=iXn=i,稍後再說。

對於乘號右邊的 P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1), 根據歸納假設,有:
P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=k′ |Xn=in)P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=k′ |Xn=in)

於是,上面的等式可以改寫爲:

 

P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)

接下來我們證明第二個引理:

引理2: P(A∩B|C)=P(A|B∩C)×P(B|C)P(A∩B|C)=P(A|B∩C)×P(B|C)

證明 :

 

P(A|B∩C)×P(B|C)=P(A∩B∩C)P(B∩C)×P(B∩C)P(C)=P(A∩B∩C)P(C)=P(A∩B|C)P(A|B∩C)×P(B|C)=P(A∩B∩C)P(B∩C)×P(B∩C)P(C)=P(A∩B∩C)P(C)=P(A∩B|C)

寫到這裏,剛纔我們引入 Xn=iXn=i 的目的就很顯然了。我們可以將剛纔的等式再次改寫爲:

 

P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)=∑k′∈SP(Xn+m+1=k,Xn+m=k′ |Xn=in)=P(Xn+m+1=k |Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)=∑k′∈SP(Xn+m+1=k,Xn+m=k′ |Xn=in)=P(Xn+m+1=k |Xn=in)

這樣,我們證明了,如果m=1m=1等式成立, 當mm爲任意正整數時,該等式都成立。

概率轉移矩陣

開普曼-柯爾莫哥洛夫公式

剛剛我們分析的正是馬爾可夫鏈的第一個性質:馬氏性
接下來我們要討論另一個性質:時齊性(time-homogeneity)
時齊性是指,系統由狀態 ii 到狀態 jj 的轉移概率只依賴於其時間間隔的長短,與起始時間無關
用形式化的語言描述:

 

P(Xn+m=j |Xn=i)=P(Xn+m+k=j |Xn+k=i)P(Xn+m=j |Xn=i)=P(Xn+m+k=j |Xn+k=i)

既然與起始時間 nn 無關, 那我們就可以將概率 P(Xn+m=j |Xn=i)P(Xn+m=j |Xn=i) 寫作 Pij(m)Pij(m) 。

需要注意的是,時齊性是我們的假設,而非能通過數學推導得出的性質。我們做出這個假設是因爲它符合我們現實生活中的場景。

對於符合時齊性的馬爾可夫鏈,我們可以定義這樣一個概率轉移矩陣P(m)P(m):
P(m)P(m) 是以 mm 步轉移概率Pij(m)Pij(m)爲元素的矩陣(即 (P(m))ij=Pij(m)(P(m))ij=Pij(m),也稱爲該鏈的 mm 步轉移矩陣。通常記 P(1)P(1) 爲 PP。

它具有以下幾個性質:

  • ∀i,j∈S,0<Pij(m)<1∀i,j∈S,0<Pij(m)<1 .

  • ∀i,∑j∈SPij(m)=1∀i,∑j∈SPij(m)=1 換句話說, P(m)P(m) 的每一行都是在 SS 上的一個概率分佈。

  • P(0)P(0) 是一個單位矩陣。

以上幾個性質比較顯然,這裏就不做更多說明。

這裏要重點提到的是開普曼-柯爾莫哥洛夫公式(The Chapman-Kolmogorov Equations)

∀m,n,P(m+n)=P(m)P(n)∀m,n,P(m+n)=P(m)P(n) 亦即,∀m,n,Pij(m+n)=∑k∈SPik(m)Pkj(n)∀m,n,Pij(m+n)=∑k∈SPik(m)Pkj(n)

證明:由引理1

Pij(m+n)=P(Xm+n+1=j |X1=i)=∑k∈SP(Xm+n+1=j|Xm+1=k,X1=i)×P(Xm+1=k |X1=i)=∑k∈SPik(m)Pkj(n)Pij(m+n)=P(Xm+n+1=j |X1=i)=∑k∈SP(Xm+n+1=j|Xm+1=k,X1=i)×P(Xm+1=k |X1=i)=∑k∈SPik(m)Pkj(n)

由此,我們能得到以下兩個推論:

推論1: P(n)=P(n−1)P(1)=P(n−2)P(1)2=…P(1)n=PnP(n)=P(n−1)P(1)=P(n−2)P(1)2=…P(1)n=Pn

推論2: 如果我們設初始的概率分佈爲 P(0)P(0)(行向量), 那麼經過了 nn 個步驟後的概率分佈 P(n)=P(0)P(n)=P(0)PnP(n)=P(0)P(n)=P(0)Pn

極限概率分佈

我們知道,概率分佈矩陣的每個元素都屬於[0,1][0,1], 那麼很自然地,我們就會想知道:

對其求 nn 次冪後得到的 PnPn, 是否有極限呢?

對於有限的隨機序列 XnXn, PP 和 PnPn 都是大小有限的方陣。這意味着我們也許可以用單純的線性代數思想來解決這個問題。

線性代數的角度

純粹從線性代數的角度來看這個問題,我們的 PP 具有什麼性質呢?

  1. 所有元素均爲非負數。
  2. 每行元素和爲 11。

在這樣性質的基礎上,下面我們證明:

  1. PP 的任意一個特徵值 λλ 滿足 |λ|<=1|λ|<=1。
  2. PP 有特徵值 11, 且非重根。

證明

  1. 令 λλ 對應的特徵向量 x=(x1,x2,...xn)Tx=(x1,x2,...xn)T, 設 xi=max{x1,x2...,xn}xi=max{x1,x2...,xn}。

    由於 Px=λxPx=λx, (Px)i=∑j=1naijxj=λxi(Px)i=∑j=1naijxj=λxi

    兩邊同時取絕對值,有 |λ||xi|=|∑j=1naijxj|⩽∑j=1naij|xj|⩽(∑j=1naij)|xi|=xi|λ||xi|=|∑j=1naijxj|⩽∑j=1naij|xj|⩽(∑j=1naij)|xi|=xi

    因此 λ⩽1λ⩽1。

  2. 很容易發現 11 是一個特徵值,我們只需要取 x=(1,1,..1)Tx=(1,1,..1)T,就可以很容易地發現 Px=xPx=x。

    因此我們需要證明的是 11 不是重根。

    採用反證法

    我們已經知道 11 是一個特徵值,如果他是重根的話,那麼 det(P−λI)det(P−λI) 中至少有兩個 (1−λ)(1−λ) 的因子。

    對於 det(P−λI)det(P−λI) , 我們把每一列的數字累加到第 nn 列,可使第 nn 列全爲 (1−λ)(1−λ),這裏我們可以提出第一個因子。這時行列式最右一列均爲 11, 一個很自然的想法是,前 n−1n−1 行減去第 nn 行:這樣第 nn 列就只有一個非零元了。按第 nn 列展開,我們得到 det(P−λI)=(1−λ)det(Q−λI′)det(P−λI)=(1−λ)det(Q−λI′)。其中QQ 爲 n−1n−1 階方陣,且Qij=aij−anjQij=aij−anj;I′I′ 是 n−1n−1 階單位矩陣。這是很容易驗證的。

    這時候 QQ 必有特徵值 11.

    接下來我們考慮 QQ 關於 11 的行特徵向量(注意是行特徵向量,即 QTQT 的列特徵向量)β=(β1,β2,..βn−1)β=(β1,β2,..βn−1)。

    我們有

    (βQ)j=∑i=1n−1βi(aij−anj)=βj(βQ)j=∑i=1n−1βi(aij−anj)=βj

    接下來討論 ββ 中元素的正負性。設有 pp 個正元素(分別爲 βs1,βs2,..βspβs1,βs2,..βsp); qq 個非正元素(分別爲βt1,βt2,..βtqβt1,βt2,..βtq)。另外我們不妨設ρ=|β|⩾0ρ=|β|⩾0;因爲如果小於 00, 我們可以取 −β−β 作爲我們討論的對象。

    這樣,對 ββ 中的正元素,我們可以將上面的式子改寫爲:

    ∑i=1n−1βiaitk−ρantk=βtk  (k=1,2,...p)∑i=1n−1βiaitk−ρantk=βtk  (k=1,2,...p)

    累加,得到:

    ∑i=1n−1βi(∑k=1paitk)−ρ(∑k=1pantk)=∑k=1pβtk∑i=1n−1βi(∑k=1paitk)−ρ(∑k=1pantk)=∑k=1pβtk

    爲了簡化式子,不妨令 di=∑k=1paitk<∑i=1nai=1di=∑k=1paitk<∑i=1nai=1 :

    ∑i=1n−1βidi−ρdn=∑k=1pβtk∑i=1n−1βidi−ρdn=∑k=1pβtk

    ∑k=1pβskdsk+∑k=1qβtkdtk−ρdn=∑k=1pβtk∑k=1pβskdsk+∑k=1qβtkdtk−ρdn=∑k=1pβtk

    ∑k=1qβtkdtk−ρdn=∑k=1pβtk−∑k=1pβskdsk>0∑k=1qβtkdtk−ρdn=∑k=1pβtk−∑k=1pβskdsk>0

    而等式左邊顯然是負數,矛盾。這說明 QQ 沒有特徵值 11, 也就是說 PP 的特徵值 11 無重根。

回到我們對極限的討論。如果這個極限 LL 存在,那麼它會滿足:

LP=LLP=L

也就是說它的每一行都是 PP 關於特徵值 11 的行特徵向量; 我們剛剛證明11 這個特徵值無重根,那麼這個行特徵向量是唯一的。

—— 是的, LL 的每一行都相同,均爲 PP 關於 11 的行特徵向量。

極限何時存在?

【 最近事務繁多,更新無限期推遲】

有任何錯誤,請在評論區指正或者給我發郵件。(評論使用Disqus系統,可能需要翻牆)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章