M4.3 影片倒著播看得出來嗎:Time Reversal 與比值
本篇重用M4.2電話隨時會響:Continuous-Time Markov Chain 與 Rate Matrix·M1.3快篩陽性:Bayes 與 Posterior
一段沒有標時間的影片
有人給你一段縮時影片:同一個城市的天空,每天一格,連續兩年,只看得出「晴」「多雲」「雨」三種天。影片沒有日期、沒有聲音、沒有任何會洩漏方向的東西(沒有太陽東升西落,因為每天只有一格)。他問你:這段影片是正著播還是倒著播?
請先用直覺回答,並寫下你有多確定:
- 你覺得有辦法分辨嗎?依據是什麼?
- 如果把天氣簡化成只有「晴」「雨」兩種,你的答案會變嗎?
課堂上的回答分成兩派。一派說「不可能,天氣是隨機的,隨機的東西倒過來還是隨機的」;另一派說「可以,天氣有慣性,倒著播會看到不自然的轉變」。兩派都說不清楚「不自然」到底指什麼、以及為什麼兩種天的版本和三種天的版本可能不一樣。這一篇要把「倒著播」本身寫成數學,答案會自己掉出來。
課堂提問Q1
「倒著播」在數學上是什麼?如果正著播是一條 Markov chain ,倒過來的 還是 Markov chain 嗎?它的 rate 是什麼?
先想一想,再展開看整理後的答案
課堂上第一個反應通常是「倒過來就不是 Markov 了,因為它要知道未來」。這是錯的,而且錯得很有啟發性。Markov property 說「給了現在,過去與未來獨立」——這句話對過去與未來是對稱的。所以倒過來的過程 也是 Markov chain:給了 ,它的「未來」(就是 的過去)與它的「過去」( 的未來)獨立。
真正會變的是 rate。正著播的 rate 回答「現在在 ,下一瞬間跳到 的傾向」;倒著播要回答的是「現在在 ,上一瞬間在 的傾向」——這是一個「從結果推原因」的問題,是 M1.3 的形狀:已知 ,問 的 posterior。所以倒著播的 rate 會是一個 posterior,而 posterior 裡一定有先驗除以證據——這就是比值 的來源。要算的量是這個 posterior 對 的斜率。
先抓住這個畫面
想像一條很長的走廊,兩端各有一個房間:左邊「晴」、右邊「雨」。人群在兩個房間之間來回走。正著看,你數的是「每分鐘從晴走到雨的人數」;倒著看,同一批腳步變成「從雨走到晴」。如果兩個方向的人流一樣多,倒帶之後什麼都沒變——你看到的仍然是同樣多的人往兩邊走,分不出方向。
如果房間有三個、而且人群傾向繞圈——晴→多雲→雨→晴——正著看是順時鐘,倒著看變成逆時鐘。這時你分得出來,因為存在一股淨環流。分辨影片方向的能力,就是偵測淨環流的能力。這個畫面已經暗示:兩種天的世界裡,兩個房間之間長期的人流必然相等(不然有一邊會越來越擠),所以分不出來;三種天的世界裡可以繞圈,所以可能分得出來。
把畫面寫成公式
四行 Bayes
令 是一條 rate matrix 為 的 CTMC(M4.2), 是它在時刻 的分佈。固定一個很短的 、兩個不同的狀態 。倒著播的 rate 要問:已知時刻 在 ,時刻 在 的機率是多少?Bayes 定理:
第二步用了 (rate 的定義)與 。把 除掉,得到倒著播的 rate:
對角線照例補成讓每列和為 0。三個成分各有名字: 是正向從 到 的 rate(likelihood); 是上一瞬間在 的先驗; 是現在在 的證據。比值出現的原因就是 Bayes 的形狀:要從「現在在 」倒推「剛才在 」,得看 本來有多可能、以及從 過來有多容易,再除以「到 的所有路徑」。
注意兩件事。第一, 一般依賴 ,即使 不依賴——因為 在變。第二,只有 的方向倒著播才會有 rate:正向不可能發生的跳躍,倒向也不可能。
什麼時候倒著播看不出來
若 chain 已在 stationary distribution ( 對所有 ), 不再依賴 。倒著播與正著播規律完全相同的條件是 ,即
這叫 detailed balance:每一對狀態之間,兩個方向的機率流量相等。滿足它的 chain 叫 reversible。對照 stationary 的條件 ——那只要求每個狀態的總流入等於總流出(global balance);detailed balance 要求每一對之間各自平衡,是更強的條件。走廊裡的畫面就是這件事:三個房間可以「總進出平衡」但「順時鐘多於逆時鐘」。
2 狀態一定 reversible。 只有一條獨立方程 ,它本身就是 detailed balance。所以只有晴雨兩種天的 stationary 影片,任何方法都分不出方向——第二個直覺問題的答案是「會變:兩種天分不出,三種天可能分得出」。
3 狀態繞圈的例子。 令 S→C、C→R、R→S 的 rate 都是 1,反方向都是 。由對稱性 。倒著播的 rate 是 :順時鐘的 rate 變成 、逆時鐘變成 1。 時 (detailed balance 成立,分不出); 時影片正著播幾乎只看到 S→C→R→S,倒著播幾乎只看到 S→R→C→S——數一數「晴之後接多雲」與「多雲之後接晴」哪個多,就知道方向。
展開細節倒著播的 chain 確實把分佈倒著走回去;離散時間版本;Kolmogorov 的環路判準
驗證。 令 是倒著播的分佈。它應滿足倒著播的 forward equation 。直接算:(),代入 得 。成立。
離散時間。 同一個 Bayes 計算對每日一步的 chain 給 ;stationary 時 ,detailed balance 是 。
不用先算 的判準。 Kolmogorov 判準:一條 irreducible chain 是 reversible,若且唯若對每一個環路 ,順著走的 rate 乘積等於反著走的乘積。對上面的三角形:順時鐘 vs 逆時鐘 ,只在 時相等。見 Kelly [1] 第 1 章。
回頭看那兩派直覺
理論的判斷。 「隨機的東西倒過來還是隨機」這一派,在兩種天、且影片已經在 stationary 的情況下是對的——而且是嚴格對的:倒著播的過程與正著播有相同的法則,沒有任何統計量能分辨。但理由不是「隨機」,是 detailed balance;三種天一旦有淨環流,同樣隨機,卻分得出來。「有慣性所以看得出不自然」這一派,把重點放錯了:慣性(停留久)在倒帶後仍是慣性,看得出來的是環流方向,不是慣性。
依賴的假設與失準處。 上面「分不出」的結論依賴 stationary。若影片從一個特別的起點開始——例如整段影片是從一場罕見的連續大雨之後開始錄的, 遠離 ——那麼 依賴 :倒著播時,接近影片起點的那些天會有異常的轉變速率( 在 很小時很大),即使 chain 本身 reversible 也看得出來。具體地,2 狀態、從全晴出發、S→R rate 、R→S rate (每天):,倒著播的 R→S rate 是 ,在 時像 一樣爆掉——倒帶影片裡靠近起點的雨天會「不自然地」立刻放晴,因為它們必須在時刻 0 回到晴。
動手跑一次
import numpy as np
rng = np.random.default_rng(0)
eps, T = 0.2, 200_000 # 三角形:順時鐘 rate 1、逆時鐘 eps
R = np.array([[-(1+eps), 1, eps], [eps, -(1+eps), 1], [1, eps, -(1+eps)]])
x, path = 0, []
for _ in range(T): # 只記錄跳到哪(embedded chain 即可)
rates = R[x].copy(); rates[x] = 0
x = rng.choice(3, p=rates / rates.sum()); path.append(x)
path = np.array(path)
cw = np.mean((path[1:] - path[:-1]) % 3 == 1) # 順時鐘跳的比例
print("正著播順時鐘比例", cw, " 倒著播", 1 - cw) # 1/(1+eps) vs eps/(1+eps)
# eps = 1 時兩者都是 1/2:倒帶後無法分辨
先消化一下
參考文獻
- Kelly, F. P. Reversibility and Stochastic Networks. Wiley, 1979(Cambridge University Press 重印 2011).(第 1 章:reversed process、detailed balance、Kolmogorov 判準。)
- Norris, J. R. Markov Chains. Cambridge University Press, 1997.(1.9 節與 3.7 節 time reversal。)
- Levin, D. A., Peres, Y. Markov Chains and Mixing Times, 2nd ed. AMS, 2017.(1.6 節 reversibility 與 time reversal。)