JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

平穩分布與長期行為

把一條鏈跑得夠久,它對「從哪裡出發」的記憶就會淡去。在這裡我們認識滿足 pi P = pi 的平穩分布 pi,看清楚鏈在什麼條件下真的會收斂到它,並學會它能支撐的兩種截然不同的長期說法。

一個被鏈原封不動保留的分布

到現在我們已經會把一條鏈一步一步往前推。若今天的狀態是隨機的,用列向量 mu 表示(也就是 mu_i = P(今天在狀態 i)),那麼明天的分布就是 mu P,其中 P 是本階第一篇所介紹的轉移矩陣。再乘一次 P 得到後天,依此類推。多數的起始分布都會一直翻攪:機率隨著日子在各狀態之間晃盪。本篇要問的是:是否存在一個*不*晃盪的特殊分布——一個被鏈原封不動保留下來的分布。

這樣的分布稱為平穩分布,記作 pi。它是一個機率列向量(各項非負、加總為 1),滿足平衡方程 pi P = pi。慢慢讀這句話:若今天在各狀態上的分布是 pi,那麼明天的分布 mu P = pi P = pi 還是*同一個* pi。把鏈從 pi 出發,從分布的意義上看它就永不老去——每一天在統計上都與前一天一模一樣,儘管實際狀態仍不停地跳動。方程 pi P = pi 說的是:pi 是 P 對應特徵值 1 的左特徵向量。

解 pi P = pi:一個小小的算例

我們實際為一條兩狀態的天氣鏈找出 pi。狀態是晴天(S)與雨天(R)。從晴天出發,明天晴的機率 0.8、雨的機率 0.2;從雨天出發,晴的機率 0.4、雨的機率 0.6。寫 pi = (pi_S, pi_R)。平衡方程 pi P = pi 給出兩條方程,但 P 的每一列加總為 1,所以這兩條方程是冗餘的——你永遠需要額外的歸一化條件 pi_S + pi_R = 1 才能把 pi 釘死。這是一個普遍現象:單靠 pi P = pi 永遠定不出尺度,所以務必補上「各項加總為 1」。

P =  [ 0.8  0.2 ]      pi P = pi  with  pi = (pi_S, pi_R)
     [ 0.4  0.6 ]

Column S:  0.8*pi_S + 0.4*pi_R = pi_S   ->   0.4*pi_R = 0.2*pi_S
                                        ->   pi_S = 2 * pi_R
Normalise: pi_S + pi_R = 1
           2*pi_R + pi_R = 1   ->   pi_R = 1/3,  pi_S = 2/3

   pi = (2/3, 1/3)

Check:  pi P = (2/3*0.8 + 1/3*0.4 ,  2/3*0.2 + 1/3*0.6)
             = (0.8/1.5+... ) = (2/3, 1/3)  = pi   OK
為兩狀態天氣鏈解平衡方程加歸一化:pi = (2/3, 1/3)。

於是長期下,這條鏈大約三分之二的日子是晴天、三分之一是雨天,不論我們是從晴天還是雨天起算月曆。對每個狀態解讀 pi P = pi 有個生動的方式,稱為平衡圖像:在均衡時,每一步*流出*一個狀態的機率,等於*流入*它的機率。流出 S 的是 0.2*pi_S;流入 S 的是 0.4*pi_R;令兩者相等得 0.2*(2/3) = 0.4*(1/3),兩邊確實都是 2/15。平穩性就是「每個狀態的流入等於流出」這條收支條件。

鏈在什麼時候真的收斂到 pi?

擁有一個平穩 pi 是一回事;從任意起點*收斂*到它,是另一件更強的事。我們希望成立的說法是:當 n 增長時,對每個起始分布 mu 都有 mu P^n -> pi——鏈忘掉了它從哪裡開始。n 步轉移所趨近的那個分布,稱為極限分布。當它存在時必定等於 pi,但它並非總是存在。前一篇「狀態分類」裡的兩種狀況會擋住它:可約性與週期性。

首先,鏈必須是不可約的——每個狀態都能從其他任何狀態到達——這樣才有*單一*的均衡,而不是分別困在不同連通類裡的多個均衡。其次,它必須是非週期的:不能有那種僵硬的鼓點,只在某個週期 d > 1 的倍數步才回到某狀態。最經典的麻煩是確定性的二循環 P = [[0,1],[1,0]]:它有一個完全合格的平穩分布 pi = (1/2, 1/2),但從狀態 1 出發,分布會永遠地翻 1, 0, 1, 0, ...,從不安定。它的時間平均各是 1/2,可是快照分布永不收斂。週期性破壞的是極限,而非平穩性。

把好的情況湊在一起,就得到有限鏈的收斂定理:若一條鏈不可約且非週期(這樣的鏈常稱為遍歷的),則它有唯一的平穩分布 pi,而且從*任何*起點都有 mu P^n -> pi。無窮鏈也成立,但要額外要求鏈是正常返的——回訪的期望時間有限——這在有限不可約鏈上是自動成立的。在這個好情況下,pi_i 又剛好等於 1/(回到 i 的期望時間),把「在 i 停留時間的均衡比例」和「鏈平均要多久才回到 i」連在了一起。

兩種容易混淆的長期說法

這裡有兩個真正不同的長期主張,把它們分清楚,是這門學問裡最有用的單一習慣。第一個是極限說法:P(X_n = i) -> pi_i,亦即「在狀態 i 的*快照*機率」安定下來。這個需要非週期性,正如那條翻來覆去的二循環所顯示。第二個是時間平均說法:「前 n 步裡停留在狀態 i 的*比例*」收斂到 pi_i。這就是馬可夫鏈的遍歷定理,而驚人的是它只需要不可約性(加上正常返)——週期性傷不到它。

二循環讓這個差別令人難忘。它的快照分布永不收斂(永遠循環 1,0,1,0,...),但停留在每個狀態的時間比例卻穩穩地走向 1/2——數一數造訪次數再除以 n 即可。所以即使逐刻的*分布*不肯安定,你仍可擁有一個完全良好的長期*平均*。這正是極限定理那一階某個主題在馬可夫鏈裡的表親:時間平均可以表現得很漂亮,即使單張快照不行——一如大數法則講的是平均,而不是任何單一項。

如何找出並使用長期行為

實務上你幾乎總是想要 pi,而做法很短。主要工作是解一個線性系統,但有一個誠實的小陷阱:平衡方程的秩恰好少 1,所以那條歸一化方程不是可有可無的裝飾——正是它讓答案唯一。對於只有少數幾個狀態的離散時間鏈,這只是幾行代數;對於很多狀態,這是一個小計算,任何線性代數例程都能處理。

  1. 確認鏈不可約(每個狀態都能到達其他任何狀態)。若不是,長期行為可能取決於起點,而且可能有好幾個平穩分布——每個封閉連通類各一個。
  2. 寫下平衡方程 pi P = pi(每個狀態一條,說的是流入 = 流出),刪掉一條冗餘方程,再補上歸一化式 各 pi_i 之和 = 1。
  3. 解這個線性系統求出 pi。當鏈不可約時,歸一化保證得到唯一的非負機率向量。
  4. 在宣稱快照極限 P(X_n = i) -> pi_i 之前,先檢查非週期性。若沒有,你只能宣稱時間平均的讀法:長期下停留在狀態 i 的步數比例等於 pi_i。

這一切為何重要?因為太多應用機率,骨子裡其實是一個關於均衡的安靜問題。伺服器忙碌的時間比例、各等級顧客的長期占比、一副洗過的牌最終的分布,甚至那著名的網頁排序,全都是某條合適鏈的平穩分布。一旦你能寫下 P 並解出 pi P = pi,你就能回答「長期下會怎樣?」,連一步模擬都不必跑。下一篇會從另一端把這幅圖磨得更利——問的不是鏈最終落在哪裡,而是它要花多久才到某處(擊中時間)、平衡何時升級為更強的可逆性條件,以及這一切如何延伸到在連續時間裡移動的鏈。