建構機率路徑與速度場:條件高斯、仿射流與「直線」的真正意思
B12 說:FM 要能 simulation-free 地訓練,需要一個能直接抽樣的條件路徑 \(p_t(\cdot\mid\mathbf z)\),和一個有封閉形式的條件速度 \(\mathbf v_t(\cdot\mid\mathbf z)\)。這一頁實際把它們造出來。起點是唯一完全算得出來的情形:兩端都是高斯。從它得到兩種造法:先指定每個時刻的條件分佈(Euler 觀點),或先指定粒子怎麼走(Lagrange 觀點)。兩種造法最後都落到同一個訓練目標 \(a_t'\mathbf x_0+b_t'\mathbf x_1\);在 \(a_t=1-t\)、\(b_t=t\) 時就是常見的 \(\mathbf x_1-\mathbf x_0\)。最後一節提醒:每條條件路徑都是直線,生成時走的邊際軌跡卻通常是彎的。
讀完這頁你應該能夠
- 對高斯機率路徑 \(\mathcal N(\bm\mu(t),\sigma^2(t)\mathbf I)\) 和它的仿射 flow map,推出速度場 \(\frac{\sigma'(t)}{\sigma(t)}(\mathbf x-\bm\mu(t))+\bm\mu'(t)\)。
- 說出雙側(「光束」)和單側(「聚光燈」)條件路徑各自怎麼選 \(\pi(\mathbf z)\)、條件路徑和條件速度,並證明兩者的 CFM 目標有相同的最小化解。
- 用 \(\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1\) 的表格比較 VE、VP、FM/RF、三角函數插值,並說明 Gaussian FM 和 diffusion 的關係。
- 從條件仿射流 \(\bm\mu_t(\mathbf z)+\mathbf A_t(\mathbf z)\mathbf x_0\) 推出條件速度,並說明「先指定路徑」和「先指定流」各自的長處。
- 用一維高斯反例解釋:條件路徑是直線,不代表邊際 ODE 的軌跡是直線,也不代表一步 Euler 就夠。
前置知識
- B12:FM 的三個步驟、CFM 損失、邊際速度是條件速度的後驗平均、連續方程不唯一決定速度場、flow map 與 Euler 速度 \(\mathbf v_t=\partial_t\bm\Psi_{0\to t}\circ\bm\Psi_{0\to t}^{-1}\)。
- B10:VE、VP 的擾動核,以及哪些 \((\alpha_t,\sigma_t)\) 是合法的 diffusion(SNR 不增)。
- 仿射變換下的高斯:\(\mathbf x\sim\mathcal N(\bm m,\mathbf S)\Rightarrow\mathbf A\mathbf x+\mathbf c\sim\mathcal N(\mathbf A\bm m+\mathbf c,\mathbf A\mathbf S\mathbf A^\top)\)。
「書 §」標出原文位置。灰框「轉述者補充」是書裡沒有的內容;藍框「推導」展開書中省略的步驟。
01兩種建構觀點書 §5.3
Flow matching 的本質是把來源分佈逐漸變成目標分佈。要引導這個轉變,需要兩個元素:機率路徑 \(p_t\),給出每個時刻分佈的快照;和速度場 \(\mathbf v_t\),描述個別粒子沿路徑怎麼移動。兩者不是獨立的,由連續方程連在一起,保證粒子的動態和分佈的演化一致。所以學習任務化約成找一個能忠實推動這個過程的速度場 \(\mathbf v_t\)。困難是:對一般複雜的分佈,真正的邊際速度 \(\mathbf v_t\) 是未知的,回歸目標拿不到。
Conditional Flow Matching 的核心想法是造一個人工、但好處理的過程:引入條件變數 \(\mathbf z\),刻意把條件速度 \(\mathbf v_t(\mathbf x_t\mid\mathbf z)\) 和/或條件路徑 \(p_t(\mathbf x_t\mid\mathbf z)\) 設計得很簡單。因為這些條件物件有封閉形式,它們可以當替代的回歸目標,得到合法的訓練損失 \(\mathcal L_{\text{CFM}}\),前提是兩個實務要求成立:(i) 能有效率地從 \(p_t(\cdot\mid\mathbf z)\) 抽樣;(ii) 對應的 \(\mathbf v_t(\cdot\mid\mathbf z)\) 有封閉形式。
怎麼設計一個行為良好的條件過程?書從唯一完全理解的情形找靈感:高斯到高斯的橋(第 2 節)。這個例子突顯兩個自然的設計策略:每個時刻都用高斯機率路徑,或指定一個仿射的速度場,兩者都可以解析處理。依此把建構推廣到一般的端點分佈,用兩個互補的觀點(也見書附錄 B 的連續時間極限,B34),它們對應運送的古典 Euler 和 Lagrange 描述:
- 先指定條件機率路徑(Euler 觀點)。先給條件密度路徑 \(p_t(\cdot\mid\mathbf z)\),再找滿足連續方程的條件速度 \(\mathbf v_t(\cdot\mid\mathbf z)\)。因為密度路徑本身一般不唯一決定速度,這個建構還需要選一個相容的速度場。
- 先指定條件流(Lagrange 觀點)。改成透過條件 flow map \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\) 指定個別粒子怎麼走。密度由 pushforward 得到;flow map 可逆時,對應的 Euler 速度場是 \(\mathbf v_t=\partial_t\bm\Psi_{0\to t}\circ\bm\Psi_{0\to t}^{-1}\)。
第 3 節詳談第一種,它和 B12 第 2 節的 diffusion 建構非常相似;第 4 節介紹第二種。兩個觀點合起來提供定義 \(p_t(\mathbf x_t\mid\mathbf z)\) 和 \(\mathbf v_t(\mathbf x_t\mid\mathbf z)\) 的實用框架,讓訓練 simulation-free,也能在任意的來源與目標分佈之間造流。
Euler 觀點和 Lagrange 觀點是什麼意思
這兩個名詞來自流體力學。Euler 觀點站在固定的位置 \(\mathbf x\) 看:這裡現在的密度 \(p_t(\mathbf x)\) 是多少、經過這裡的流速 \(\mathbf v_t(\mathbf x)\) 是多少。Lagrange 觀點跟著一個粒子走:它從 \(\mathbf y\) 出發,時間 \(t\) 在 \(\bm\Psi_{0\to t}(\mathbf y)\)。兩者的換算就是「在位置 \(\mathbf x\) 的速度 = 現在剛好在 \(\mathbf x\) 的那個粒子的速度」:先用 \(\bm\Psi_{0\to t}^{-1}(\mathbf x)\) 找出那個粒子的起點,再對它的軌跡微分。這正是 \(\mathbf v_t=\partial_t\bm\Psi_{0\to t}\circ\bm\Psi_{0\to t}^{-1}\)。
02關鍵特例:高斯到高斯的橋書 §5.3.1
先看兩端都是高斯的情形,這時可以解析地算出邊際密度 \(p_t(\mathbf x_t)\) 和速度場 \(\mathbf v_t(\mathbf x_t)\)。它會是之後一般條件建構的範本。
當 \(p_{\text{src}}\)、\(p_{\text{tgt}}\) 都是高斯,速度場 \(\mathbf v_t(\cdot)\) 有封閉形式。考慮內插的邊際密度路徑
$$p_t(\mathbf x_t)=\mathcal N\big(\mathbf x_t;\bm\mu(t),\sigma^2(t)\mathbf I\big),$$平均 \(\bm\mu(t)\) 和變異數 \(\sigma^2(t)>0\) 隨時間變化。兩端是 \(p_{\text{src}}=p_0=\mathcal N(\bm\mu(0),\sigma^2(0)\mathbf I)\)、\(p_{\text{tgt}}=p_1=\mathcal N(\bm\mu(1),\sigma^2(1)\mathbf I)\),所以路徑 \(\{p_t\}\) 連起這兩個分佈。
對這條路徑,其實有很多速度場都能誘導出滿足「\(\mathbf x\sim p_0\Rightarrow\bm\Psi_{0\to t}(\mathbf x)\sim p_t\)」的 ODE 流(B12 的 Demo B 就是一例)。一個特別簡單的實現是
先標準化,再用時間 \(t\) 的平均和標準差還原。書的註腳:Lipman et al. (2022) 用的是 \(\bm\Psi_{0\to t}(\mathbf x)=\bm\mu(t)+\sigma(t)\mathbf x\),它需要對 \(\bm\mu(t)\)、\(\sigma(t)\) 加限制才能滿足邊界條件;書改用等價、但已經標準化的寫法,避開這些限制。
對這條高斯路徑(每個 \(t\) 都是高斯),誘導出上面那個 ODE 流的速度場被唯一且解析地刻畫如下(Lipman et al. 2022):
證明(書)
考慮以 \(\mathbf y\) 為初始條件的 ODE:\(\frac{d}{dt}\bm\Psi_{0\to t}(\mathbf y)=\mathbf v_t(\bm\Psi_{0\to t}(\mathbf y))\)。因為 \(\sigma(t)>0\),\(\bm\Psi_{0\to t}\) 可逆;令 \(\mathbf x=\bm\Psi_{0\to t}(\mathbf y)\)、\(\mathbf y=\bm\Psi_{0\to t}^{-1}(\mathbf x)=\bm\Psi_{t\to0}(\mathbf x)\),得到 \(\bm\Psi_{0\to t}'\big(\bm\Psi_{0\to t}^{-1}(\mathbf x)\big)=\mathbf v_t(\mathbf x)\)(\('\) 是對 \(t\) 微分)。對 \(t\) 微分 flow map:
$$\bm\Psi_{0\to t}'(\mathbf y)=\bm\mu'(t)+\sigma'(t)\Big(\frac{\mathbf y-\bm\mu(0)}{\sigma(0)}\Big).$$反解起點:\(\mathbf y=\bm\mu(0)+\sigma(0)\frac{\mathbf x-\bm\mu(t)}{\sigma(t)}\),所以 \(\frac{\mathbf y-\bm\mu(0)}{\sigma(0)}=\frac{\mathbf x-\bm\mu(t)}{\sigma(t)}\)。代回去:
$$\mathbf v_t(\mathbf x)=\bm\mu'(t)+\sigma'(t)\,\frac{\mathbf x-\bm\mu(t)}{\sigma(t)}.\qquad\blacksquare$$直覺:粒子的「標準化座標」\((\mathbf x-\bm\mu(t))/\sigma(t)\) 在整個過程中保持不變。速度分成兩部分:跟著中心平移(\(\bm\mu'\)),加上依標準差的相對變化率 \(\sigma'/\sigma\) 往中心收縮或往外擴張。
書提醒:對一個固定的 flow map \(\bm\Psi_{0\to t}\)(先指定流的觀點),速度由 \(\mathbf v_t=\partial_t\bm\Psi_{0\to t}\circ\bm\Psi_{0\to t}^{-1}\) 唯一決定,而且 \((p_t,\mathbf v_t)\) 自動滿足連續方程。相反地,只給密度路徑 \(t\mapsto p_t\)、不固定 \(\bm\Psi_{0\to t}\)(先指定路徑的觀點)時,速度場不唯一。這個區別精確地刻畫了兩種觀點的差別。
這個封閉形式在以潛在變數 \(\mathbf z\) 為條件時仍然成立。下面用這個洞見造條件高斯路徑 \(p_t(\cdot\mid\mathbf z)\),並推出對應的條件速度場 \(\mathbf v_t(\cdot\mid\mathbf z)\)。
03先指定條件機率路徑書 §5.3.2
轉述者注:書的圖和圖說把落在 \(p_{\text{tgt}}\) 的點叫 \(\mathbf x_0\)、落在 \(p_{\text{src}}\) 的點叫 \(\mathbf x_1\)(圖說寫「\(\mathbf x_0\sim p_{\text{tgt}}\)、\(\mathbf x_1\sim p_{\text{src}}\)」),用的是 diffusion 時鐘的標記;正文和本頁都用 FM 慣例 \(\mathbf x_0\sim p_{\text{src}}\)、\(\mathbf x_1\sim p_{\text{tgt}}\)。看圖時只要記得:中格是「以一個資料點為條件」(正文的 \(\mathbf z=\mathbf x_1\)),右格是「以一個來源點為條件」(\(\mathbf z=\mathbf x_0\))。左格的標記和正文一致。
目標是先造條件密度路徑 \(p_t(\cdot\mid\mathbf z)\),再(用上面的命題)推出對應的條件速度場 \(\mathbf v_t(\cdot\mid\mathbf z)\)。依 \(\mathbf z\) 的選法有兩種自然的情形:(i) 雙側條件化 \(\mathbf z=(\mathbf x_0,\mathbf x_1)\);(ii) 單側條件化 \(\mathbf z=\mathbf x_0\) 或 \(\mathbf x_1\)。兩種情形下,建構都必須符合邊界分佈:
$$p_{\text{src}}(\mathbf x_0)=\int p_0(\mathbf x_0\mid\mathbf z)\pi(\mathbf z)\,d\mathbf z,\qquad p_{\text{tgt}}(\mathbf x_1)=\int p_1(\mathbf x_1\mid\mathbf z)\pi(\mathbf z)\,d\mathbf z.$$具體建構一旦指定,驗證這些限制很直接,所以書不強調驗證步驟。
I. 雙側 \(\mathbf z=(\mathbf x_0,\mathbf x_1)\):「光束」路徑
選 \(\pi(\mathbf z)\)。考慮 \(\mathbb R^D\) 上一般的 \(p_{\text{src}}\)、\(p_{\text{tgt}}\)。令 \(\mathbf x_0\sim p_{\text{src}}\)、\(\mathbf x_1\sim p_{\text{tgt}}\) 獨立:\(\pi(\mathbf z)=p_{\text{src}}(\mathbf x_0)\,p_{\text{tgt}}(\mathbf x_1)\)。
選條件路徑。用線性內插加上一個固定、很小的變異數 \(\sigma>0\):
$$p_t(\mathbf x_t\mid\mathbf z=(\mathbf x_0,\mathbf x_1))=\mathcal N(\mathbf x_t;a_t\mathbf x_0+b_t\mathbf x_1,\sigma^2\mathbf I),$$\(a_t\)、\(b_t\) 是時間的函數,滿足 \(a_0=1,b_0=0\)、\(a_1=0,b_1=1\)。Lipman et al. (2022) 和 Liu et al. (2022) 建議的選擇是 \(a_t=1-t\)、\(b_t=t\)。在確定性的情形 \(\sigma=0\),條件路徑是 \(p_t(\mathbf x_t\mid\mathbf z)=\delta\big(\mathbf x_t-[a_t\mathbf x_0+b_t\mathbf x_1]\big)\):一條從 \(\mathbf x_0\) 到 \(\mathbf x_1\) 的確定性內插路徑。
書的註腳:也可以保留固定的條件變異數 \(\sigma^2\mathbf I\)。因為變異數不隨時間變,條件速度仍然是 \(a_t'\mathbf x_0+b_t'\mathbf x_1\);但兩端的邊際會變成 \(p_{\text{src}}\)、\(p_{\text{tgt}}\) 的高斯平滑版本,在 \(\sigma\to0\) 時趨近想要的端點。
推出條件速度。由上面的命題,
套用命題的那一步
以 \(\mathbf z=(\mathbf x_0,\mathbf x_1)\) 為條件,路徑是 \(\bm\mu(t)=a_t\mathbf x_0+b_t\mathbf x_1\)、標準差 \(\sigma(t)\equiv\sigma\) 的高斯。\(\sigma'(t)=0\),所以命題的第一項消失,剩下 \(\bm\mu'(t)=a_t'\mathbf x_0+b_t'\mathbf x_1\)。它甚至不依賴 \(\mathbf x\):每個條件粒子都以同一個速度平移。\(a_t=1-t,b_t=t\) 時就是常數向量 \(\mathbf x_1-\mathbf x_0\)。
CFM 損失。\(\sigma=0\)、\(\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1\) 時,CFM 損失化為
$$\mathcal L_{\text{CFM}}=\mathbb E_{t,\,\mathbf x_0\sim p_{\text{src}},\,\mathbf x_1\sim p_{\text{tgt}}}\Big\Vert\mathbf v_{\bm\phi}(\mathbf x_t,t)-\big(a_t'\mathbf x_0+b_t'\mathbf x_1\big)\Big\Vert^2.$$由 B12 的邊際速度式和 CFM 定理,最佳速度場是
$$\mathbf v^*(\mathbf x_t,t)=\mathbb E[\mathbf x_t'\mid\mathbf x_t]=\mathbb E\big[a_t'\mathbf x_0+b_t'\mathbf x_1\mid\mathbf x_t\big],$$期望對 \(p(\mathbf x_0,\mathbf x_1\mid\mathbf x_t)\) 取:所有可能產生觀測到的內插點 \(\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1\) 的來源–目標配對的條件分佈。(\(\mathbf x_t'\) 是內插點對 \(t\) 的導數。)
II. 單側 \(\mathbf z=\mathbf x_0\) 或 \(\mathbf x_1\):「聚光燈」路徑
在單側設定下示範這個建構,考慮標準的生成設定 \(p_{\text{src}}=\mathcal N(\mathbf 0,\mathbf I)\)、\(p_{\text{tgt}}=p_{\text{data}}\)。書強調:這個高斯來源不是額外的假設,而是下面定義的條件路徑直接造成的。任意端點的一般處理在第 4 節。
選 \(\pi(\mathbf z)\)。取 \(\mathbf z=\mathbf x_1\)、\(\pi(\mathbf z)=p_{\text{data}}(\mathbf x_1)\)(\(\mathbf z=\mathbf x_0\sim p_{\text{prior}}\) 的情形類似)。
選條件路徑。對固定的 \(\mathbf x_1\sim p_{\text{data}}\),定義
$$p_t(\mathbf x_t\mid\mathbf z=\mathbf x_1)=\mathcal N\big(\mathbf x_t;b_t\mathbf x_1,a_t^2\mathbf I\big),$$\(a_0=1,b_0=0,a_1=0,b_1=1\)(通常理解成極限)。在兩端:\(p_0(\cdot\mid\mathbf x_1)=\mathcal N(\cdot;\mathbf 0,\mathbf I)\)、\(p_1(\cdot\mid\mathbf x_1)=\delta(\cdot-\mathbf x_1)\)。對 \(\mathbf x_1\) 取邊際,得到 \(p_0=\mathcal N(\mathbf 0,\mathbf I)\)(和 \(p_{\text{data}}\) 無關)、\(p_1=p_{\text{data}}\)。
為什麼來源「自動」是高斯
\(t=0\) 時條件分佈是 \(\mathcal N(\mathbf 0,\mathbf I)\),對每個 \(\mathbf x_1\) 都一樣。對 \(\pi\) 取平均,一堆相同的高斯平均起來還是它自己:\(p_0=\int\mathcal N(\cdot;\mathbf 0,\mathbf I)\,p_{\text{data}}(\mathbf x_1)\,d\mathbf x_1=\mathcal N(\cdot;\mathbf 0,\mathbf I)\)。\(t=1\) 時條件分佈是點質量 \(\delta(\cdot-\mathbf x_1)\),平均起來就是 \(p_{\text{data}}\) 本身。所以「來源是高斯」是這個條件路徑的結果,不是另外要求的。
推出條件速度。對 \(a_t>0\) 的 \(t\in(0,1)\),把命題套用到這條條件高斯路徑:
套用命題的那一步
以 \(\mathbf x_1\) 為條件,\(\bm\mu(t)=b_t\mathbf x_1\)、\(\sigma(t)=a_t\)。命題給出 \(\frac{a_t'}{a_t}(\mathbf x-b_t\mathbf x_1)+b_t'\mathbf x_1\)。這次 \(\sigma(t)\) 會變(從 1 縮到 0),所以速度依賴 \(\mathbf x\):離圓錐中心 \(b_t\mathbf x_1\) 越遠的點,被拉回中心的速度越大(\(a_t'<0\))。這就是 B12 那張條件化圖裡的綠色箭頭。
單側 CFM 目標。\(t\sim\mathcal U(0,1)\)(或任何固定的抽樣分佈)、\(\mathbf x_1\sim p_{\text{data}}\),CFM 損失變成
$$\mathcal L_{\text{CFM}}=\mathbb E_{t,\mathbf x_1}\mathbb E_{\mathbf x_t\sim p_t(\cdot\mid\mathbf x_1)}\Big\Vert\mathbf v_{\bm\phi}(\mathbf x_t,t)-\Big[b_t'\mathbf x_1+\tfrac{a_t'}{a_t}\big(\mathbf x_t-b_t\mathbf x_1\big)\Big]\Big\Vert_2^2.$$由 MSE 的最佳性,唯一的最小化解是邊際速度場
$$\mathbf v^*(\mathbf x,t)=\mathbb E\big[\mathbf v_t(\mathbf x\mid\mathbf x_1)\,\big|\,\mathbf x_t=\mathbf x\big]=\mathbb E\big[a_t'\mathbf x_0+b_t'\mathbf x_1\,\big|\,\mathbf x_t=\mathbf x\big].$$和雙側目標等價。對配對的樣本 \((\mathbf x_0,\mathbf x_1)\),\(\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1\):
$$\mathbf v_t(\mathbf x_t\mid\mathbf x_1)=b_t'\mathbf x_1+\tfrac{a_t'}{a_t}\big(\mathbf x_t-b_t\mathbf x_1\big)=a_t'\mathbf x_0+b_t'\mathbf x_1.$$代數
\(\mathbf x_t-b_t\mathbf x_1=a_t\mathbf x_0\),所以 \(\tfrac{a_t'}{a_t}(\mathbf x_t-b_t\mathbf x_1)=a_t'\mathbf x_0\)。因此,抽樣時用來造 \(\mathbf x_t\) 的那個 \(\mathbf x_0\)(\(\mathbf x_t\sim p_t(\cdot\mid\mathbf x_1)\) 就是 \(b_t\mathbf x_1+a_t\mathbf x_0\)、\(\mathbf x_0\sim\mathcal N(\mathbf 0,\mathbf I)\)),讓單側的目標逐樣本地等於雙側的目標。兩個損失不只最小化解相同,在同一批 \((t,\mathbf x_0,\mathbf x_1)\) 上連數值都完全一樣。
所以單側損失回歸的是雙側目標在給定 \(\mathbf x_t\) 下的條件期望:\(\mathbf v^*(\mathbf x,t)=\mathbb E[a_t'\mathbf x_0+b_t'\mathbf x_1\mid\mathbf x_t=\mathbf x]\),單側和雙側的 CFM 目標有相同的最小化解。
Gaussian FM = Diffusion Model
用 FM 的慣例,\(t=0\) 是來源/先驗、\(t=1\) 是目標/資料:\(p_{\text{src}}=p_{\text{prior}}\)、\(p_{\text{tgt}}=p_{\text{data}}\)。相對地,diffusion model 通常從資料往雜訊編時間(\(t=0\) 是資料、\(t=1\) 是先驗)。主要討論用 FM 的編號;但為了比較,下表的 VE、VP 兩欄保留它們平常的 diffusion 時間編號。
如果再加上 \(p_{\text{src}}=\mathcal N(\mathbf 0,\mathbf I)\),那麼對固定的條件 \(\mathbf x_1\sim p_{\text{data}}\),條件路徑 \(p_t(\cdot\mid\mathbf x_1)\) 自然取成高斯,而目標分佈 \(p_{\text{tgt}}\) 本身不必是高斯。這種條件高斯路徑的設定叫 Gaussian FM。diffusion 的機率路徑是這類高斯路徑的一個重要子類。但一般的高斯時程不一定對應一個合法的前向 diffusion SDE:時程還必須滿足 B10 Lemma 的 SDE 相容條件。
選 \(a_t=1-t\)、\(b_t=t\)(在 diffusion model 裡用 \(a_t:=\sigma_t\)、\(b_t:=\alpha_t\) 重新命名,等價於 \(\alpha_t=t\)、\(\sigma_t=1-t\))就還原了熟悉的 FM/RF 時程(Lipman et al. 2022;Liu et al. 2022)。
| VE | VP | FM/RF | 三角函數(Albergo et al. 2023) | |
|---|---|---|---|---|
| \(a_t\)(先驗係數) | \(a_t\) | \(\sqrt{1-b_t^2}\) | \(1-t\) | \(\cos(\tfrac\pi2t)\) |
| \(b_t\)(資料係數) | \(1\) | \(b_t\) | \(t\) | \(\sin(\tfrac\pi2t)\) |
| \(a_0\) | 0 | 0 | 1 | 1 |
| \(b_0\) | 1 | 1 | 0 | 0 |
| \(a_1\) | \(a_1\) | 1 | 0 | 0 |
| \(b_1\) | 1 | 0 | 1 | 1 |
| \(p_{\text{prior}}\) | \(p_{\text{data}}*\mathcal N(\mathbf 0,a_1^2\mathbf I)\approx\mathcal N(\mathbf 0,a_1^2\mathbf I)\) | \(\mathcal N(\mathbf 0,\mathbf I)\) | \(\mathcal N(\mathbf 0,\mathbf I)\) | \(\mathcal N(\mathbf 0,\mathbf I)\) |
讀這張表的兩個小提醒
(1) 三角函數那欄滿足 \(a_t^2+b_t^2=\cos^2+\sin^2=1\),和 VP 欄的 \(a_t=\sqrt{1-b_t^2}\) 是同一個條件:它是一條變異數保持(VP 型)的路徑,只是用 FM 的時間方向寫。FM/RF 則不是:\(t=\tfrac12\) 時 \(a_t^2+b_t^2=\tfrac12\)。(2) VE、VP 兩欄的 \(a_0=0\)、\(b_0=1\) 是因為那兩欄 \(t=0\) 在資料端;把時間翻過來(\(t\mapsto1-t\)),它們的端點就和右兩欄一致。
在 Gaussian FM 的設定下,光束型和聚光燈型的條件路徑都導出和標準 diffusion 損失相似的訓練目標。第 6 章(B15–B17)會詳細說明:Gaussian FM 其實可以等價地解讀成在線性時程 \(a_t=1-t\)、\(b_t=t\) 下訓練來預測速度的 diffusion model。這個觀點突顯 flow matching 和 diffusion 沒有根本的不同,而是可以互相轉換的兩種等價寫法。Gaussian FM 的目標在實務上特別吸引人:損失 \(\mathbb E_{t,\mathbf x_t}\big[\Vert\mathbf v_{\bm\phi}(\mathbf x_t,t)-(\mathbf x_1-\mathbf x_0)\Vert_2^2\big]\) 很簡單,而且已被證明在大規模下有競爭力(Esser et al. 2024)。
Demo A同一組端點,兩種時程轉述者補充
來源 \(\mathcal N(0,1)\)、目標是 B08–B12 的 \(0.6\,\mathcal N(1.2,0.25^2)+0.4\,\mathcal N(-1,0.2^2)\),獨立配對。比較表裡的 FM/RF(\(a_t=1-t\)、\(b_t=t\))和三角函數(\(a_t=\cos\frac{\pi t}2\)、\(b_t=\sin\frac{\pi t}2\))兩種時程。這個例子的邊際速度 \(v^*(x,t)=\mathbb E[a_t'x_0+b_t'x_1\mid x_t=x]\) 可以精確算出(和 B12 Demo A 同樣的聯合高斯公式)。上圖是 \(p_t\)(深淺)和 16 條精確的邊際 ODE 軌跡;下圖是用 \(N\) 步 Euler 解這條 ODE 得到的 2,000 個樣本。
上圖的深淺在每個 \(t\) 各自正規化,只看形狀。FM/RF 時程下,分佈先往中間收窄(\(t=\tfrac12\) 時變異數是 \(\tfrac14+\tfrac14\operatorname{Var}(x_1)\approx0.55\)),藍色軌跡在 \(t\approx0.5\) 之後分成兩束;三角函數時程滿足 \(a_t^2+b_t^2=1\),變異數一路保持在 1 附近,軌跡一直張開,到 \(t\approx0.65\) 之後才分開。瀏覽器實測,和精確 ODE 終點(RK4 200 步)的平均距離:
| Euler 步數 \(N\) | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
|---|---|---|---|---|---|---|---|
| FM/RF | 1.064 | 0.442 | 0.134 | 0.071 | 0.038 | 0.019 | 0.010 |
| 三角函數 | 0.436 | 0.249 | 0.068 | 0.033 | 0.017 | 0.009 | 0.005 |
三件事值得注意。(1) FM/RF 的 \(N=1\):2,000 個樣本全部落在 \(0.320=\mathbb E[x_1]\)(讀數的「上團 100%」只是因為 0.32 > 0),正是第 6 節補充框說的塌縮。三角函數的 \(N=1\) 則是把整個 \(\mathcal N(0,1)\) 平移 \(\tfrac\pi2\cdot0.32\),平均 0.494,也沒有分成兩團。(2) 步數加倍,誤差大約減半,這是 Euler 法的一階收斂;在這個例子裡,三角函數時程的誤差在每個 \(N\) 都大約是 FM/RF 的一半。這只是這個例子的觀察,不是一般結論;哪種時程比較好積分,第 9 章(B24–B27)會從 solver 的角度再談。(3) 讀數最後一行:兩種時程的精確終點最大只差 \(7\times10^{-7}\)(RK4 的數值誤差)。這是一維的特性:ODE 的軌跡不會交叉,所以從 \(\mathcal N(0,1)\) 到 \(p_{\text{data}}\) 的終點映射必定是保序的那一個(分位數對分位數),時程只改變中間怎麼走。高維時沒有這個限制,不同的時程一般會給出不同的配對。
04先指定條件流書 §5.3.3
這一節處理一般情形:端點 \(p_{\text{src}}\)(在 \(t=0\))和 \(p_{\text{tgt}}\)(在 \(t=1\))是任意的。目標是直接在軌跡空間設計一個條件流,把樣本從 \(p_{\text{src}}\) 運到 \(p_{\text{tgt}}\),並得到可以當回歸目標的封閉形式 \(\mathbf v_t(\mathbf x_t\mid\mathbf z)\)。
動機。不先設計條件密度路徑,而是直接指定一個沿軌跡移動樣本的條件 flow map \(\bm\Psi_{0\to t}(\cdot;\mathbf z)\)。這有兩個實務好處:(i) 沿軌跡對時間微分,立刻得到訓練用的回歸目標;(ii) 在有幾何結構的空間上(Riemann 流形、Lie 群、受限的子流形),直接從幾何造條件 flow map 往往很自然(例如測地線、指數映射或 premetric;Lipman et al. 2024),能得到解析、simulation-free 的目標速度。
條件仿射流(連到第 2 節的命題)
固定一個條件變數 \(\mathbf z\sim\pi\)(例如單側「聚光燈」訓練裡的 \(\mathbf z=\mathbf x_1\sim p_{\text{tgt}}\)),把 \(\mathbf x_0\sim p_{\text{src}}\) 透過隨時間變化的條件仿射流 pushforward:
\(\bm\mu_t(\mathbf z)\in\mathbb R^D\),\(\mathbf A_t(\mathbf z)\in\mathbb R^{D\times D}\) 在 \(t\in(0,1)\) 可逆。邊界 \(\mathbf A_0(\mathbf z)=\mathbf I\)、\(\bm\mu_0(\mathbf z)=\mathbf 0\) 在 \(t=0\) 還原 \(p_{\text{src}}\)。\(t\to1\) 的邊界習慣上理解成極限:終端映射可能把質量集中到一個低維的集合或一個點上。(書的註腳:允許 \(\mathbf A_1(\mathbf z)\) 奇異,例如 \(\mathbf 0\),和在 \((0,1)\) 上可逆並不衝突,它讓路徑在 \(t=1\) 收縮到指定的端點。)
誘導出的條件路徑。這個建構定義了
$$p_t(\cdot\mid\mathbf z)=\big(\bm\Psi_{0\to t}(\cdot;\mathbf z)\big)_\#p_{\text{src}},\qquad p_t(\cdot)=\int p_t(\cdot\mid\mathbf z)\pi(\mathbf z)\,d\mathbf z.$$在 \(\mathcal L_{\text{CFM}}\) 裡真正要緊的是怎麼抽樣:先抽 \(\mathbf z\sim\pi\),再抽 \(\mathbf x_0\sim p_{\text{src}}\),最後令 \(\mathbf x_t=\bm\mu_t(\mathbf z)+\mathbf A_t(\mathbf z)\mathbf x_0\)。
書提醒:當 \(\bm\Psi_{0\to t}\) 對 \(\mathbf x_0\) 是仿射的,\(p_t(\cdot\mid\mathbf z)\) 是高斯若且唯若 \(p_{\text{src}}\) 是高斯。特別是,對任意(非高斯)的 \(p_{\text{src}}\),仿射流一般給出非高斯的 \(p_t(\cdot\mid\mathbf z)\)。
為什麼是「若且唯若」
(⟸)高斯的仿射像是高斯:\(\mathbf A\mathbf x_0+\bm\mu\sim\mathcal N(\mathbf A\bm m+\bm\mu,\mathbf A\mathbf S\mathbf A^\top)\)。(⟹)在 \(t\in(0,1)\),\(\mathbf A_t\) 可逆,\(\mathbf x_0=\mathbf A_t^{-1}(\mathbf x_t-\bm\mu_t)\) 也是 \(\mathbf x_t\) 的仿射函數;若 \(\mathbf x_t\) 是高斯,\(\mathbf x_0\) 也必須是。所以這一節的建構可以處理非高斯的來源,代價是條件路徑不再是高斯,但沒關係:訓練只需要「能抽樣」和「有封閉形式的條件速度」,不需要條件密度本身。
推出條件速度。條件速度 \(\mathbf v_t(\cdot\mid\mathbf z)\) 由對條件 flow map 的 \(t\) 微分得到。仿照第 2 節命題的推導,考慮以 \(\mathbf y\) 為初始條件、由 \(\bm\Psi_{0\to t}(\mathbf y;\mathbf z)\) 定義的條件 ODE,目標是找出對應的條件速度場:
$$\frac{d}{dt}\bm\Psi_{0\to t}(\mathbf y;\mathbf z)=\mathbf v_t\Big(\underbrace{\bm\Psi_{0\to t}(\mathbf y;\mathbf z)}_{\mathbf x}\,\Big|\,\mathbf z\Big).$$因為 \(\bm\Psi_{0\to t}(\cdot;\mathbf z)\) 在 \(t\in(0,1)\) 可逆,可以把到達目前狀態 \(\mathbf x\) 的起點寫成 \(\mathbf y=\bm\Psi_{0\to t}^{-1}(\mathbf x;\mathbf z)=\bm\Psi_{t\to0}(\mathbf x;\mathbf z)\)。所以對應的 Euler 速度場是
$$\mathbf v_t(\mathbf x\mid\mathbf z):=\left.\frac{\partial}{\partial t}\bm\Psi_{0\to t}(\mathbf y;\mathbf z)\right|_{\mathbf y=\bm\Psi_{0\to t}^{-1}(\mathbf x;\mathbf z)}.$$也就是:先固定起點 \(\mathbf y\)、對前向 flow map 的 \(t\) 微分,再代入「軌跡在時間 \(t\) 到達 \(\mathbf x\)」的那個起點。因為 \(\mathbf x_t=\bm\mu_t(\mathbf z)+\mathbf A_t(\mathbf z)\mathbf x_0\) 且 \(\mathbf A_t(\mathbf z)\) 在 \((0,1)\) 可逆,\(\mathbf x_0=\mathbf A_t(\mathbf z)^{-1}(\mathbf x-\bm\mu_t(\mathbf z))\),得到
中間那一步
固定起點 \(\mathbf y\):\(\partial_t\bm\Psi_{0\to t}(\mathbf y;\mathbf z)=\bm\mu_t'(\mathbf z)+\mathbf A_t'(\mathbf z)\mathbf y\)。把 \(\mathbf y=\mathbf A_t(\mathbf z)^{-1}(\mathbf x-\bm\mu_t(\mathbf z))\) 代進去,就是上式。和第 2 節比:\(\mathbf A_t=\tfrac{\sigma(t)}{\sigma(0)}\mathbf I\) 時 \(\mathbf A_t'\mathbf A_t^{-1}=\tfrac{\sigma'(t)}{\sigma(t)}\mathbf I\),正是命題裡的伸縮率。
單側條件化(\(\mathbf z=\mathbf x_1\))。選 \(\bm\mu_t(\mathbf z)=b_t\mathbf z\)、\(\mathbf A_t(\mathbf z)=a_t\mathbf I\),\(a_0=1,a_1=0\)、\(b_0=0,b_1=1\)(\(t\in(0,1)\) 時 \(a_t>0\)),得到
$$\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1,\qquad\mathbf v_t(\mathbf x\mid\mathbf x_1)=b_t'\mathbf x_1+\frac{a_t'}{a_t}\big(\mathbf x-b_t\mathbf x_1\big).$$在配對的樣本 \((\mathbf x_0,\mathbf x_1)\) 上(\(\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1\)),化簡成常用的 CFM 目標 \(\mathbf v_t(\mathbf x_t\mid\mathbf x_1)=a_t'\mathbf x_0+b_t'\mathbf x_1\)。和第 3 節的聚光燈路徑一模一樣,但這次 \(p_{\text{src}}\) 不必是高斯。
雙側條件化(\(\mathbf z=(\mathbf x_0,\mathbf x_1)\))。同一個模板,取 \(\bm\mu_t(\mathbf x_0,\mathbf x_1)=b_t\mathbf x_1\)、\(\mathbf A_t(\mathbf x_0,\mathbf x_1)=a_t\mathbf I\),條件路徑變成確定性的:
$$\mathbf x_t=a_t\mathbf x_0+b_t\mathbf x_1,\qquad p_t(\cdot\mid\mathbf x_0,\mathbf x_1)=\delta\big(\cdot-(a_t\mathbf x_0+b_t\mathbf x_1)\big),$$條件速度是 \(\mathbf v_t(\mathbf x_t\mid\mathbf x_0,\mathbf x_1)=a_t'\mathbf x_0+b_t'\mathbf x_1\),也就是標準的雙側 CFM 目標。
無條件的高斯路徑是特例。若 \(\bm\mu_t\) 不依賴 \(\mathbf z\)(記作 \(\bm\mu(t)\)),且 \(\mathbf A_t=\tfrac{\sigma(t)}{\sigma(0)}\mathbf I\),則
$$\bm\Psi_{0\to t}(\mathbf x_0)=\bm\mu(t)+\sigma(t)\frac{\mathbf x_0-\bm\mu(0)}{\sigma(0)},\qquad\mathbf v_t(\mathbf x)=\bm\mu'(t)+\frac{\sigma'(t)}{\sigma(t)}\big(\mathbf x-\bm\mu(t)\big),$$還原了第 2 節的高斯密度路徑和封閉形式速度。
05先指定路徑 vs. 先指定流書 §5.3.4
兩種建構對應運送的互補描述。先指定機率路徑(Euler)的觀點先給條件密度路徑 \(p_t(\cdot\mid\mathbf z)\),再透過連續方程選一個相容的速度場;因為密度路徑本身一般不唯一決定速度,可能需要額外的運送結構來選定。先指定流(Lagrange)的觀點則指定條件 flow map \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\),直接描述粒子軌跡;對應的密度路徑由 pushforward 得到,映射可逆時,Euler 速度由 \(\mathbf v_t=\partial_t\bm\Psi_{0\to t}\circ\bm\Psi_{0\to t}^{-1}\) 唯一還原。所以兩種建構從不同起點描述同一類運送物件,但一條指定的密度路徑,選出的速度不一定和另外指定的 flow map 相同。
書的結論:條件路徑有封閉形式的速度時,先指定路徑比較自然;對軌跡有很強的結構先驗時,先指定流比較自然。下表整理兩者的對比。
| 面向 | 先指定條件機率路徑 | 先指定條件流 |
|---|---|---|
| 給定 | 條件密度路徑 \(p_t(\cdot\mid\mathbf z)\) | 條件 flow map \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\)(每個固定 \(\mathbf z\) 的軌跡) |
| 怎麼得到速度 | 對每個 \(\mathbf z\),找 \(\mathbf v_t(\cdot\mid\mathbf z)\) 使 \(\partial_tp_t(\cdot\mid\mathbf z)+\nabla\cdot\big(p_t(\cdot\mid\mathbf z)\mathbf v_t(\cdot\mid\mathbf z)\big)=0\)。不唯一:若 \(\nabla\cdot(p_t\mathbf w_t)=0\),\(\mathbf v_t+\mathbf w_t\) 給出同樣的 \(p_t\)。 | 沿路徑(對每個 \(\mathbf z\)):\(\mathbf v_t\big(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\mid\mathbf z\big)=\tfrac{d}{dt}\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\)。\(\bm\Psi_{0\to t}\) 可逆時可以解出 \(\mathbf v_t(\mathbf x\mid\mathbf z)=\partial_t\bm\Psi_{0\to t}(\mathbf y\mid\mathbf z)\big|_{\mathbf y=\bm\Psi_{0\to t}^{-1}(\mathbf x\mid\mathbf z)}\)。 |
| \(\mathbf v_t(\cdot\mid\mathbf z)\) 的封閉形式 | \(p_t(\cdot\mid\mathbf z)\) 是高斯/指數族時方便;否則求 \(\mathbf v_t(\cdot\mid\mathbf z)\) 並不容易。 | \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\) 有結構(仿射、低秩)時方便;不需要計算密度。 |
| \(\mathbf v_t(\cdot\mid\mathbf z)\) 的唯一性 | 對每個 \(\mathbf z\),除非加上選擇規則(例如位勢流、最小動能),否則 \(\mathbf v_t(\cdot\mid\mathbf z)\) 是欠定的。 | 給定 \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\),\(p_t(\cdot\mid\mathbf z)=(\bm\Psi_{0\to t}(\cdot\mid\mathbf z))_\#p_0\) 和粒子軌跡都確定。flow map 可逆時,對應的 Euler 速度場唯一確定;否則不一定存在唯一的全域 Euler 場。 |
| 可實現性 | 必須驗證造出來的 \(\mathbf v_t(\cdot\mid\mathbf z)\) 在預期的支撐上解連續方程。 | 依建構自動成立:\(p_t(\cdot\mid\mathbf z)=(\bm\Psi_{0\to t}(\cdot\mid\mathbf z))_\#p_0(\cdot\mid\mathbf z)\)。 |
| 符合 \((p_{\text{src}},p_{\text{tgt}})\) | 混合條件分佈:\(p_{\text{src}}=\int p_0(\cdot\mid\mathbf z)\pi(\mathbf z)\,d\mathbf z\)、\(p_{\text{tgt}}=\int p_1(\cdot\mid\mathbf z)\pi(\mathbf z)\,d\mathbf z\)。在係數不依賴 \(\mathbf z\) 的高斯–仿射條件路徑下,\(p_{\text{src}}\) 會被迫是高斯。對一般固定的端點 \(p_{\text{src}}\)(可能非高斯),\(p_t(\cdot\mid\mathbf z)\) 的選擇一般不會釘住 \(p_{\text{src}}\)。 | 令 \(\bm\Psi_{0\to0}=\mathrm{Id}\),再選邊界條件去命中任何 \(p_{\text{tgt}}\)。 |
| 適合的情境 | diffusion 式的建構;用條件高斯 \(p_t(\cdot\mid\mathbf z)\) 得到解析目標。 | 透過映射 \(\bm\Psi_{0\to t}(\cdot\mid\mathbf z)\) 加入強結構先驗;容易控制邊界;能處理奇異或低維的端點;自然適合以映射為基礎的正則化或運送成本。 |
06條件路徑直,不代表邊際軌跡直書 §5.3.5
典型的仿射插值 \(\mathbf x_t=(1-t)\mathbf x_0+t\mathbf x_1\) 有一個吸引人的幾何性質:以一對特定的端點 \((\mathbf x_0,\mathbf x_1)\) 為條件,插值是一條以常數速度 \(\mathbf x_1-\mathbf x_0\) 前進的直線。這種條件意義下的「直」在 Flow Matching 和 Rectified Flow 裡被大量使用。
但重要的是區分這些條件插值路徑的直,和生成時使用的邊際 ODE 軌跡的直。在耦合 \(\pi(\mathbf x_0,\mathbf x_1)\) 下,母體最佳的邊際速度是
$$\mathbf v^\star(\mathbf x,t)=\mathbb E\big[\mathbf x_1-\mathbf x_0\,\big|\,\mathbf x_t=\mathbf x\big].$$端點配對的後驗一般隨 \((\mathbf x,t)\) 改變。所以沿著一條邊際 ODE 軌跡遇到的速度不必保持常數,即使訓練用的每條條件插值都是直線。
因此,單單選了典型的仿射時程,並不代表學到的邊際 ODE 恰好是直的,也不代表一步 Euler 就是精確的。Rectified Flow 正是針對這個區別:它的 rectification(或 Reflow)程序改變端點的耦合,讓誘導出的因果流逐步接近直的流(Liu et al. 2022);B14 會詳談。下面的例子把這個區別說清楚。
因為 \((x_1-x_0,\,x_t)\) 是聯合高斯,條件期望對 \(x\) 是線性的:
$$v^*(x,t)=\mathbb E[x_1-x_0\mid x_t=x]=\frac{\operatorname{Cov}(x_1-x_0,\,x_t)}{\operatorname{Var}(x_t)}\,x.$$ 直接計算:\(\operatorname{Var}(x_t)=(1-t)^2\sigma_0^2+t^2\sigma_1^2=:V(t)\),\(\operatorname{Cov}(x_1-x_0,\,x_t)=t\sigma_1^2-(1-t)\sigma_0^2=\tfrac12V'(t)\)。所以 $$v^*(x,t)=\frac{V'(t)}{2V(t)}\,x.$$ 邊際 ODE \(\frac{dz_t}{dt}=v^*(z_t,t)\) 的精確解是 $$z_t=z_0\sqrt{\frac{V(t)}{V(0)}}=z_0\sqrt{(1-t)^2+\frac{\sigma_1^2}{\sigma_0^2}\,t^2}.$$ 時間上的直線插值要求 \(z_t\) 對 \(t\) 是仿射的,也就是 \(z_t=(1-t)z_0+tz_1\)。但 \(\sqrt{(1-t)^2+\frac{\sigma_1^2}{\sigma_0^2}t^2}\) 對任何正的 \(\sigma_0,\sigma_1\) 都不是 \(t\) 的仿射函數,所以 ODE 軌跡一般不是時間上的直線插值。例如 \(\sigma_0=\sigma_1\) 時 \(z_1=z_0\),直線插值就是常數路徑 \(z_t=z_0\);但實際的 ODE 軌跡滿足 \(z_{1/2}=z_0/\sqrt2\ne z_0\)。所以即使每條條件插值都是直的,誘導出的邊際 ODE 軌跡不一定是。例子裡的每一步
變異數與共變異數。\(x_0,x_1\) 獨立、平均 0:\(\operatorname{Var}(x_t)=(1-t)^2\sigma_0^2+t^2\sigma_1^2\);\(\operatorname{Cov}(x_1-x_0,(1-t)x_0+tx_1)=t\operatorname{Var}(x_1)-(1-t)\operatorname{Var}(x_0)=t\sigma_1^2-(1-t)\sigma_0^2\)。對 \(V\) 微分:\(V'(t)=-2(1-t)\sigma_0^2+2t\sigma_1^2\),正好是共變異數的兩倍。
聯合高斯的條件期望。平均為 0 的聯合高斯 \((u,x)\) 滿足 \(\mathbb E[u\mid x]=\frac{\operatorname{Cov}(u,x)}{\operatorname{Var}(x)}x\)(回歸線通過原點)。
解 ODE。\(\frac{dz}{dt}=\frac{V'}{2V}z\) 可以分離變數:\(\frac{dz}{z}=\frac12\frac{V'}{V}dt\),積分得 \(\ln|z_t|-\ln|z_0|=\tfrac12\big(\ln V(t)-\ln V(0)\big)\),所以 \(z_t=z_0\sqrt{V(t)/V(0)}\)。也可以這樣看:\(z_t/\sqrt{V(t)}\) 是常數,粒子在 \(p_t=\mathcal N(0,V(t))\) 裡的標準化座標不變,和第 2 節的高斯命題(\(\mu\equiv0\)、\(\sigma(t)=\sqrt{V(t)}\))一致。
為什麼一步 Euler 會把所有樣本送到同一個點
在 \(t=0\),\(\mathbf x_t=\mathbf x_0\),所以獨立耦合下 \(\mathbf v^\star(\mathbf x,0)=\mathbb E[\mathbf x_1-\mathbf x_0\mid\mathbf x_0=\mathbf x]=\mathbb E[\mathbf x_1]-\mathbf x\)。一步 Euler(\(h=1\))就是 \(\mathbf x+\mathbf v^\star(\mathbf x,0)=\mathbb E[\mathbf x_1]\):不管從哪裡出發,都落在目標分佈的平均。這是「條件路徑直,但邊際軌跡不直」最極端的後果。上面的例子裡 \(\mathbb E[x_1]=0\),一步 Euler 的終點標準差是 0,而不是 \(\sigma_1\);Demo A 的線性時程 \(N=1\) 也一樣,所有樣本都落在 \(\mathbb E[x_1]=0.32\)。(三角函數時程在 \(t=0\) 時 \(a_0'=0\),\(\mathbf v^\star(\mathbf x,0)=\tfrac\pi2\mathbb E[\mathbf x_1]\),一步 Euler 只把整個分佈平移,不會塌成一點,但也不會分成兩團。)
Demo B直線條件路徑,彎曲的邊際軌跡轉述者補充
書中例子的互動版。灰色細線是抽樣的條件路徑 \((1-t)x_0+tx_1\);彩色實線是精確的邊際 ODE 軌跡 \(z_0\sqrt{V(t)/V(0)}\);虛線是同一對端點之間的直線。藍色的點是用 \(N\) 步 Euler 解邊際 ODE 時經過的位置。
預設 \(\sigma_0=2\)、\(\sigma_1=3\)(書的圖):在 \(t=\tfrac12\),ODE 軌跡在 \(0.901\,z_0\),直線插值在 \(1.250\,z_0\)。軌跡先往 0 收縮,再張開到 \(1.5\,z_0\)。Euler 法生成的標準差(真值 3):\(N=1\) 是 0、\(N=2\) 是 1.385、\(N=4\) 是 2.121、\(N=8\) 是 2.531、\(N=16\) 是 2.757、\(N=64\) 是 2.937,永遠偏小。原因是 Euler 用每一步開頭的速度往前走,而在 \(t\) 小時速度把粒子往中心拉;把 \(\sigma_1\) 調到等於 \(\sigma_0\)(端點完全相同、直線插值是靜止不動),\(N=2\) 時 \(z_0\) 只被乘上 0.500(標準差只剩一半),\(N=64\) 也只有 0.980 倍。所以「每條訓練路徑都是直線」換不到「少步數就準」,除非邊際軌跡本身變直(B14 的 Reflow)。