馬爾可夫鏈(Markov chain)是數學建模和機器學習常用的工具(據說尤其在NLP中,我目前尚不瞭解很多,但之前曾看過一篇用簡單的馬爾可夫鏈實現一個雞湯生成器的博文,有興趣的朋友可以看看)。這篇文章將對它做一個簡單的介紹。
以下內容爲本人在參考了一些資料後的原創,因此版權屬於本人。歡迎轉載,但請標明原作者和原鏈接。
由於內容比較繁多,我將在未來一段時間內完成這篇文章。
另注:根據作者測試,本文在移動端存在一個問題:公式無法顯示完全。 解決辦法是點擊公式,使其出現選擇框;長按至出現選項;選擇Math Settings
裏的 Scale All Math...
將scale調爲大概50%,即可顯示完全。
如下圖所示:
什麼是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 具有什麼性質呢?
- 所有元素均爲非負數。
- 每行元素和爲 11。
在這樣性質的基礎上,下面我們證明:
- PP 的任意一個特徵值 λλ 滿足 |λ|<=1|λ|<=1。
- PP 有特徵值 11, 且非重根。
證明:
-
令 λλ 對應的特徵向量 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。
-
很容易發現 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系統,可能需要翻牆)