搜尋課程與筆記

搜尋筆記

輸入主題、關鍵字或單元編號,例如 Flow Matching、U4。

    按 Esc 關閉 · ⌘ / Ctrl K 開啟搜尋

    U3.3 25 分鐘閱讀 2026年10月

    U3.3 拉直(二):不依靠反覆訓練,能不能用別的方法決定好的 coupling?

    本篇重用3 篇

    Reflow 的迴圈可以省掉嗎?

    這個單元想改善的是解 ODE 時產生的 discretization error。我們在 U3.1 看過:如果能讓 trajectory 更接近等速直線,使用 Euler method 解 ODE 時,discretization error 就能比較小。

    在 U3.2 中,我們也介紹了 Reflow:利用模型生成新的起點與終點配對,再重新訓練,透過迴圈逐步拉直生成軌跡。但是這個方法每一輪都要解 ODE、重新訓練模型,新的配對也可能受到上一輪 discretization error 的影響。雖然實作上很好用,但聽起來仍沒有把問題解決得很徹底。

    能不能不先訓練一輪,也不先解 ODE,
    仍然保留 Flow Matching 的 simulation-free training?

    一個自然的想法,是在訓練開始前就先安排一種比較不容易讓 reference paths 互相打架的搬運方式。我們在 U3.0 已經觀察過:當同一個位置附近的 reference velocities 互相衝突時,L2 regression 會把它們平均起來,learned ODE trajectory 就可能會改變方向。

    想像有一批貨物,分散在幾個出發位置,要送到同樣數量的目的地,每個目的地收一件。即使每件貨物都沿直線搬運,隨便配對仍可能讓路線交錯:到了同一個地方,有的要往左、有的要往右,模型學到的平均方向就可能隨位置改變,讓生成軌跡彎曲。

    這種凌亂的配對,常常也伴隨著「捨近求遠」:左邊的貨物被送到很遠的右邊,右邊的貨物反而被送回左邊。這提醒我們,也許可以先從一個比較容易檢查的目標開始:不要讓整批貨物搬得比必要的更遠。

    什麼叫做「比較省的配對」?

    先想只有三件貨物的情況。三個起點分別記成 x0(1),x0(2),x0(3)x_0^{(1)},x_0^{(2)},x_0^{(3)},三個終點則記成 x1(1),x1(2),x1(3)x_1^{(1)},x_1^{(2)},x_1^{(3)}。一種配對方式可以是

    x0(1)→x1(2),x0(2)→x1(3),x0(3)→x1(1).x_0^{(1)}\to x_1^{(2)},\qquad x_0^{(2)}\to x_1^{(3)},\qquad x_0^{(3)}\to x_1^{(1)}.

    也就是說,第一件貨物送到第 2 個終點,第二件送到第 3 個終點,第三件則送到第 1 個終點。把右邊的終點編號依序記下來,就得到 (2,3,1)(2,3,1)。這串編號剛好把 1,2,31,2,3 各使用一次;也就是把原本依序的 (1,2,3)(1,2,3) 重新排成 (2,3,1)(2,3,1)。所以,我們可以把這個動作稱為 permutation(置換)。

    像 (2,2,1)(2,2,1) 就不合法:第 2 個終點收了兩件貨物,第 3 個終點卻完全沒有收到。Permutation 要表達的,就是重新排列終點,但不能重複或漏掉任何一個。

    推廣到 nn 個起點與 nn 個終點後,我們用 σ\sigma 記錄這張重新排列的名單。σ(i)=j\sigma(i)=j 的意思是:第 ii 個起點 x0(i)x_0^{(i)},會被送到第 jj 個終點 x1(j)x_1^{(j)}。因此,第 ii 組配對可以統一寫成

    x0(i)⟶x1(σ(i)).x_0^{(i)}\longrightarrow x_1^{(\sigma(i))}.

    如果搬運成本是距離的平方,這組配對的總成本就是

    先算每組配對,再算整張名單的成本

    C(σ)=∑i=1n∥x0(i)−x1(σ(i))∥2. \begin{gathered} \reveal{5}{C(\sigma)=} \reveal{4}{\sum_{i=1}^{n}} \reveal{3}{\left\|\reveal{1}{x_0^{(i)}} -\reveal{2}{x_1^{(\sigma(i))}}\right\|^2}\reveal{5}{.} \end{gathered}
    1. x0(i)x_0^{(i)} 是第 ii 個起點。先固定它,問這件貨物要搬去哪裡。
    2. σ(i)\sigma(i) 記錄這件貨物被分到的終點編號,所以配對的另一端是 x1(σ(i))x_1^{(\sigma(i))}。
    3. 把兩端位置相減,再取平方長度,得到這件貨物的二次搬運成本。
    4. 對所有 i=1,…,ni=1,\ldots,n 加總。每個終點恰好使用一次的限制,由 σ\sigma 是 permutation 來保證。
    5. 把這個總和記成 C(σ)C(\sigma)。接下來才在所有合法送貨表裡,找讓它最小的 σ\sigma。

    我們想找的,是所有合法配對中讓這個總和最小的那一個:

    σ⋆∈arg⁡min⁡σ  C(σ).\sigma^\star \in \underset{\sigma}{\arg\min}\;C(\sigma).

    這就是有限樣本上的 quadratic optimal transport(二次成本最優傳輸),後面簡稱 OT;也就是 U3.2 最後稍微提過的問題。生活例子裡,σ\sigma 是整張送貨名單;OT 做的事情,就是在不增減任何出發地與目的地的前提下,找出總搬運距離平方最小的名單。

    不過,我們真正關心的不是省運費,而是 learned ODE 的 discretization error。搬得比較近,真的也會讓 reference directions 比較不容易互相衝突嗎? 我們可以先從兩組貨物開始看。

    交換兩個目的地,會發生什麼?

    先想一維的例子。起點在 00 與 33,終點在 11 與 44。如果交叉著配,0→40\to4、3→13\to1,總成本是

    (0−4)2+(3−1)2=20.(0-4)^2+(3-1)^2=20.

    把兩個終點交換,改成 0→10\to1、3→43\to4,總成本立刻降成

    (0−1)2+(3−4)2=2.(0-1)^2+(3-4)^2=2.
    一維起點 0、3 與終點 1、4:交叉配對的平方成本是 20,順序配對的成本是 2。

    橫軸是位置 xx,縱軸是 reference path 的時間 tt。兩欄使用相同的起點 {0,3}\{0,3\} 與終點 {1,4}\{1,4\},只交換誰配誰。每條線本來就直,但交換後成本從 2020 降到 22,也移除了同一個 (x,t)(x,t) 上的方向衝突。

    Week 5 投影片 43 · 點圖查看原圖

    在這個例子裡,交換不只讓搬運距離變短,也拿掉了兩條彼此交叉的 reference paths。 接著把同一個計算寫成一般形式。假設某個配對把 aa 送到 AA、把 bb 送到 BB;若交換終點,改成 a→Ba\to B、b→Ab\to A,新成本減掉舊成本會是

    (∥a−B∥2+∥b−A∥2)−(∥a−A∥2+∥b−B∥2)=2 (a−b)⊤(A−B).\big(\|a-B\|^2+\|b-A\|^2\big)-\big(\|a-A\|^2+\|b-B\|^2\big)=2\,(a-b)^\top(A-B).

    展開平方後,∥a∥2,∥b∥2,∥A∥2,∥B∥2\|a\|^2,\|b\|^2,\|A\|^2,\|B\|^2 都會前後抵消,只剩右邊的內積。因此,如果

    (a−b)⊤(A−B)<0,(a-b)^\top(A-B)<0,

    交換後的成本就會更低。OT 已經是所有配對中最小的那一個,所以裡面不可能還留著這種「交換一下就更省」的兩組端點。

    接下來只是換一個比較方便的寫法。用 TT 表示 OT 排出的送貨表:如果 aa 被分配到 AA,就寫成 T(a)=AT(a)=A;如果 bb 被分配到 BB,就寫成 T(b)=BT(b)=B。把 A=T(a)A=T(a)、B=T(b)B=T(b) 代回剛才的條件,就得到

    (a−b)⊤(T(a)−T(b))≥0.(a-b)^\top\big(T(a)-T(b)\big)\ge 0.

    這就是這組 OT 配對的單調性。它說的是:從 bb 指向 aa,以及從 T(b)T(b) 指向 T(a)T(a) 的兩個向量,不能指向彼此相反的方向。在一維裡更直接:如果 a>ba>b,就必須有 T(a)≥T(b)T(a)\ge T(b)。起點的左右順序不能在終點反過來,因此兩條直線不會交叉。

    不過,高維沒有單一的「左右順序」。那這個條件還能幫我們減少 reference directions 的衝突嗎?考慮 aa 與 bb 對應的 linear reference paths:

    It(a)=(1−t)a+tT(a),It(b)=(1−t)b+tT(b).I_t(a)=(1-t)a+tT(a), \qquad I_t(b)=(1-t)b+tT(b).

    兩條路在時間 tt 相隔多少,可以先看它們的差和 a−ba-b 的內積:

    (a−b)⊤(It(a)−It(b))=(1−t)∥a−b∥2+t(a−b)⊤(T(a)−T(b)).\begin{aligned} (a-b)^\top\big(I_t(a)-I_t(b)\big) &=(1-t)\|a-b\|^2 \\ &\quad+t(a-b)^\top\big(T(a)-T(b)\big). \end{aligned}

    若 a≠ba\ne b 且 0≤t<10\le t<1,第一項嚴格大於 00;第二項則因為 OT 的單調性而大於等於 00。所以整個內積一定大於 00,也就不可能有

    It(a)=It(b).I_t(a)=I_t(b).

    換句話說,兩條 linear reference paths 不會在同一個時間抵達同一個位置。 這正是 Flow Matching 在意的「不衝突」:同一個輸入 (x,t)(x,t) 不會同時收到兩條不同的 reference velocities,L2 regression 也就不必在這兩個方向之間取平均。

    這不代表高維裡畫出的兩條線段完全不會碰到。它們仍可能在不同時間經過同一個空間位置;但因為模型的輸入還包含 tt,這不會形成同一個 training input 上的衝突。

    因此,如果完整 distributions 之間的 quadratic OT coupling 可以寫成上述的 TT,並使用 linear interpolation,那麼給定 (It,t)(I_t,t) 就能認出它屬於哪一條 reference path,optimal velocity 便是那條路從頭到尾不變的 T(a)−aT(a)-a。學到的 ODE trajectory 也會是等速直線,正是 U3.1 裡 Euler 最容易近似的情況。

    怎麼算 quadratic optimal transport?

    要先分清楚我們現在想算的是哪一個 OT。對一般的兩個 distributions p0,p1p_0,p_1,我們要找的是所有可能 couplings π(x0,x1)\pi(x_0,x_1) 中成本最低的一個;這是一個作用在 distributions 上的最佳化問題。除了少數特殊情況,population-level OT 通常沒有 closed-form solution;而在生成模型裡,p1p_1 又只有 samples,因此我們不能期待直接算出兩個完整 distributions 之間的精確 OT。更一般的 formulation 可以回顧 搬倉庫問題:Monge、Kantorovich 與 Coupling。

    我們現在多了一個限制,也因此得到一個能算的版本:手上有 nn 個起點與 nn 個終點,兩邊都只看成 finite empirical distribution,而且每個點的權重同樣是 1/n1/n。在這個樣本數相同、權重也相同的情況下,至少有一個最佳 coupling 可以寫成一對一的 permutation σ⋆\sigma^\star。如果兩邊數量不同或每個點的權重不同,最佳解一般就會是一張 transport plan π\pi,不能只用一個 σ\sigma 表示。

    因此,這個 finite quadratic OT 的 objective 告訴我們,最佳配對 σ⋆\sigma^\star 應該讓總距離平方最小;但寫下 arg⁡min⁡\arg\min,還沒有告訴我們怎麼把它找出來。如果有 nn 個終點,所有可能的送貨表一共有 n!n! 種,一張一張列出來比較顯然不可行。

    我們可以先把第 ii 個起點送到第 jj 個終點的成本全部算好,排成一張 n×nn\times n 的成本矩陣:

    Cij=∥x0(i)−x1(j)∥2,C_{ij}=\left\|x_0^{(i)}-x_1^{(j)}\right\|^2,

    每一列代表一個起點,每一欄代表一個終點。現在的任務就是:每一列選一格、每一欄也剛好被選一次,並讓選中格子的總和最小。 這是一個 linear assignment problem(線性指派問題),可以用 Hungarian algorithm(匈牙利演算法)等 solver 找到精確的最佳置換:

    σ⋆∈arg⁡min⁡σ∑i=1nCi,σ(i).\sigma^\star \in \underset{\sigma}{\arg\min} \sum_{i=1}^{n}C_{i,\sigma(i)}.
    三個起點 0、3、8 與終點 7、1、4 形成平方距離矩陣;選中格子每列每欄恰好一次,得到置換 2、3、1。

    把三個起點設為 (0,3,8)(0,3,8)、抽到的終點依序設為 (7,1,4)(7,1,4)。粉紅格選出 σ⋆=(2,3,1)\sigma^\star=(2,3,1),也就是 0→10\to1、3→43\to4、8→78\to7,總成本 C1,2+C2,3+C3,1=1+1+1=3C_{1,2}+C_{2,3}+C_{3,1}=1+1+1=3。矩陣依抽樣順序排列,右圖則依位置高低畫出端點。

    Week 5 投影片 47 · 點圖查看原圖

    solver 回傳的 σ⋆(i)\sigma^\star(i),就是第 ii 個起點應該被送到哪一個終點。所以,這個 finite、equal-weight 的 quadratic OT 確實有精確算法;問題是資料一多,計算成本就會太高。 真實資料可能有幾十萬、幾百萬筆,光是存下所有兩兩距離就需要 O(n2)O(n^2) 的空間,常見的精確 assignment algorithm 則大約需要 O(n3)O(n^3) 的時間。

    訓練神經網路時,我們本來就不會一次讀完整個資料集,而是每次抽一小批樣本,也就是一個 batch。因此,一個自然的近似是:只讓目前這 BB 個起點,在目前這 BB 個終點裡找最佳配對。把上面的 n×nn\times n 矩陣換成 B×BB\times B,再用同一個 assignment solver,就會得到這個 batch 裡的 σ⋆\sigma^\star。

    一旦 σ⋆\sigma^\star 算出來,接回 Flow Matching 的 framework 就很自然了。第 ii 個起點改成和 x1(σ⋆(i))x_1^{(\sigma^\star(i))} 配對,兩者之間的 reference path 與 reference velocity 分別是

    It(i)=(1−t)x0(i)+tx1(σ⋆(i)),I˙t(i)=x1(σ⋆(i))−x0(i).I_t^{(i)} =(1-t)x_0^{(i)}+t x_1^{(\sigma^\star(i))}, \qquad \dot I_t^{(i)} =x_1^{(\sigma^\star(i))}-x_0^{(i)}.

    接下來仍然使用 U2.1 的 velocity regression:

    配對換了,velocity regression 怎麼寫

    LOT-CFM(θ)=E ⁣[1B∑i=1B∥vθ(It(i),t)−I˙t(i)∥2]. \begin{gathered} \reveal{1}{\mathcal L_{\mathrm{OT\text{-}CFM}}(\theta)=}\\ \reveal{6}{\mathbb E\!\left[ \reveal{5}{\frac1B\sum_{i=1}^{B}} \reveal{4}{\left\| \begin{gathered} \reveal{2}{v_\theta}\reveal{1}{(I_t^{(i)},t)}\\ \reveal{3}{-\dot I_t^{(i)}} \end{gathered} \right\|^2} \right].} \end{gathered}
    1. 先在抽到的 batch 內求出 σ⋆\sigma^\star,再沿每組新配對畫直線、抽時間 tt,算出網路的 input (It(i),t)(I_t^{(i)},t)。
    2. vθ(It(i),t)v_\theta(I_t^{(i)},t) 回答這個時間、這個位置該怎麼走;model 的任務沒有改變。
    3. I˙t(i)=x1(σ⋆(i))−x0(i)\dot I_t^{(i)}=x_1^{(\sigma^\star(i))}-x_0^{(i)} 是這組新端點的 reference velocity。
    4. 把預測減去這條直線的速度,再取平方長度,仍然是原本的 velocity regression。
    5. 1B∑i\frac1B\sum_i 把這次 batch 裡每一組新配對的平方誤差平均起來。
    6. 期望值涵蓋抽 batch 與抽 tt 的 randomness,也就參考這個配對程序能產生的所有速度 labels。改變的是 label 的來路,CFM 的平方誤差形式沒有改。

    這個期望值包含抽 batch 與抽時間 tt 的 randomness。CFM objective 的形式沒有改;改的是哪些 x0x_0 與 x1x_1 會被拿來畫同一條 reference path。

    Tong 等人把這個版本稱為 OT-CFM [1];Pooladian 等人的 Multisample Flow Matching 也使用 batch 內的 coupling [2]。這種只在目前 batch 裡近似完整 OT 的做法,通常就叫 minibatch OT。

    repeat
      x1 ← B 個資料樣本
      x0 ← B 個噪聲樣本
      C  ← 成本矩陣  C[i,j] = ‖x0[i] − x1[j]‖²
      σ  ← 解指派問題  argmin_σ Σ_i C[i, σ(i)]     # scipy.optimize.linear_sum_assignment
      x1 ← x1[σ]                                    # 重排,讓 x0[i] 對到 x1[σ(i)]
      抽 t,計算 I_t = (1−t)x0 + tx1
      用 target = x1 − x0 訓練 v_θ(I_t,t)

    和原本 CFM 相比,真正新增的是「解指派」與「依指派重排終點」兩步。常見的精確指派演算法成本約為 O(B3)O(B^3)。

    互動 demo:batch 內解一次 OT。 從「獨立」按到「192(全域)」,這組 2D toy 裡的線段交叉比例約為 20% → 9% → 4% → 1.4% → 0.6%,1 步 Euler error 約為 1.5 → 0.77 → 0.41 → 0.21 → 0.08。Batch 越大,每個起點可以比較的候選終點越多;改善逐漸變小,但不會在某個固定 batch size 突然結束。

    OT 排除的是同一個 (x,t)(x,t) 上的衝突,不是高維線段在圖上完全不相交。

    上面的推導保證,使用同一個時間 tt 計算位置時,兩條 linear reference paths 不會相遇。Demo 計算的則是兩條線段在平面上有沒有幾何交點;即使它們在不同時間經過那個交點,仍會被算成相交。因此,圖上的交叉比例下降是這個 2D toy 的觀察,不是單調性直接保證的結論。

    補充Batch 較大時,Sinkhorn 算的是什麼?

    Exact BatchOT 會得到一個 permutation:每個起點只配到一個終點。但 BB 變大後,精確解 assignment 的成本也會快速增加。實作上常改用 Cuturi 提出的 Sinkhorn algorithm [3],解加入 entropy regularization 的版本:

    πε∈arg⁡min⁡π∈ΠB{∑i,jπijCij+ε∑i,jπij(log⁡πij−1)}.\pi_\varepsilon \in \underset{\pi\in\Pi_B}{\arg\min} \left\{ \sum_{i,j}\pi_{ij}C_{ij} +\varepsilon\sum_{i,j}\pi_{ij}(\log\pi_{ij}-1) \right\}.

    其中,ΠB\Pi_B 是所有非負矩陣中,每一列、每一欄加總都等於 1/B1/B 的集合。第一項仍希望搬運距離小;第二項則鼓勵 probability mass 不要全擠在少數格子裡。

    所以 Sinkhorn 通常得到的不是單一 permutation,而是一個 soft coupling:同一個 x0(i)x_0^{(i)} 可以用不同權重配到多個 x1(j)x_1^{(j)}。訓練時可以依照 πε,ij\pi_{\varepsilon,ij} 抽取端點對,或直接用這些權重計算 regression objective。

    Sinkhorn 只需要反覆調整矩陣的 row sums 與 column sums,容易平行化,因此 batch 較大時很常使用。不過,只要 ε>0\varepsilon>0,它解的就是 entropic OT(BatchEOT),不是上面的 exact BatchOT;當 ε→0\varepsilon\to0 時,才會逐漸靠近沒有 entropy regularization 的 OT solution。

    每個 batch 都解了 OT,整體也會是真的 OT、真的很直嗎?

    使用 exact assignment 時,每一次抽到的 batch 確實都解出了這兩批 empirical samples 之間的 quadratic OT。但一個 batch 裡的 x0x_0 只能從同一批 x1x_1 挑選;如果更合適的終點這次沒有被抽進來,batch 內的最佳選擇仍可能不是完整 distributions 之間的最佳選擇。

    把很多次 training runs 合起來看,每次重新抽 batch 都可能得到不同的配對。因此,這些配對共同形成的是一個合法的 coupling,但一般不會剛好等於 p0,p1p_0,p_1 之間的 population OT。「每個 batch 裡都是 OT」不等於「合起來就是完整 distributions 的 OT」。

    那 learned ODE 至少會變成等速直線嗎?在單一 batch 裡,exact OT 會排除同一個 (x,t)(x,t) 上互相衝突的 linear reference paths;但神經網路看到的是所有 batches。不同 batches 仍可能在同一個區域提供不同的 reference velocities,L2 regression 還是必須把它們平均起來,所以 learned velocity 沿著 trajectory 仍可能改變。

    要讀懂 Pooladian 等人的結果,我們先把他們控制的三個量分開。令 πB\pi_B 表示 BatchOT 在抽 batch 的 randomness 平均後形成的 coupling,並定義

    (X0,X1)∼πB,It=(1−t)X0+tX1,(X_0,X_1)\sim\pi_B, \qquad I_t=(1-t)X_0+tX_1, vt(B)(x)=E[X1−X0∣It=x].v_t^{(B)}(x) = \mathbb E[X_1-X_0\mid I_t=x].

    下面先考慮理想情況:模型真的學到 vt(B)v_t^{(B)},ODE 也被精確解出來。把真正生成時的 trajectory 記成 ZtZ_t:

    dZtdt=vt(B)(Zt),Z0∼p0.\frac{\mathrm d Z_t}{\mathrm dt} =v_t^{(B)}(Z_t), \qquad Z_0\sim p_0.

    Transport cost 看 learned flow 最後把每個起點搬了多遠。 定義

    CB=E∥Z1−Z0∥2.C_B=\mathbb E\|Z_1-Z_0\|^2.

    這裡量的是 learned ODE 產生的起終點配對,不是某一次 batch 裡 assignment solver 算出的 1B∑i∥x1(σ(i))−x0(i)∥2\frac1B\sum_i\|x_1^{(\sigma(i))}-x_0^{(i)}\|^2。所有 population couplings 中能達到的最小值,才是 W22(p0,p1)W_2^2(p_0,p_1)。

    Straightness 看真正生成的 ODE trajectory 是否等速直走。 定義

    SB=∫01E[∥vt(B)(Zt)−(Z1−Z0)∥2]dt.S_B = \int_0^1 \mathbb E\left[ \left\| v_t^{(B)}(Z_t)-(Z_1-Z_0) \right\|^2 \right]\mathrm dt.

    這就是 U3.2 使用的 straightness:它比較「當下的 velocity」與「從起點直達終點所需的固定 velocity」。SB=0S_B=0 時,每條 ZtZ_t 都是等速直線。它和 U3.1 的加速度積分不是同一個量;後者直接量 velocity 沿 trajectory 改變了多少。SB=0S_B=0 會讓加速度也等於零,但有限的 SBS_B 並不能直接代替 U3.1 的 finite-step error bound。

    Regression target variance 看同一個位置收到的 reference velocities 是否一致。 定義

    VB=∫01E[∥(X1−X0)−vt(B)(It)∥2]dt.V_B = \int_0^1 \mathbb E\left[ \left\| (X_1-X_0)-v_t^{(B)}(I_t) \right\|^2 \right]\mathrm dt.

    因為 vt(B)(It)v_t^{(B)}(I_t) 是 X1−X0X_1-X_0 給定 ItI_t 的 conditional mean,VBV_B 正是 optimal L2 regression 剩下的 conditional variance,也就是 U3.2 的 V(π)V(\pi)。它不是 neural network 沒有學好造成的 approximation error;即使模型已經達到最佳解,只要同一個 (x,t)(x,t) 仍對應到不同的 reference velocities,VBV_B 就不會是零。

    Pooladian 等人證明,在適當的 regularity 條件下,當 B→∞B\to\infty 時 [2],

    CB⟶W22(p0,p1),SB⟶0,VB⟶0.\begin{aligned} C_B&\longrightarrow W_2^2(p_0,p_1),\\ S_B&\longrightarrow 0,\\ V_B&\longrightarrow 0. \end{aligned}

    這三行分別表示:learned flow 的 transport cost 逐漸達到 population OT、生成 trajectories 逐漸接近等速直線,而同一個位置的 regression targets 也逐漸不再衝突。這是 B→∞B\to\infty 的漸近結果,不是說 batch size 每增加一次,三個量都一定單調下降。因此,有限的 BB 既不保證得到 population OT,也不保證 learned ODE 已經是等速直線。

    對 finite-step error 來說,我們最後仍要回到 U3.1 的量:只有當 learned velocity 沿 trajectory 的加速度積分也跟著下降,同一個 solver、同樣步長下的 error bound 才會變小。Minibatch OT 改的是 training coupling,沒有改變 solver 本身的階數。

    這一點和 reflow 不同:minibatch OT 不必先用上一輪 neural ODE 產生終點,因此不會把上一輪模型與 solver 的誤差寫進配對。

    補充重新配對會改變兩端的 distributions 嗎?

    不會。Batch 內重排只是一個 permutation:x0x_0 與 x1x_1 的樣本集合都沒有變,只有誰和誰配在一起。想像送貨表被重新排序,但每個倉庫仍然出一件貨、每個目的地也仍然收一件貨,因此這個 batch 的兩端 empirical marginals 完全不變。

    把一次 batch 的配對寫成 empirical coupling:

    π^B=1B∑i=1Bδ(x0(i),x1(σ⋆(i))).\widehat\pi_B =\frac1B\sum_{i=1}^B \delta_{(x_0^{(i)},x_1^{(\sigma^\star(i))})}.

    δ(a,b)\delta_{(a,b)} 表示把單位 probability mass 放在端點對 (a,b)(a,b)。每個 pair 分到 1/B1/B 的權重;再對抽 batch 的 randomness 平均,就得到前面使用的 πB=E[π^B]\pi_B=\mathbb E[\widehat\pi_B]。

    Permutation 改變 empirical coupling 的配對線,但不改兩端樣本集合;對 batches 平均後仍得到連接 p_0 與 p_1 的合法 coupling。

    第一端仍是 1B∑iδx0(i)\frac1B\sum_i\delta_{x_0^{(i)}};第二端只是把 1B∑jδx1(j)\frac1B\sum_j\delta_{x_1^{(j)}} 換了求和順序。因為 σ⋆\sigma^\star 不重複、不漏掉任何終點,兩端 empirical marginals 都不變;對隨機 batches 平均後,πB∈Π(p0,p1)\pi_B\in\Pi(p_0,p_1)。

    Week 5 投影片 49 · 點圖查看原圖

    把抽 batch 的 randomness 一起考慮後,這個程序誘導出的 joint distribution 仍然是一個兩端 marginals 分別為 p0,p1p_0,p_1 的合法 coupling [2]。所以在理想 velocity 與精確 ODE 下,U2.2 的結論仍然適用:沿著學到的 velocity field 走,最後仍會抵達 p1p_1。

    reflow 與 minibatch OT,差在哪?

    ReflowMinibatch OT
    改配對的時機訓完一輪之後每個 batch 當下
    額外計算整輪 ODE 取樣 + 重訓每 batch 一次 O(B3)O(B^3) 指派
    實作中的終點受上一輪模型與 solver 誤差影響batch 內只是置換,不會因配對改變
    理論保證理想條件下 S+V→0S+V\to0;不保證逐輪單調,也不保證得到 OT適當條件下,B→∞B\to\infty 時 straightness 與 transport cost 分別趨近 00 與完整 OT cost
    對模型的依賴新配對來自上一輪 neural ODE配對只依賴目前 batch 與成本函數
    高維的困難要重新訓練與取樣成本使用的距離可能失去辨別力

    課堂提問Q1

    Minibatch OT 的效果取決於成本矩陣能不能分出「比較適合的終點」。到了高維,直接使用 Euclidean distance 時,為什麼這件事可能變難?

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

    一個重要的警訊是高維距離集中。先看最容易算的例子:取兩個獨立的 x0,x1∼N(0,Id)x_0,x_1\sim\mathcal N(0,I_d),則

    E∥x0−x1∥2=2d,Var⁡(∥x0−x1∥2)=8d.\mathbb E\|x_0-x_1\|^2=2d,\qquad \operatorname{Var}\big(\|x_0-x_1\|^2\big)=8d .

    所以相對標準差是 8d/(2d)=2/d\sqrt{8d}/(2d)=\sqrt{2/d}——dd 越大,所有兩兩距離越接近同一個值。d=2d=2 時是 100%,d=3072d=3072 時只剩 2.5%。

    在這個例子裡,dd 越大,所有兩兩距離就越接近同一個值。成本矩陣如果接近常數,「最佳指派」和「隨機指派」的差距自然會縮小。

    這不是說所有高維資料都一定如此;真實資料不會是兩組獨立 Gaussian,而且資料通常集中在較低維的結構上。它真正提醒我們的是:minibatch OT 是否有效,不只取決於 batch size,也取決於成本函數有沒有表達我們在意的相似性。

    • 若 raw pixel distance 幾乎沒有辨別力,可以改在較有語意的 representation space 定義成本。
    • Batch size 增加會提供更多候選者,但如果成本本身分不出好壞,單純加大 batch 也不會自動解決問題。

    這也是 reflow 與 minibatch OT 的另一個差別:reflow 用 neural ODE 產生 coupling;minibatch OT 則把所有判斷交給指定的 cost。

    消化一下

    想一想

    OT 配對為什麼是單調的?

    想一想

    每個 batch 裡都解出了精確 OT,可以直接推出什麼?

    想一想

    高維時,直接用 Euclidean distance 做 minibatch OT 可能變弱,這個 Gaussian toy 提醒我們檢查什麼?

    想一想

    下列哪一句話同時對 reflow 與 minibatch OT 都成立?

    參考文獻

    1. Tong, A., Fatras, K., Malkin, N., Huguet, G., Zhang, Y., Rector-Brooks, J., Wolf, G., Bengio, Y. Improving and Generalizing Flow-Based Generative Models with Minibatch Optimal Transport. TMLR 2024. (OT-CFM;這一篇的主線。)
    2. Pooladian, A.-A., Ben-Hamu, H., Domingo-Enrich, C., Amos, B., Lipman, Y., Chen, R. T. Q. Multisample Flow Matching: Straightening Flows with Minibatch Couplings. ICML 2023. (同一個想法的另一條線,含 batch size 的分析。)
    3. Cuturi, M. Sinkhorn Distances: Lightspeed Computation of Optimal Transport. NeurIPS 2013. (batch 太大時用的熵正則化近似。)