M4.3 15 分鐘閱讀 2026年9月

M4.3 影片倒著播看得出來嗎:Time Reversal 與比值

本篇重用M4.2電話隨時會響:Continuous-Time Markov Chain 與 Rate Matrix·M1.3快篩陽性:Bayes 與 Posterior

一段沒有標時間的影片

有人給你一段縮時影片:同一個城市的天空,每天一格,連續兩年,只看得出「晴」「多雲」「雨」三種天。影片沒有日期、沒有聲音、沒有任何會洩漏方向的東西(沒有太陽東升西落,因為每天只有一格)。他問你:這段影片是正著播還是倒著播?

請先用直覺回答,並寫下你有多確定:

  1. 你覺得有辦法分辨嗎?依據是什麼?
  2. 如果把天氣簡化成只有「晴」「雨」兩種,你的答案會變嗎?

課堂上的回答分成兩派。一派說「不可能,天氣是隨機的,隨機的東西倒過來還是隨機的」;另一派說「可以,天氣有慣性,倒著播會看到不自然的轉變」。兩派都說不清楚「不自然」到底指什麼、以及為什麼兩種天的版本和三種天的版本可能不一樣。這一篇要把「倒著播」本身寫成數學,答案會自己掉出來。

課堂提問Q1

「倒著播」在數學上是什麼?如果正著播是一條 Markov chain XtX_t,倒過來的 Ys=XTsY_s=X_{T-s} 還是 Markov chain 嗎?它的 rate 是什麼?

先想一想,再展開看整理後的答案

課堂上第一個反應通常是「倒過來就不是 Markov 了,因為它要知道未來」。這是錯的,而且錯得很有啟發性。Markov property 說「給了現在,過去與未來獨立」——這句話對過去與未來是對稱的。所以倒過來的過程 YsY_s 也是 Markov chain:給了 Ys=XTsY_s=X_{T-s},它的「未來」(就是 XX 的過去)與它的「過去」(XX 的未來)獨立。

真正會變的是 rate。正著播的 rate R(x,y)R(x,y) 回答「現在在 xx,下一瞬間跳到 yy 的傾向」;倒著播要回答的是「現在在 xx上一瞬間yy 的傾向」——這是一個「從結果推原因」的問題,是 M1.3 的形狀:已知 Xt+dt=xX_{t+dt}=x,問 Xt=yX_t=y 的 posterior。所以倒著播的 rate 會是一個 posterior,而 posterior 裡一定有先驗除以證據——這就是比值 pt(y)/pt(x)p_t(y)/p_t(x) 的來源。要算的量是這個 posterior 對 dtdt 的斜率。

先抓住這個畫面

想像一條很長的走廊,兩端各有一個房間:左邊「晴」、右邊「雨」。人群在兩個房間之間來回走。正著看,你數的是「每分鐘從晴走到雨的人數」;倒著看,同一批腳步變成「從雨走到晴」。如果兩個方向的人流一樣多,倒帶之後什麼都沒變——你看到的仍然是同樣多的人往兩邊走,分不出方向。

如果房間有三個、而且人群傾向繞圈——晴→多雲→雨→晴——正著看是順時鐘,倒著看變成逆時鐘。這時你分得出來,因為存在一股淨環流。分辨影片方向的能力,就是偵測淨環流的能力。這個畫面已經暗示:兩種天的世界裡,兩個房間之間長期的人流必然相等(不然有一邊會越來越擠),所以分不出來;三種天的世界裡可以繞圈,所以可能分得出來。

把畫面寫成公式

四行 Bayes

XtX_t 是一條 rate matrix 為 RR 的 CTMC(M4.2),ptp_t 是它在時刻 tt 的分佈。固定一個很短的 dtdt、兩個不同的狀態 xyx\ne y。倒著播的 rate 要問:已知時刻 t+dtt+dtxx,時刻 ttyy 的機率是多少?Bayes 定理:

Pr(Xt=yXt+dt=x)=Pr(Xt+dt=xXt=y)  pt(y)pt+dt(x)R(y,x)dt  pt(y)pt(x).\Pr(X_t=y\mid X_{t+dt}=x) =\frac{\Pr(X_{t+dt}=x\mid X_t=y)\;p_t(y)}{p_{t+dt}(x)} \approx\frac{R(y,x)\,dt\;p_t(y)}{p_t(x)} .

第二步用了 Pr(Xt+dt=xXt=y)R(y,x)dt\Pr(X_{t+dt}=x\mid X_t=y)\approx R(y,x)\,dt(rate 的定義)與 pt+dt(x)pt(x)p_{t+dt}(x)\approx p_t(x)。把 dtdt 除掉,得到倒著播的 rate

  R^t(x,y)=R(y,x)pt(y)pt(x)  (xy),\boxed{\;\hat R_t(x,y)=R(y,x)\,\frac{p_t(y)}{p_t(x)}\;}\qquad(x\ne y),

對角線照例補成讓每列和為 0。三個成分各有名字:R(y,x)R(y,x)正向從 yyxx 的 rate(likelihood);pt(y)p_t(y)上一瞬間在 yy 的先驗pt(x)p_t(x)現在在 xx 的證據。比值出現的原因就是 Bayes 的形狀:要從「現在在 xx」倒推「剛才在 yy」,得看 yy 本來有多可能、以及從 yy 過來有多容易,再除以「到 xx 的所有路徑」。

注意兩件事。第一,R^t\hat R_t 一般依賴 tt,即使 RR 不依賴——因為 ptp_t 在變。第二,只有 R(y,x)>0R(y,x)>0 的方向倒著播才會有 rate:正向不可能發生的跳躍,倒向也不可能。

什麼時候倒著播看不出來

若 chain 已在 stationary distribution π\pipt=πp_t=\pi 對所有 tt),R^(x,y)=R(y,x)π(y)/π(x)\hat R(x,y)=R(y,x)\pi(y)/\pi(x) 不再依賴 tt。倒著播與正著播規律完全相同的條件是 R^=R\hat R=R,即

π(x)R(x,y)=π(y)R(y,x)對所有 xy.\pi(x)\,R(x,y)=\pi(y)\,R(y,x)\quad\text{對所有 }x\ne y .

這叫 detailed balance:每一對狀態之間,兩個方向的機率流量相等。滿足它的 chain 叫 reversible。對照 stationary 的條件 πR=0\pi R=0——那只要求每個狀態的流入等於總流出(global balance);detailed balance 要求每一對之間各自平衡,是更強的條件。走廊裡的畫面就是這件事:三個房間可以「總進出平衡」但「順時鐘多於逆時鐘」。

2 狀態一定 reversible。 πR=0\pi R=0 只有一條獨立方程 π(S)R(S,R)=π(R)R(R,S)\pi(\text{S})R(\text{S},\text{R})=\pi(\text{R})R(\text{R},\text{S}),它本身就是 detailed balance。所以只有晴雨兩種天的 stationary 影片,任何方法都分不出方向——第二個直覺問題的答案是「會變:兩種天分不出,三種天可能分得出」。

3 狀態繞圈的例子。 令 S→C、C→R、R→S 的 rate 都是 1,反方向都是 ε\varepsilon。由對稱性 π=(13,13,13)\pi=(\tfrac13,\tfrac13,\tfrac13)。倒著播的 rate 是 R^(x,y)=R(y,x)\hat R(x,y)=R(y,x):順時鐘的 rate 變成 ε\varepsilon、逆時鐘變成 1。ε=1\varepsilon=1R^=R\hat R=R(detailed balance 成立,分不出);ε1\varepsilon\ll1 時影片正著播幾乎只看到 S→C→R→S,倒著播幾乎只看到 S→R→C→S——數一數「晴之後接多雲」與「多雲之後接晴」哪個多,就知道方向。

展開細節倒著播的 chain 確實把分佈倒著走回去;離散時間版本;Kolmogorov 的環路判準

驗證。qs=pTsq_s=p_{T-s} 是倒著播的分佈。它應滿足倒著播的 forward equation q˙s=qsR^Ts\dot q_s=q_s\hat R_{T-s}。直接算:(qsR^Ts)(y)=xy[pt(x)R^t(x,y)pt(y)R^t(y,x)](q_s\hat R_{T-s})(y)=\sum_{x\ne y}\big[p_t(x)\hat R_t(x,y)-p_t(y)\hat R_t(y,x)\big]t=Tst=T-s),代入 R^t(x,y)=R(y,x)pt(y)/pt(x)\hat R_t(x,y)=R(y,x)p_t(y)/p_t(x)xy[pt(y)R(y,x)pt(x)R(x,y)]=p˙t(y)=q˙s(y)\sum_{x\ne y}\big[p_t(y)R(y,x)-p_t(x)R(x,y)\big]=-\dot p_t(y)=\dot q_s(y)。成立。

離散時間。 同一個 Bayes 計算對每日一步的 chain 給 P^n(x,y)=P(y,x)pn(y)/pn+1(x)\hat P_n(x,y)=P(y,x)\,p_n(y)/p_{n+1}(x);stationary 時 P^(x,y)=π(y)P(y,x)/π(x)\hat P(x,y)=\pi(y)P(y,x)/\pi(x),detailed balance 是 π(x)P(x,y)=π(y)P(y,x)\pi(x)P(x,y)=\pi(y)P(y,x)

不用先算 π\pi 的判準。 Kolmogorov 判準:一條 irreducible chain 是 reversible,若且唯若對每一個環路 x1x2xkx1x_1\to x_2\to\cdots\to x_k\to x_1,順著走的 rate 乘積等於反著走的乘積。對上面的三角形:順時鐘 1111\cdot1\cdot1 vs 逆時鐘 ε3\varepsilon^3,只在 ε=1\varepsilon=1 時相等。見 Kelly [1] 第 1 章。

回頭看那兩派直覺

理論的判斷。 「隨機的東西倒過來還是隨機」這一派,在兩種天、且影片已經在 stationary 的情況下是對的——而且是嚴格對的:倒著播的過程與正著播有相同的法則,沒有任何統計量能分辨。但理由不是「隨機」,是 detailed balance;三種天一旦有淨環流,同樣隨機,卻分得出來。「有慣性所以看得出不自然」這一派,把重點放錯了:慣性(停留久)在倒帶後仍是慣性,看得出來的是環流方向,不是慣性。

依賴的假設與失準處。 上面「分不出」的結論依賴 stationary。若影片從一個特別的起點開始——例如整段影片是從一場罕見的連續大雨之後開始錄的,p0p_0 遠離 π\pi——那麼 R^t\hat R_t 依賴 tt:倒著播時,接近影片起點的那些天會有異常的轉變速率(pt(y)/pt(x)p_t(y)/p_t(x)pt(x)p_t(x) 很小時很大),即使 chain 本身 reversible 也看得出來。具體地,2 狀態、從全晴出發、S→R rate 0.20.2、R→S rate 0.40.4(每天):pt(R)=13(1e0.6t)p_t(\text{R})=\tfrac13(1-e^{-0.6t}),倒著播的 R→S rate 是 0.2pt(S)/pt(R)0.2\,p_t(\text{S})/p_t(\text{R}),在 t0t\to0 時像 1/t1/t 一樣爆掉——倒帶影片裡靠近起點的雨天會「不自然地」立刻放晴,因為它們必須在時刻 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:倒帶後無法分辨

先消化一下

想一想

一段排隊人數的縮時影片(每分鐘一格,人數 0 到 10)。已知這個排隊系統「每分鐘隨機來 0 或 1 人、隨機走 0 或 1 人,來與走的機率都不依賴人數」,而且已經運作很久、處於 stationary。你能分辨影片方向嗎?

想一想

倒著播的 rate R^t(x,y)=R(y,x)pt(y)/pt(x)\hat R_t(x,y)=R(y,x)\,p_t(y)/p_t(x) 裡,比值 pt(y)/pt(x)p_t(y)/p_t(x) 為什麼會出現?

想一想

三種天的 chain 滿足 detailed balance(ε=1\varepsilon=1),但影片是從「連續十天大雨之後」開始錄的、只錄了三十天。關於分辨方向:

參考文獻

  1. Kelly, F. P. Reversibility and Stochastic Networks. Wiley, 1979(Cambridge University Press 重印 2011).(第 1 章:reversed process、detailed balance、Kolmogorov 判準。)
  2. Norris, J. R. Markov Chains. Cambridge University Press, 1997.(1.9 節與 3.7 節 time reversal。)
  3. Levin, D. A., Peres, Y. Markov Chains and Mixing Times, 2nd ed. AMS, 2017.(1.6 節 reversibility 與 time reversal。)