擴散模型原理 B35 · Itô 與 Girsanov
The Principles of Diffusion Models · 附錄 C

幕後的數學:Itô 公式與 Girsanov 定理

SDE 的布朗項讓路徑處處不可微,一般的連鎖律因此失效。Itô 公式是隨機軌跡正確的連鎖律:多出來的那一項來自 \((d\mathbf w)^2=dt\)。用它可以嚴格推出 Fokker–Planck 方程,也能解出線性 SDE 的封閉解。Girsanov 定理是路徑機率的變數變換:雜訊不變、只改漂移時,同一條路徑的機率比是多少。用它可以證明:用 \(g^2(t)\) 加權的 score matching 損失,正好是真的反向過程和學到的反向過程之間的路徑 KL,而這個 KL 又是資料端 KL 的上界。這是全書的最後一頁。

書的範圍:附錄 C 全部(§C.1 Itô 公式、§C.2 Girsanov 定理) 閱讀時間:約 50 分鐘

讀完這頁你應該能夠

  1. 說明為什麼一般的微積分不夠用在 SDE 上,以及 Itô 公式怎麼給出隨機軌跡正確的連鎖律。
  2. 看出 Itô 公式怎麼在幕後支撐 diffusion model 的重要推導,包括 Fokker–Planck 方程和線性 SDE。
  3. 把 Girsanov 定理理解成:擴散項相同、漂移不同時,比較兩個隨機路徑機率的方法。
  4. 分清楚「每個時刻的分佈一致」和「整條隨機路徑一致」,並說明為什麼用 likelihood 加權的 score matching 和路徑空間的 KL、以及資料概似有關。

書在本附錄開頭的提示:這個附錄發展一些在 diffusion model 幕後運作的數學工具。Itô 微積分讓隨機的微分變得精確;Girsanov 定理說明改變漂移怎麼改變整條隨機路徑的機率。好幾個標準的 diffusion model 推導都建立在它們之上,只是通常沒有明確寫出來。

前置知識

  • B33(附錄 A)第 8–10 節:SDE、布朗運動的四個性質、\(\sqrt{\Delta t}\) 縮放、Itô 積分的左端點規則、Euler–Maruyama。
  • B34(附錄 B):連續方程、Fokker–Planck 方程、SDE 和 PF-ODE「邊際相同、路徑不同」。
  • 反向 SDE 和 score:§4.1(B08)。KL divergence 的定義:B01。
  • 入門版:補充課 E(布朗運動與 SDE,含 Itô 公式)、補充課 F(Fokker–Planck 與 Langevin)。

「書 §」標出原文位置。灰框「轉述者補充」是書裡沒有的內容;藍框「推導」展開書中省略的步驟。附錄 C 裡被註解掉的兩段(向量輸出的 Itô 公式、用 Fokker–Planck 推反向 SDE)沒有收;後者在 §4.6.2 有正式的版本(B10 第 5 節)。

01幕後的兩個工具書 附錄 C 開頭

(以 score 為基礎的)diffusion model 建立在 SDE 上:一個推動狀態的漂移,加上一個讓狀態抖動的布朗項。和 ODE 的路徑不同,布朗路徑處處不可微,所以一般的連鎖律不成立。這個附錄介紹兩個讓數學變精確的基本工具:

  • Itô 公式是隨機軌跡正確的連鎖律。它告訴我們,當 \(\mathbf x_t\) 遵循一個 SDE 時,函數 \(\mathbf h(\mathbf x_t,t)\) 怎麼演化。有了它,就能推導 Fokker–Planck 方程、動差的動態、Itô 乘積法則,以及 score-based 訓練用到的各種恆等式。
  • Girsanov 定理是路徑機率上的測度變換結果。它量化「雜訊固定、漂移改變」時,概似怎麼改變。這把 likelihood 加權的 score matching 連到路徑空間的 KL divergence,再經由一個變分界連到資料概似。

有了這兩個工具,diffusion model 的標準推導(Fokker–Planck、反向 SDE、訓練目標、概似關係)都可以乾淨地推出來,不必含糊帶過。

02為什麼需要新的連鎖律書 §C.1、§C.1.1

標準的微積分不能直接用在隨機過程上,因為 Wiener 過程在古典意義下不可微。我們改用 Itô 微積分,它提供處理隨機積分的規則。

先看一個確定性的、隨時間平滑變化的函數 \(\mathbf y_t\)(例如 ODE 的解)。對函數 \(\mathbf h(\mathbf y_t,t)\),一般的連鎖律說

$$\frac{d\mathbf h}{dt}=\frac{\partial\mathbf h}{\partial t}+\nabla_{\mathbf y}\mathbf h\,\frac{d\mathbf y_t}{dt},$$

\(\nabla_{\mathbf y}\mathbf h\) 是 \(\mathbf h\) 的 Jacobian。這對確定性的路徑 \(\mathbf y_t\) 完全成立。

QUESTION

如果 \(\mathbf x_t\) 是一個隨機過程,例如由 SDE \(d\mathbf x_t=\mathbf f(\mathbf x_t,t)\,dt+g(t)\,d\mathbf w_t\)(§A.2.1,B33 第 8 節)驅動,那麼過程 \(\mathbf h(\mathbf x_t,t)\) 滿足什麼 SDE?

為什麼一般的連鎖律會失敗

天真地套用古典連鎖律,得到

$$d\mathbf h=\frac{\partial\mathbf h}{\partial t}\,dt+\nabla_{\mathbf y}\mathbf h\cdot d\mathbf x_t.$$

但布朗增量的尺度是 \(\mathcal O(\sqrt{dt})\),它的二次變分在 Itô 微積分裡記成

$$(d\mathbf w_t)^2=dt.$$

因此在隨機微積分裡,\(d\mathbf w_t\) 的二階項不會消失;這和古典微積分不同,古典的 \((dt)^2\) 項可以忽略。

\((dw)^2=dt\) 是什麼意思

它不是說每一個 \((\Delta w)^2\) 都恰好等於 \(\Delta t\)。單一個增量 \(\Delta w\sim\mathcal N(0,\Delta t)\),\((\Delta w)^2\) 的平均是 \(\Delta t\)、變異數是 \(2\Delta t^2\)(因為高斯的四次動差是 \(3\Delta t^2\))。把 \([0,T]\) 切成 \(n=T/\Delta t\) 段、把各段的 \((\Delta w)^2\) 加起來:

$$\mathbb E\Big[\sum(\Delta w)^2\Big]=T,\qquad\mathrm{Var}\Big[\sum(\Delta w)^2\Big]=n\cdot2\Delta t^2=2T\Delta t\to0.$$

所以總和收斂到確定的 \(T\):隨機性在加總時互相抵消了。\((dw)^2=dt\) 是這件事的簡寫,意思是「在積分裡,\((dw)^2\) 可以換成 \(dt\)」。相比之下 \(\sum\Delta t\,\Delta w=\Delta t\,w(T)\) 的大小是 \(\mathcal O(\Delta t)\)(就算每一項取絕對值,\(\sum\Delta t\,|\Delta w|\) 也只有 \(\mathcal O(\sqrt{\Delta t})\)),\(\sum(\Delta t)^2=T\Delta t\to0\),這兩種都可以丟掉。Demo A 會把 \(\sum(\Delta x)^2\) 算出來。

EXAMPLE:\(h(x_t)=x_t^2\)

考慮實數值函數 \(h(x_t)=x_t^2\),其中 \(x_t\in\mathbb R\) 滿足 \(dx_t=\sigma\,dw_t\)、\(x_0=0\),\(\sigma\gt0\) 是常數。如果用古典連鎖律:

$$dh=2x_t\,dx_t=2x_t\sigma\,dw_t.$$

如果這是對的,\(h(x_t)\) 的期望值就會不隨時間改變,因為

$$\mathbb E[dh]=2\sigma\,\mathbb E[x_t\,dw_t]=2\sigma\,\mathbb E[x_t]\,\underbrace{\mathbb E[dw_t]}_{=0}=0.$$

但從布朗運動的基本性質(§A.2.1)我們知道 \(\mathbb E[x_t^2]=\sigma^2t\),隨時間線性成長。所以古典連鎖律漏掉了一個重要的項。

轉述者註:\(\mathbb E[x_t\,dw_t]=\mathbb E[x_t]\,\mathbb E[dw_t]\) 用到的是「\(dw_t\) 是 \(t\) 之後的新增量,和 \(x_t\) 獨立」,也就是 Itô 積分的左端點規則(B33 第 9 節)。

03用 Taylor 展開推出一維的 Itô 公式書 §C.1.2

先用 Taylor 展開看確定性的連鎖律

為了看清楚古典連鎖律為什麼在隨機過程上失敗,先在確定性的情形用 Taylor 展開重看一次。考慮純量的情形:\(y_t\in\mathbb R\)、\(h(\cdot,\cdot)\in\mathbb R\)。形式上把 \(dy_t=y_{t+dt}-y_t\)、\(dt\approx0\) 代入展開:

$$h(y_{t+dt},t+dt)-h(y_t,t)=\frac{\partial h}{\partial t}dt+\frac{\partial h}{\partial y}dy_t+\frac12\Big(\color{gray}{\frac{\partial^2h}{\partial y^2}(dy_t)^2+2\frac{\partial^2h}{\partial t\,\partial y}dt\,dy_t+\frac{\partial^2h}{\partial t^2}(dt)^2}\Big)+\mathcal O(dt^3).$$

這裡 \(dt\,dy_t=\big(\frac{dy_t}{dt}\big)(dt)^2=\mathcal O(dt^2)\),\((dt)^2\) 和 \((dy_t)^2\) 也都是 \(\mathcal O(dt^2)\)。所以灰色的部分全部可以忽略,全微分就是

$$dh=\frac{\partial h}{\partial t}dt+\frac{\partial h}{\partial y}dy_t+\mathcal O(dt^2).$$

用隨機 Taylor 展開推 Itô 公式

現在考慮由 SDE \(dx_t=f(x_t,t)\,dt+g(t)\,dw_t\) 支配的隨機過程 \(x_t\in\mathbb R\),\(w_t\) 是標準布朗運動。要算純量函數 \(h(x_t,t)\) 的微分。用保留 \(dx_t\) 二階項的隨機 Taylor 展開(Kloeden & Platen 1992):

$$h(x_{t+dt},t+dt)-h(x_t,t)=\frac{\partial h}{\partial t}dt+\frac{\partial h}{\partial x}dx_t+\frac12\Big(\frac{\partial^2h}{\partial x^2}(dx_t)^2+\color{gray}{2\frac{\partial^2h}{\partial t\,\partial x}dt\,dx_t+\frac{\partial^2h}{\partial t^2}(dt)^2}\Big)+\cdots$$

可以忽略的交叉項。由布朗運動的尺度性質(§A.2.1),\(dw_t=\mathcal O(\sqrt{dt})\),所以 \(dt\cdot dw_t=\mathcal O((dt)^{3/2})\)。因此

$$dt\cdot dx_t=dt\,(f\,dt+g\,dw_t)=f\,(dt)^2+g\,dt\,dw_t=\mathcal O\big((dt)^{3/2}\big),$$

灰色的項都是 \(\mathcal O((dt)^{3/2})\) 或更小,可以忽略。

二階項 \((dx_t)^2\)。用 SDE 展開:

$$(dx_t)^2=(f\,dt+g\,dw_t)^2=f^2(dt)^2+2fg\,dt\,dw_t+g^2(dw_t)^2=g^2(t)\,dt,$$

最後一個等號用了 Itô 的微分規則 \((dt)^2=0\)、\(dt\,dw_t=0\)、\((dw_t)^2=dt\),最後一條要以二次變分的意義理解。這一項是確定性情形沒有的:\(dy_t\) 是 \(\mathcal O(dt)\),平方後可以丟掉;\(dx_t\) 卻是 \(\mathcal O(\sqrt{dt})\),平方後和 \(dt\) 同階。

合起來得到

$$dh(x_t,t)=\frac{\partial h}{\partial t}dt+\frac{\partial h}{\partial x}dx_t+\frac12\frac{\partial^2h}{\partial x^2}g^2(t)\,dt.$$

代入 \(dx_t=f(x_t,t)\,dt+g(t)\,dw_t\):

$$dh(x_t,t)=\Big(\frac{\partial h}{\partial t}+f\frac{\partial h}{\partial x}+\frac12g^2\frac{\partial^2h}{\partial x^2}\Big)dt+g\frac{\partial h}{\partial x}\,dw_t.$$

這就是一維的 Itô 公式。

EXAMPLE:再看 \(h(x_t)=x_t^2\)

回到 \(dx_t=\sigma\,dw_t\)。正確地對 \(h(x_t)=x_t^2\) 套用 Itô 公式(\(h'=2x\)、\(h''=2\)):

$$d(x_t^2)=2x_t\,dx_t+\sigma^2\,dt=2x_t\sigma\,dw_t+\sigma^2\,dt.$$
這次期望值對了

把上式從 0 積到 \(t\):\(x_t^2=x_0^2+2\sigma\int_0^tx_s\,dw_s+\sigma^2t\)。Itô 積分的被積函數只用到左端點的資訊,期望值為 0(B33 第 9 節),所以 \(\mathbb E[x_t^2]=x_0^2+\sigma^2t\);\(x_0=0\) 時就是 \(\sigma^2t\),和布朗運動的已知結果一致。多出的 \(\sigma^2dt\) 正是古典連鎖律漏掉的那一項。

Demo AItô 修正項從哪來

先用 4,096 步的 Euler–Maruyama 在 \([0,1]\) 上模擬一條路徑,起點 \(x_0=0.5\),把它當成「真的」路徑。再在較粗的 \(M\) 格網上,用同一條路徑的格點值累加兩種和,和真正的變化 \(h(x_t)-h(x_0)\)(黑)比較:

  • 古典連鎖律(紅色虛線):\(\sum h'(x_k)\,\Delta x_k\)。
  • Itô 公式(橙):\(\sum\big[h'(x_k)\,\Delta x_k+\frac12h''(x_k)\,g^2\Delta t\big]\),被積函數都在左端點取值。

下圖是 400 條路徑在 \(t=1\) 的 RMS 誤差。

h(xt) − h(x₀)古典連鎖律(虛線)Itô 公式

讀數(瀏覽器實測):

SDE、hRMS 誤差,M = 16/64/256/1024/4096:古典Itô平均變化(M = 1024):真的/古典/Itô
布朗運動、x²1.0/1.0/1.0/1.0/1.00.36/0.18/0.087/0.043/0.0221.044/0.043/1.043
布朗運動、x³2.5/2.4/2.4/2.3/2.30.90/0.47/0.21/0.11/0.0581.804/0.310/1.806
布朗運動、sin 2x1.1(五個都是)0.51/0.27/0.13/0.062/0.032−0.758/−0.093/−0.755
OU、x²2.0(五個都是)0.71/0.36/0.17/0.087/0.0450.633/−1.368/0.632
  • 古典連鎖律的誤差不會消失。格子再細,誤差都停在同一個值:它少算了 \(\frac12\sum h''(\Delta x)^2\),而這個和收斂到 \(\frac12\int h''g^2dt\),不是 0。對布朗運動和 \(h=x^2\),少算的恰好是 \(\sum(\Delta x)^2\to T=1\),所以 RMS 誤差是 1.0。
  • Itô 的誤差像 \(\sqrt{\Delta t}\) 一樣下降。\(M\) 每變 4 倍,誤差減半。剩下的誤差來自 \(\frac12\sum h''\big((\Delta x)^2-g^2\Delta t\big)\):每一項平均是 0,但各自有 \(\mathcal O(\Delta t)\) 的波動,加起來是 \(\mathcal O(\sqrt{\Delta t})\)。
  • 平均值。布朗運動配 \(h=x^2\) 時,真正的平均變化是 \(\mathbb E[x_1^2]-x_0^2=\sigma^2t=1\)(樣本平均 1.044);古典連鎖律預測 0(樣本平均 0.043),Itô 預測 1(1.043)。OU 時連漂移項都算進去,古典版本甚至連正負號都錯。
  • 上圖第一條路徑上 \(\sum(\Delta x)^2\) 會隨 \(M\) 晃動,但越來越貼近 \(\int g^2dt\)(布朗運動是 1,OU 是 2):這就是 \((dw)^2=dt\)。

04Itô 公式:SDE 的連鎖律書 §C.1.3

把上面推出的一維 Itô 公式整理起來。用類似的論證,結果可以自然推廣到多維;書省略詳細推導,只為完整起見寫出一般公式。最後用它推出 Itô 乘積法則,用來算兩個隨機過程的 \(d(\mathbf x_t^\top\mathbf y_t)\)。

一維 Itô 公式

設 \(x_t\in\mathbb R\) 滿足 \(dx_t=f(x_t,t)\,dt+g(t)\,dw_t\)。對純量函數 \(h:\mathbb R\times[0,T]\to\mathbb R\),過程 \(h(x_t,t)\) 滿足

$$dh(x_t,t)=\Big(\frac{\partial h}{\partial t}+f\frac{\partial h}{\partial x}+\frac12g^2\frac{\partial^2h}{\partial x^2}\Big)dt+g\frac{\partial h}{\partial x}\,dw_t.$$

多維、純量輸出的 Itô 公式

設 \(\mathbf x_t\in\mathbb R^D\) 滿足 \(d\mathbf x_t=\mathbf f(\mathbf x_t,t)\,dt+g(t)\,d\mathbf w_t\),其中 \(\mathbf f:\mathbb R^D\times[0,T]\to\mathbb R^D\)、\(g:[0,T]\to\mathbb R\),\(\mathbf w_t\in\mathbb R^D\) 是 \(D\) 維布朗運動。對純量函數 \(h:\mathbb R^D\times[0,T]\to\mathbb R\):

$$dh(\mathbf x_t,t)=\Big(\frac{\partial h}{\partial t}+\nabla_{\mathbf x}h^\top\mathbf f+\frac12g^2(t)\,\mathrm{Tr}\big(\nabla^2_{\mathbf x}h\big)\Big)dt+g(t)\,\nabla_{\mathbf x}h^\top d\mathbf w_t,$$

\(\nabla_{\mathbf x}h\in\mathbb R^D\) 是梯度,\(\nabla^2_{\mathbf x}h\in\mathbb R^{D\times D}\) 是 \(h\) 對 \(\mathbf x\) 的 Hessian。

多維時 Hessian 的 trace 從哪來

二階 Taylor 項是 \(\frac12\sum_{i,j}\partial_i\partial_jh\,dx_i\,dx_j\)。和一維一樣,\(dx_i\,dx_j=g^2\,dw_i\,dw_j\)。各個座標的布朗運動互相獨立,所以 \(dw_i\,dw_j=\delta_{ij}\,dt\):\(i\ne j\) 時 \(\sum\Delta w_i\Delta w_j\) 的平均是 0、變異數趨近 0。於是只剩對角項:

$$\frac12\sum_{i,j}\partial_i\partial_jh\;g^2\delta_{ij}\,dt=\frac12g^2\sum_i\partial_i^2h\,dt=\frac12g^2\,\mathrm{Tr}(\nabla^2h)\,dt.$$

\(\mathrm{Tr}(\nabla^2h)=\Delta h\) 就是 Laplacian。

EXAMPLE:Itô 乘積法則

設 \(\mathbf x_t,\mathbf y_t\in\mathbb R^D\) 遵循

$$d\mathbf x_t=\mathbf a(\mathbf x_t,t)\,dt+b(t)\,d\mathbf w_t,\qquad d\mathbf y_t=\mathbf c(\mathbf y_t,t)\,dt+d(t)\,d\mathbf w_t,$$

\(\mathbf a,\mathbf c\) 是向量場,\(b(t),d(t)\) 是純量函數,\(\mathbf w_t\) 是標準 \(D\) 維布朗運動(兩個過程由同一個布朗運動驅動)。要推出純量過程 \(z(t):=\mathbf x_t^\top\mathbf y_t\) 的 SDE。對雙線性函數 \(h(\mathbf x,\mathbf y):=\mathbf x^\top\mathbf y\) 套用多維 Itô 公式:

$$d(\mathbf x^\top\mathbf y)=(d\mathbf x)^\top\mathbf y+\mathbf x^\top d\mathbf y+\mathrm{Tr}\big[d\mathbf x\,(d\mathbf y)^\top\big].$$

Itô 修正項是

$$d\mathbf x\,(d\mathbf y)^\top=b(t)\,d\mathbf w_t\,\big[d(t)\,d\mathbf w_t\big]^\top=b(t)d(t)\,d\mathbf w_t\,d\mathbf w_t^\top=b(t)d(t)\,dt\cdot\mathbf I_D,$$

所以 \(\mathrm{Tr}\big[d\mathbf x\,(d\mathbf y)^\top\big]=b(t)d(t)\,\mathrm{Tr}(\mathbf I_D)\,dt=D\,b(t)d(t)\,dt\)。合起來:

$$d(\mathbf x^\top\mathbf y)=(d\mathbf x)^\top\mathbf y+\mathbf x^\top d\mathbf y+D\,b(t)d(t)\,dt.$$
修正項為什麼是 \(\mathrm{Tr}[d\mathbf x\,(d\mathbf y)^\top]\)

把 \((\mathbf x,\mathbf y)\) 當成一個 \(2D\) 維的過程。\(h=\mathbf x^\top\mathbf y=\sum_ix_iy_i\) 的二階導數只有交叉的 \(\partial_{x_i}\partial_{y_i}h=1\)(\(\partial_{x_i}^2h=\partial_{y_i}^2h=0\))。二階 Taylor 項是 \(\frac12\sum_i\big(\partial_{x_i}\partial_{y_i}h+\partial_{y_i}\partial_{x_i}h\big)dx_i\,dy_i=\sum_idx_i\,dy_i=\mathrm{Tr}[d\mathbf x\,(d\mathbf y)^\top]\)。如果兩個過程由互相獨立的布朗運動驅動,\(dw_i\,dw'_i=0\),修正項就消失。

05Itô 公式的應用:推導 Fokker–Planck 方程書 §C.1.4

現在用多維 Itô 公式推導 Fokker–Planck 方程,也就是刻畫 \(D\) 維擴散過程 \(d\mathbf x_t=\mathbf f\,dt+g\,d\mathbf w_t\) 的機率密度 \(p_t(\mathbf x)\) 隨時間演化的 PDE。B34 第 8 節的啟發式推導,這裡是嚴格版。

  1. 套用 Itô 公式。令 \(\phi(\mathbf x,t):\mathbb R^D\times[0,T]\to\mathbb R\) 是一個光滑的測試函數。由 Itô 公式: $$d\phi(\mathbf x_t,t)=\Big(\frac{\partial\phi}{\partial t}+\nabla_{\mathbf x}\phi^\top\mathbf f(\mathbf x_t,t)+\frac12g^2(t)\,\mathrm{Tr}[\nabla^2_{\mathbf x}\phi]\Big)dt+g(t)\,\nabla_{\mathbf x}\phi^\top d\mathbf w_t.$$
  2. 取期望。在標準的可積條件下,Itô 積分的期望是 0,所以 $$\mathbb E[d\phi(\mathbf x_t,t)]=\mathbb E\Big[\Big(\frac{\partial\phi}{\partial t}+\nabla_{\mathbf x}\phi^\top\mathbf f(\mathbf x_t,t)+\frac12g^2(t)\,\mathrm{Tr}[\nabla^2_{\mathbf x}\phi]\Big)dt\Big].$$
  3. 用密度寫出期望。 $$\mathbb E[d\phi(\mathbf x_t,t)]=\int\Big(\frac{\partial\phi}{\partial t}+\nabla_{\mathbf x}\phi^\top\mathbf f(\mathbf x,t)+\frac12g^2(t)\,\mathrm{Tr}[\nabla^2_{\mathbf x}\phi]\Big)p_t(\mathbf x)\,d\mathbf x\,dt.$$
  4. 分部積分。在 \(\mathbb R^D\) 上用分部積分(散度定理): $$\int\nabla_{\mathbf x}\phi^\top\mathbf f\,p_t\,d\mathbf x=-\int\phi\,\nabla_{\mathbf x}\cdot(\mathbf fp_t)\,d\mathbf x,\qquad\int\mathrm{Tr}[\nabla^2_{\mathbf x}\phi]\,p_t\,d\mathbf x=\int\phi\,\Delta p_t\,d\mathbf x.$$
  5. 代入並整理。注意 \(\mathbb E[\phi(\mathbf x_t,t)]=\int\phi(\mathbf x,t)p_t(\mathbf x)\,d\mathbf x\)。對時間微分: $$\frac{d}{dt}\mathbb E[\phi(\mathbf x_t,t)]=\int\Big(\partial_t\phi(\mathbf x,t)\,p_t(\mathbf x)+\phi(\mathbf x,t)\,\partial_tp_t(\mathbf x)\Big)d\mathbf x.$$ 所以 $$\mathbb E[d\phi(\mathbf x_t,t)]=\frac{d}{dt}\mathbb E[\phi(\mathbf x_t,t)]\,dt=\int\Big(\partial_t\phi\,p_t+\phi\,\partial_tp_t\Big)d\mathbf x\,dt.$$ 和第 3 步比對,\(\int\partial_t\phi\,p_t\,d\mathbf x\,dt\) 兩邊抵消;剩下的空間項用第 4 步改寫,得到 $$\int\phi(\mathbf x,t)\Big[\frac{\partial p_t}{\partial t}+\nabla_{\mathbf x}\cdot\big(\mathbf f(\mathbf x,t)p_t(\mathbf x)\big)-\frac12g^2(t)\,\Delta p_t(\mathbf x)\Big]d\mathbf x=0.$$

這對每個光滑的測試函數 \(\phi\) 都成立,所以得到 Fokker–Planck 方程

$$\frac{\partial p_t(\mathbf x)}{\partial t}=-\nabla_{\mathbf x}\cdot\big(\mathbf f(\mathbf x,t)p_t(\mathbf x)\big)+\frac12g^2(t)\,\Delta p_t(\mathbf x).$$
第 4 步的兩個分部積分

第一式:乘積法則 \(\nabla\cdot(\phi\,\mathbf fp_t)=\nabla\phi^\top\mathbf fp_t+\phi\,\nabla\cdot(\mathbf fp_t)\)。左邊在整個 \(\mathbb R^D\) 上的積分,由散度定理等於無窮遠處的邊界通量;在 \(p_t\) 或 \(\phi\) 於遠處衰減的假設下它是 0,移項即得。

第二式:\(\mathrm{Tr}[\nabla^2\phi]=\Delta\phi=\nabla\cdot\nabla\phi\)。做兩次同樣的事:\(\int(\nabla\cdot\nabla\phi)p_t=-\int\nabla\phi\cdot\nabla p_t=\int\phi\,\nabla\cdot\nabla p_t=\int\phi\,\Delta p_t\)。每一次都把一個導數從 \(\phi\) 搬到 \(p_t\),並多一個負號,兩次負號抵消。

「對每個 \(\phi\) 成立,所以括號為 0」

若括號裡的函數 \(r(\mathbf x)\) 連續且在某點不為 0,取一個集中在那點附近、和 \(r\) 同號的光滑凸起當 \(\phi\),積分就不會是 0,矛盾。這和 B34 第 10 節「控制體積任意,所以被積函數為 0」是同一個論證。第 2 步用到的「Itô 積分期望為 0」也就是 B33 第 9 節左端點規則的結果:被積函數只看過去,和新的增量獨立。

同一個方程在 §4.2.1(B09 第 2 節)用來保證反向 SDE 和 PF-ODE 的邊際對齊;§4.6.1(B10 第 5 節)則從轉移核的邊際化給出另一個推法。

06Itô 公式的應用:線性 SDE 的封閉解書 §C.1.5

這一節示範怎麼用積分因子(和 ODE 的情形類似,B33 第 5 節)加上 Itô 公式,得到線性 SDE 的封閉解。考慮

$$d\mathbf x_t=f(t)\,\mathbf x_t\,dt+g(t)\,d\mathbf w_t,$$

\(f(t)\)、\(g(t)\) 是確定性的函數,\(\mathbf w_t\) 是標準 Wiener 過程。diffusion model 的前向 SDE 通常就是這種形式(§4.1,B08)。

封閉解

  1. 定義積分因子。令 \(\Psi(t):=\exp\big(-\int_0^tf(s)\,ds\big)\),並定義 \(\mathbf y_t:=\Psi(t)\mathbf x_t\)。
  2. 套用 Itô 公式。對函數 \(\mathbf h(\mathbf x,t):=\Psi(t)\mathbf x\) 套用 Itô 公式。這其實是 Itô 乘積法則的特例:\(\Psi(t)\) 是確定性的,沒有交叉變分項,公式化簡成 $$d\mathbf y_t=d[\Psi(t)\mathbf x_t]=\Psi'(t)\mathbf x_t\,dt+\Psi(t)\,d\mathbf x_t=-f(t)\Psi(t)\mathbf x_t\,dt+\Psi(t)\big[f(t)\mathbf x_t\,dt+g(t)\,d\mathbf w_t\big]=\Psi(t)g(t)\,d\mathbf w_t.$$ 因此,因為 \(\Psi(0)=1\), $$\mathbf y_t=\mathbf y_0+\int_0^t\Psi(s)g(s)\,d\mathbf w(s)=\mathbf x_0+\int_0^t\Psi(s)g(s)\,d\mathbf w(s).$$
  3. 解出 \(\mathbf x_t\)。用 \(\mathbf x_t=\Psi(t)^{-1}\mathbf y_t\):
$$\mathbf x_t=e^{\int_0^tf(s)\,ds}\Big[\mathbf x_0+\int_0^te^{-\int_0^sf(r)\,dr}\,g(s)\,d\mathbf w(s)\Big].$$

這給出向量值 SDE 的顯式解。下面用兩種方法算出 \(p_t(\mathbf x_t\mid\mathbf x_0)\) 的解析形式。

為什麼「\(\Psi\) 確定」就沒有修正項

每個座標 \(y_i=\Psi(t)x_i\) 是 \((x_i,t)\) 的函數,對 \(x_i\) 是線性的,\(\partial^2_{x_i}y_i=0\),Itô 公式的二階項 \(\frac12g^2\partial^2_{x_i}y_i\,dt\) 就是 0;只剩 \(\partial_ty_i\,dt+\partial_{x_i}y_i\,dx_i=\Psi'x_i\,dt+\Psi\,dx_i\)。用乘積法則的語言:\(\Psi\) 沒有 \(dw\) 項,\(d\Psi\cdot dx=\Psi'dt\cdot dx=0\)。

方法一:分析封閉解

封閉解再次確認 \(p_t(\mathbf x_t\mid\mathbf x_0)\) 是高斯。令 \(\phi(s):=e^{-\int_0^sf(u)\,du}g(s)\),它是一個確定性的時間函數(假設 \(f\)、\(g\) 是確定的)。Itô 積分 \(\int_0^t\phi(s)\,d\mathbf w_s\) 是確定性函數對布朗運動的隨機積分,所以是平均為 0 的高斯隨機變數。因此 \(\mathbf x_t\mid\mathbf x_0\) 是一個高斯的仿射變換,本身也是高斯,完全由條件平均和共變異數刻畫:

$$\mathbf m(t):=\mathbb E[\mathbf x_t\mid\mathbf x_0],\qquad\mathbf P(t):=\mathbb E\big[(\mathbf x_t-\mathbf m(t))(\mathbf x_t-\mathbf m(t))^\top\mid\mathbf x_0\big].$$
「確定性函數的 Itô 積分是高斯」

離散化:\(\sum_k\phi(s_k)\,\Delta\mathbf w_k\)。每個 \(\Delta\mathbf w_k\sim\mathcal N(\mathbf 0,\Delta s\,\mathbf I)\) 互相獨立,係數 \(\phi(s_k)\) 是固定的數,所以這是獨立高斯的線性組合,仍是高斯,平均 0、變異數 \(\sum\phi(s_k)^2\Delta s\,\mathbf I\to\int\phi^2ds\,\mathbf I\)。極限保持高斯。如果被積函數是隨機的(例如依賴 \(\mathbf x_s\)),一般就不是高斯了。

平均。用期望的線性,以及「確定性函數的 Itô 積分平均為 0」:

$$\mathbf m(t)=\mathbb E\Big[e^{\int_0^tf(s)ds}\Big(\mathbf x_0+\int_0^t\phi(s)\,d\mathbf w_s\Big)\,\Big|\,\mathbf x_0\Big]=e^{\int_0^tf(s)ds}\,\mathbf x_0.$$

共變異數。令 \(\mathbf z_t:=\int_0^t\phi(s)\,d\mathbf w_s\),則 \(\mathbf x_t-\mathbf m(t)=e^{\int_0^tf(s)ds}\,\mathbf z_t\),所以 \(\mathbf P(t)=e^{2\int_0^tf(s)ds}\,\mathbb E[\mathbf z_t\mathbf z_t^\top]\)。由 Itô isometry,

$$\mathbb E[\mathbf z_t\mathbf z_t^\top]=\Big(\int_0^t\phi^2(s)\,ds\Big)\mathbf I_D,$$

因此

$$\mathbf P(t)=e^{2\int_0^tf(s)ds}\Big(\int_0^t\big(e^{-\int_0^sf(u)du}g(s)\big)^2ds\Big)\mathbf I_D.$$

條件共變異數是各向同性的(isotropic)。

書的註腳(Itô isometry):它把隨機積分和普通積分在期望上連起來;證明需要完整的 Itô 微積分機制,書省略。對過程 \(\bm\psi:[0,T]\to\mathbb R^{D\times D}\),\(\mathbb E\big[\|\int_0^T\bm\psi(t)\,d\mathbf w_t\|^2\big]=\mathbb E\big[\int_0^T\|\bm\psi(t)\|_F^2\,dt\big]\),\(\|\cdot\|_F\) 是 Frobenius 範數;\(\bm\psi(t)\in\mathbb R^D\) 是向量時,積分是純量,式子化成 \(\mathbb E\big[(\int_0^T\bm\psi\,d\mathbf w)^2\big]=\mathbb E\big[\int_0^T\|\bm\psi\|^2dt\big]\)。轉述者註:書在共變異數那一行寫 \(\mathbf x_t-\mathbf m(t)=A(t)\mathbf z_t\) 而沒有定義 \(A(t)\),它就是 \(e^{\int_0^tf(s)ds}\);書也把 \(\phi\) 說成「矩陣值」,在這個設定下它其實是純量函數。

方法二:直接推平均與變異數的 ODE

也可以直接從線性 SDE 推出動差的演化方程(§4.4.3 的式子,B10 第 2 節)。

平均的演化。對 SDE 兩邊取條件期望,用線性:

$$\frac{d\mathbf m(t)}{dt}=\mathbb E[f(t)\mathbf x_t\mid\mathbf x_0]=f(t)\,\mathbb E[\mathbf x_t\mid\mathbf x_0]=f(t)\,\mathbf m(t).$$

共變異數的演化。定義置中的過程 \(\tilde{\mathbf x}_t:=\mathbf x_t-\mathbf m(t)\)。用 Itô 乘積法則:

$$d\big(\tilde{\mathbf x}_t\tilde{\mathbf x}_t^\top\big)=d\tilde{\mathbf x}_t\,\tilde{\mathbf x}_t^\top+\tilde{\mathbf x}_t\,d\tilde{\mathbf x}_t^\top+d\tilde{\mathbf x}_t\,d\tilde{\mathbf x}_t^\top.$$

由 SDE,\(d\tilde{\mathbf x}_t=d\mathbf x_t-d\mathbf m(t)=f(t)\tilde{\mathbf x}_t\,dt+g(t)\,d\mathbf w_t\)。代入乘積法則、取期望:

$$\frac{d\mathbf P(t)}{dt}=\mathbb E\big[f(t)\tilde{\mathbf x}_t\tilde{\mathbf x}_t^\top+\tilde{\mathbf x}_t\tilde{\mathbf x}_t^\top f(t)+g^2(t)\mathbf I_D\big]=2f(t)\,\mathbf P(t)+g^2(t)\,\mathbf I_D.$$

這就重新得到 §4.4.3 的動差演化方程。

取期望時各項怎麼變

代入後,\(d\tilde{\mathbf x}\,\tilde{\mathbf x}^\top=f\tilde{\mathbf x}\tilde{\mathbf x}^\top dt+g\,d\mathbf w\,\tilde{\mathbf x}^\top\),期望中 \(d\mathbf w\) 那一項是 0(新的增量和 \(\tilde{\mathbf x}_t\) 獨立);第二項同理;修正項 \(d\tilde{\mathbf x}\,d\tilde{\mathbf x}^\top=g^2\,d\mathbf w\,d\mathbf w^\top=g^2\mathbf I\,dt\)。這裡是矩陣版的乘積法則,修正項保留整個矩陣而不取 trace;前面的純量版 \(d(\mathbf x^\top\mathbf y)\) 是它的 trace。

代入 VP SDE 驗算

VP SDE:\(f=-\frac12\beta(t)\)、\(g=\sqrt{\beta(t)}\),記 \(B(t)=\int_0^t\beta\)。平均 \(\mathbf m=e^{-B/2}\mathbf x_0\)。共變異數用方法一:\(e^{-B}\int_0^te^{B(s)}\beta(s)\,ds=e^{-B}\big(e^{B}-1\big)=1-e^{-B}\);用方法二:\(P'=-\beta P+\beta\)、\(P(0)=0\),解是 \(P=1-e^{-B}\)。兩者一致,也就是 DDPM 熟悉的 \(\bar\alpha_t=e^{-B(t)}\)、\(\mathbf x_t=\sqrt{\bar\alpha_t}\mathbf x_0+\sqrt{1-\bar\alpha_t}\,\bm\epsilon\)(B10 第 1 節)。

07測度的變數變換:Girsanov 定理書 §C.2

diffusion model 用 SDE 把簡單的雜訊變成豐富的資料分佈。這個變換的核心是一個深刻的想法:只修改 SDE 的確定性部分(漂移),保留底下的隨機性,就能重新詮釋隨機性。這正是 Girsanov 定理登場的地方。

核心想法

考慮一條觀察到的連續軌跡,描述資料從 \(t=0\) 到 \(t=T\) 的演化,記作 \(\mathbf x_{0:T}:=\{\mathbf x_t\mid t\in[0,T]\}\)。Girsanov 定理回答一個基本問題:

QUESTION

給定這一條觀察到的路徑,假設它是由某個 SDE 產生的,和假設它是由另一個 SDE 產生的,它的概似各是多少?

比較兩個產生同一條軌跡的假想模型:它們有相同的初始分佈和擴散係數,只差在確定性的「推力」,也就是漂移函數。為了建立直覺,把 \(\mathbf x_{0:T}\) 想成紙上一條歪歪扭扭的線。一個假設依漂移 \(\mathbf f\) 給軌跡機率,另一個用不同的漂移 \(\tilde{\mathbf f}\)、相同的擴散係數。Girsanov 定理比較對應的路徑測度,量化改變漂移怎麼改變對同一批軌跡的相對權重。

設定

令 \(P_{\mathbf f}\) 和 \(P_{\tilde{\mathbf f}}\) 是兩個 SDE 產生的路徑測度,初始分佈和擴散係數相同、漂移不同:

$$d\mathbf x_t=\mathbf f(\mathbf x_t,t)\,dt+g(t)\,d\mathbf w_t,\qquad d\mathbf x_t=\tilde{\mathbf f}(\mathbf x_t,t)\,dt+g(t)\,d\mathbf w_t.$$

為了簡單,假設在所考慮的區間上 \(g(t)\gt0\),以及 Girsanov 定理所需的標準可積條件。以 \(P_{\tilde{\mathbf f}}\) 為參考路徑測度,\(\mathbf w_t\) 是這個參考測度下的布朗運動。定義漂移的差

$$\bm\delta_t:=\mathbf f(\mathbf x_t,t)-\tilde{\mathbf f}(\mathbf x_t,t).$$

Girsanov 的概似比

Girsanov 定理給出兩個路徑測度之間的 Radon–Nikodym 導數:

$$\frac{dP_{\mathbf f}}{dP_{\tilde{\mathbf f}}}(\mathbf x_{0:T})=\exp\Big(\int_0^T\bm\delta_t^\top g(t)^{-1}\,d\mathbf w_t-\frac12\int_0^T\big\|g(t)^{-1}\bm\delta_t\big\|^2\,dt\Big).$$

這個簡潔的公式是兩個積分的指數:第一個是 Itô 積分,第二個是普通的 Riemann 積分。這個比值在 diffusion model 裡很關鍵,讓我們能比較不同的隨機動態,並把路徑空間上的差異連到以概似為基礎的訓練目標。

Girsanov 定理最好理解成測度的變數變換公式。就像微積分的變數變換透過 Jacobian 行列式在座標系之間轉換積分,Girsanov 定理提供對應的因子(Radon–Nikodym 導數),在「漂移改變、擴散不變」的兩個隨機過程之間轉換機率或期望值。

離散化之後,它就是一串高斯密度比的乘積

用 Euler–Maruyama 把兩個 SDE 離散化。在已知 \(\mathbf x_k\) 時,下一步的增量在兩個模型下分別是 \(\mathcal N\big(\mathbf f\Delta t,g^2\Delta t\,\mathbf I\big)\) 和 \(\mathcal N\big(\tilde{\mathbf f}\Delta t,g^2\Delta t\,\mathbf I\big)\):變異數相同、平均差 \(\bm\delta\Delta t\)。同一個增量 \(\Delta\mathbf x\) 在兩者下的 log 密度比是

$$\frac{\|\Delta\mathbf x-\tilde{\mathbf f}\Delta t\|^2-\|\Delta\mathbf x-\mathbf f\Delta t\|^2}{2g^2\Delta t}=\frac{\bm\delta^\top(\Delta\mathbf x-\tilde{\mathbf f}\Delta t)}{g^2}-\frac{\|\bm\delta\|^2\Delta t}{2g^2}.$$

在參考模型下,\(\Delta\mathbf x-\tilde{\mathbf f}\Delta t=g\,\Delta\mathbf w\),所以每一步貢獻 \(\bm\delta^\top\Delta\mathbf w/g-\frac12\|\bm\delta\|^2\Delta t/g^2\)。初始分佈相同、各步的轉移相乘,整條路徑的密度比就是把這些項加起來再取指數,正好是上面公式的離散版本。Girsanov 定理是這件事在 \(\Delta t\to0\) 時的嚴格版本(連續路徑沒有「密度」,所以要用 Radon–Nikodym 導數的語言)。

兩個推論:權重平均是 1,以及 KL 的形式

權重的期望是 1。\(\mathbb E_{P_{\tilde{\mathbf f}}}\big[\frac{dP_{\mathbf f}}{dP_{\tilde{\mathbf f}}}\big]=1\),而且對任何路徑函數 \(F\),\(\mathbb E_{P_{\mathbf f}}[F]=\mathbb E_{P_{\tilde{\mathbf f}}}\big[F\,\frac{dP_{\mathbf f}}{dP_{\tilde{\mathbf f}}}\big]\):在參考過程下抽路徑、乘上權重,就能算另一個過程下的期望(重要性抽樣,Demo B)。

KL 的形式。\(\mathcal D_{\text{KL}}(P_{\mathbf f}\|P_{\tilde{\mathbf f}})=\mathbb E_{P_{\mathbf f}}\big[\log\frac{dP_{\mathbf f}}{dP_{\tilde{\mathbf f}}}\big]\)。在 \(P_{\mathbf f}\) 下,參考過程的布朗運動要改寫成 \(d\mathbf w_t=d\mathbf w^{P}_t+g^{-1}\bm\delta_t\,dt\)(\(\mathbf w^P\) 是 \(P_{\mathbf f}\) 下的布朗運動),代入得

$$\log\frac{dP_{\mathbf f}}{dP_{\tilde{\mathbf f}}}=\int_0^T\bm\delta_t^\top g^{-1}d\mathbf w^P_t+\frac12\int_0^T\|g^{-1}\bm\delta_t\|^2dt\quad\Longrightarrow\quad\mathcal D_{\text{KL}}(P_{\mathbf f}\|P_{\tilde{\mathbf f}})=\frac12\,\mathbb E_{P_{\mathbf f}}\int_0^T\frac{\|\bm\delta_t\|^2}{g^2(t)}\,dt.$$

這就是 §7.2.3(B18)Schrödinger bridge 的「控制能量」,也是第 9 節路徑 KL 的來源。

Demo B用 Girsanov 權重換漂移

參考過程 \(\tilde P\):布朗運動 \(dx=dw\)、\(x_0=0\)。目標過程 \(P\):Ornstein–Uhlenbeck \(dx=\theta(a-x)\,dt+dw\),被拉向 \(a\),所以 \(\delta_t=\theta(a-x_t)\)、\(g=1\)。只在參考過程下抽 4,000 條路徑(200 步),每條算出 Girsanov 權重 \(\exp\big(\sum\delta_k\Delta w_k-\frac12\sum\delta_k^2\Delta t\big)\),再用加權樣本估計 \(P\) 下的量。

  • 上圖:40 條參考路徑,顏色越深代表權重越大;黑色虛線是 \(P\) 的平均 \(a(1-e^{-\theta t})\)。
  • 下圖:\(x(1)\) 的直方圖。灰色是不加權的參考過程;橙色是加權後的直方圖;黑線是 \(P\) 的精確密度。
參考過程(不加權)加上 Girsanov 權重目標過程的精確值

讀數(瀏覽器實測):

θ、a權重平均有效樣本數EP[x(1)]:加權/精確KL(P‖P̃):加權估計/精確
0.5、11.0043,3120.406/0.3930.129/0.125
1、11.0092,4770.645/0.6320.368/0.358
1、21.0241,0781.272/1.2641.050/1.007
2、21.0252391.730/1.7292.412/2.341
4、10.9784260.977/0.9821.781/1.875
4、20.850241.899/1.9633.755/4.874
  • 權重真的把一個過程變成另一個。不加權時參考過程的平均是 0.009(布朗運動沒有方向);加上權重後,例如 θ = 1、a = 1 時估計出 0.645,精確值 0.632。直方圖從以 0 為中心的寬分佈,變成以 \(a\) 附近為中心的窄分佈。
  • 權重平均是 1。差異小時樣本平均很接近 1。
  • 漂移差越大,權重越退化。KL 越大,少數路徑的權重越重:有效樣本數從 3,312 掉到 24(θ = 4、a = 2,精確 KL 4.87)。這時權重平均只剩 0.850,KL 也嚴重低估:那些權重極大、真正代表目標過程的路徑在參考過程下太罕見,4,000 條裡幾乎抽不到。所以 Girsanov 公式本身沒問題,但當成重要性抽樣用時,只適合兩個過程夠接近的情形;路徑越長、維度越高,退化越快。

08Girsanov 連起概似訓練與 score matching:兩種「一致」書 §C.2.1

了解 Girsanov 定理怎麼在不同漂移假設下比較同一條路徑的概似之後,現在看它對 diffusion model 的意義。回想 diffusion model 的前向 SDE

$$d\mathbf x_t=\mathbf f(\mathbf x_t,t)\,dt+g(t)\,d\mathbf w_t,$$

它在整條軌跡 \(\mathbf x_{0:T}:=\{\mathbf x_t\}_{t=0}^T\) 上誘導出一個路徑分佈 \(P\)(也就是過程在整個時間區間上的聯合分佈)。以可學的 score 函數 \(\mathbf s_{\bm\phi}(\mathbf x_t,t)\) 參數化的反向 SDE 是

$$d\mathbf x_t=\big[\mathbf f(\mathbf x_t,t)-g^2(t)\,\mathbf s_{\bm\phi}(\mathbf x_t,t)\big]dt+g(t)\,d\bar{\mathbf w}_t,$$

它定義另一個軌跡上的路徑分佈 \(P_{\bm\phi}\)。

diffusion model 裡的兩個概念

區分兩個隨機過程可以在哪兩個層級上一致,是很有用的:

  • 概念 1:邊際分佈一致。兩個過程在每個固定時刻 \(t\) 都有相同的分佈 \(p_t(\mathbf x_t)\),也就是它們以時間為索引的「快照」一致。
  • 概念 2:聯合路徑分佈一致。兩個過程在整條軌跡上有相同的機率法則。這個更強的概念也包括不同時刻的狀態怎麼耦合,例如轉移法則和時間上的相依。

整條路徑的法則一致,自動推出邊際一致,因為每個 \(p_t\) 都是把路徑法則投影到時刻 \(t\) 的狀態得到的。反過來一般不成立:兩個過程可以在每個時刻都有相同的邊際,卻在這些邊際之間有不同的耦合。SDE 和它的 PF-ODE 是一個重要的例子:它們有相同的邊際密度路徑,但樣本軌跡和路徑法則一般不同(B34 第 8 節的 Remark 與 Demo C)。

09Girsanov 把 score 誤差連到路徑法則的不一致書 §C.2.1

精確的反向 SDE 滿足比較強的那個概念。在標準的正則條件下,如果從精確的終端邊際 \(p_T\) 出發,並使用真的 score \(\nabla_{\mathbf x}\log p_t(\mathbf x)\),它就是前向擴散的時間反轉,因此重現前向過程完整的、時間反轉後的路徑法則。

令 \(P^{\text{rev}}\) 是這個精確的反向路徑法則,\(P_{\bm\phi}\) 是把真的 score 換成 \(\mathbf s_{\bm\phi}\)、並從 \(p_{\text{prior}}\) 出發所得到的學到的反向路徑法則。把路徑空間的 KL 拆成「初始分佈的不一致」和「條件路徑法則的不一致」,再把兩個過程用同一個遞增的反向時間時鐘表示,對後者套用 Girsanov 定理,就得到(用原本的加噪時間標記 \(t\)):

$$\mathcal D_{\text{KL}}\big(P^{\text{rev}}\,\|\,P_{\bm\phi}\big)=\mathcal D_{\text{KL}}\big(p_T\,\|\,p_{\text{prior}}\big)+\frac12\int_0^Tg^2(t)\,\mathbb E_{\mathbf x_t\sim p_t}\Big[\big\|\mathbf s_{\bm\phi}(\mathbf x_t,t)-\nabla_{\mathbf x}\log p_t(\mathbf x_t)\big\|^2\Big]dt.$$

第一項量測真的終端分佈和用來開始生成的先驗之間的不一致;\(p_T=p_{\text{prior}}\) 時它是 0。第二項量測學到的反向漂移和精確的反向漂移之間累積的不一致。

從 Girsanov 到這個式子

拆開路徑 KL。對任何兩個路徑法則,KL 的連鎖律給出 \(\mathcal D_{\text{KL}}(P\|Q)=\mathcal D_{\text{KL}}(P_{\text{start}}\|Q_{\text{start}})+\mathbb E_{\mathbf x_{\text{start}}\sim P}\big[\mathcal D_{\text{KL}}(P(\cdot\mid\mathbf x_{\text{start}})\|Q(\cdot\mid\mathbf x_{\text{start}}))\big]\)。反向過程的起點是 \(t=T\):\(P^{\text{rev}}\) 從 \(p_T\) 出發,\(P_{\bm\phi}\) 從 \(p_{\text{prior}}\) 出發,這給出第一項。

條件路徑用 Girsanov。起點固定後,兩個反向過程有相同的擴散係數 \(g\),漂移分別是 \(\mathbf f-g^2\nabla\log p_t\) 和 \(\mathbf f-g^2\mathbf s_{\bm\phi}\),差是 \(\bm\delta_t=g^2(\mathbf s_{\bm\phi}-\nabla\log p_t)\)。由第 7 節補充框的第二個推論,

$$\frac12\,\mathbb E_{P^{\text{rev}}}\int_0^T\frac{\|\bm\delta_t\|^2}{g^2}\,dt=\frac12\int_0^Tg^2(t)\,\mathbb E\big\|\mathbf s_{\bm\phi}-\nabla\log p_t\big\|^2dt.$$

期望是在精確的反向路徑上取的,而精確反向過程在每個時刻的邊際就是 \(p_t\),所以期望可以寫成 \(\mathbf x_t\sim p_t\)。用反向時間 \(\tau=T-t\) 時 \(dt\) 和 \(d\tau\) 只差正負號,換回 \(t\) 後積分範圍仍是 \([0,T]\)。

因此,用特定的 likelihood 權重 \(g^2(t)\) 做 score matching,有直接的路徑空間詮釋:最小化加權的 score 誤差,就是在最小化精確反向路徑法則和學到的反向路徑法則之間的 KL,只差一個固定的終端分佈項。如果用 denoising score matching 取代 marginal score matching,對應的目標只差一個和參數無關的常數(§3.3,B06)。不同的時間權重一般就不對應這個路徑空間的 KL(訓練目標裡的權重選擇見 §6.2.2,B15 第 6 節)。

10連到資料概似書 §C.2.1

路徑空間的 KL 也控制了生成分佈和資料分佈之間的差異。取軌跡的終點是一個可測的投影,而 KL divergence 在邊際化之下不會變大,所以

$$\mathcal D_{\text{KL}}\big(p_{\text{data}}\,\|\,p_{\bm\phi}\big)\le\mathcal D_{\text{KL}}\big(P^{\text{rev}}\,\|\,P_{\bm\phi}\big),$$

\(p_{\bm\phi}\) 是生成過程在資料時間(\(t=0\))的邊際。

和上一節的式子合起來:用 likelihood 加權的 score matching,加上終端分佈的不一致,給出資料端 KL divergence 的上界,因此也就是期望負對數概似的上界,只差一個和 \(\bm\phi\) 無關的常數(Song et al. 2021)。

「KL 在邊際化之下不會變大」

還是用 KL 的連鎖律,這次按資料端的終點 \(\mathbf x_0\) 拆:

$$\mathcal D_{\text{KL}}(P^{\text{rev}}\|P_{\bm\phi})=\mathcal D_{\text{KL}}(p_{\text{data}}\|p_{\bm\phi})+\mathbb E_{\mathbf x_0\sim p_{\text{data}}}\Big[\mathcal D_{\text{KL}}\big(P^{\text{rev}}(\cdot\mid\mathbf x_0)\,\|\,P_{\bm\phi}(\cdot\mid\mathbf x_0)\big)\Big].$$

第二項是 KL 的期望,非負,所以第一項不超過整體。等號成立的條件是:給定終點後,兩個過程的路徑法則(幾乎處處)相同。

為什麼是負對數概似的上界

\(\mathcal D_{\text{KL}}(p_{\text{data}}\|p_{\bm\phi})=\mathbb E_{p_{\text{data}}}[\log p_{\text{data}}]-\mathbb E_{p_{\text{data}}}[\log p_{\bm\phi}]\)。第一項是資料的負熵,和 \(\bm\phi\) 無關。所以

$$\mathbb E_{p_{\text{data}}}\big[-\log p_{\bm\phi}(\mathbf x)\big]\le\mathcal D_{\text{KL}}(p_T\|p_{\text{prior}})+\frac12\int_0^Tg^2\,\mathbb E\|\mathbf s_{\bm\phi}-\nabla\log p_t\|^2dt+H(p_{\text{data}}),$$

\(H(p_{\text{data}})\) 是資料分佈的(微分)熵。最小化右邊的加權 score 誤差,就是在壓低負對數概似的一個上界。這和 §4.3.2 用 PF-ODE 精確算概似(B09 第 5 節)是兩回事:那裡算的是 ODE 生成器的概似,這裡界住的是 SDE 生成器的概似。

轉述者註:書的附錄在這句話之後結束,也就是全書正文與附錄的最後一句。

Demo C路徑 KL = 先驗不一致 + 加權的 score 誤差 ≥ 資料 KL

一維、全部是高斯,所以每個量都能精確算。前向 OU \(dx=-x\,dt+\sqrt2\,dw\)(\(g^2=2\)),資料 \(p_{\text{data}}=\mathcal N(2,0.5^2)\),先驗 \(\mathcal N(0,1)\)。真的 score \(\nabla\log p_t(x)=-(x-m_t)/v_t\),\(m_t=2e^{-t}\)、\(v_t=0.25e^{-2t}+1-e^{-2t}\)。四種「學到的」score:

  • 精確:\(\mathbf s_{\bm\phi}=\nabla\log p_t\)。
  • 偏移:每個時刻都多加 0.5。
  • 過度自信:真的 score 乘上 1.3(把每個 \(p_t\) 當成比較窄)。
  • 沒訓練:\(\mathbf s_{\bm\phi}=-x\),也就是先驗 \(\mathcal N(0,1)\) 的 score。

對每一種,算三件事:(1) 書的公式右邊,終端 KL 加上加權 score 誤差;(2) 不用公式,直接沿 3,000 條精確反向路徑(Euler–Maruyama、400 步)把每一步的高斯轉移密度比和起點的密度比加起來,平均得到 \(\log\frac{dP^{\text{rev}}}{dP_{\bm\phi}}\) 的期望;(3) 用學到的反向 SDE 從先驗出發的平均、變異數 ODE 算出生成的分佈,求 \(\mathcal D_{\text{KL}}(p_{\text{data}}\|p_{\bm\phi})\)。

  • 上圖:資料(黑)、先驗(灰虛線)、生成的分佈(藍虛線)。
  • 下圖:被積分的 score 誤差 \(\frac12g^2\,\mathbb E_{p_t}\|\mathbf s_{\bm\phi}-\nabla\log p_t\|^2\) 隨加噪時間 \(t\) 的變化;面積就是公式的第二項。
pdata先驗(虛線)生成的 pφ(虛線)加權 score 誤差

讀數(瀏覽器實測):

score、TKL(pT‖prior)加權 score 誤差路徑 KL(公式)路徑 KL(沿路徑估計)KL(pdata‖pφ)
精確、1/2/40.2734/0.0367/0.000700.2734/0.0367/0.00070.268/0.034/0.0000.0113/0.0002/0.0000
偏移、1/2/4同上0.250/0.500/1.0000.523/0.537/1.0010.528/0.549/1.0210.088/0.227/0.282
過度自信、1/2/4同上0.148/0.242/0.4220.421/0.278/0.4230.411/0.276/0.4310.066/0.065/0.065
沒訓練、1/2/4同上2.045/2.282/2.3182.318(三者相同)2.300/2.294/2.2842.318
  • 公式和直接估計一致。沿精確反向路徑直接平均 log 密度比,和「終端 KL + 加權 score 誤差」在抽樣誤差(最大約 ±0.03)內相同:Girsanov 公式確實把一整條路徑的 KL 化成了沿時間積分的 score 誤差。
  • 資料 KL 一定不超過路徑 KL。每一列最右欄都 ≤ 路徑 KL。精確 score 時,路徑 KL 只剩先驗不一致,\(T\) 越大越小;資料 KL 更小。
  • 上界可以很鬆。偏移 +0.5 在 \(T=4\) 時路徑 KL 1.00,資料 KL 只有 0.28:誤差在每個時刻都累積進路徑 KL,但生成的分佈只「看得到」其中一部分:加噪時間 \(t\) 大的地方(也就是生成的前段),反向漂移近似 \(-y+2m_t\),會把較早引入的偏差慢慢收縮掉,留到終點的主要是生成後段的偏差。過度自信的 score 讓生成的分佈變窄(標準差 0.395 而不是 0.5),資料 KL 約 0.065,幾乎不隨 \(T\) 變。
  • 等號的例子。沒訓練的 score \(-x\) 讓學到的反向過程就是穩態的 OU,生成的分佈永遠是 \(\mathcal N(0,1)\),資料 KL = 2.318 恰好等於路徑 KL。原因(轉述者補充):穩態 OU 是時間可逆的,給定資料端的終點後,它的路徑法則和真的反向過程給定同一終點的路徑法則都是「從那一點出發的前向 OU」,上一節推導框裡的第二項是 0。這時所有的不一致都集中在終點上。直接估計的 2.28–2.30 略低,是 Euler–Maruyama 400 步的離散化誤差加上抽樣誤差。

與 CS236 的對照

本頁CS236 複習頁
\((dw)^2=dt\)、Itô 公式、VE/VP 前向 SDE補充課 E
Fokker–Planck 方程補充課 F
反向 SDE、PF-ODE 與概似、score matching 的權重 \(\lambda(\sigma)\)第 14 講
ELBO 拆成每一步的 KL、ε 參數化化成 DSM第 16 講

常見誤解

誤解:「\(dw\) 很小,所以 \((dw)^2\) 可以忽略」。\(dw\) 是 \(\mathcal O(\sqrt{dt})\),平方後和 \(dt\) 同階;加總後收斂到確定的 \(\int dt\)(第 2 節、Demo A)。
誤解:「Itô 修正項只是更高階的小修正,格子夠細就不重要」。剛好相反:格子越細,古典連鎖律的誤差並不會變小,它系統性地少算 \(\frac12\int h''g^2dt\)(Demo A)。
誤解:「Itô 積分 \(\int h'\,dw\) 的期望是 0,所以 \(\mathbb E[h(x_t)]\) 只由漂移決定」。還有 \(\frac12g^2h''\) 這一項;Fokker–Planck 方程的 Laplacian 就是從它來的(第 5 節)。
誤解:「Girsanov 可以比較任意兩個 SDE」。它要求擴散係數相同、只差漂移(以及可積條件)。擴散係數不同時,兩個路徑測度一般互相奇異,沒有 Radon–Nikodym 導數。
誤解:「有了 Girsanov 權重,就能用任何參考過程估計任何目標過程」。公式沒錯,但漂移差大時權重極度不均,有效樣本數崩潰(Demo B)。
誤解:「邊際一致就是同一個過程」。路徑法則一致才是;SDE 和 PF-ODE 只有邊際一致(第 8 節)。
誤解:「任何時間權重的 score matching 都是路徑 KL」。只有 likelihood 權重 \(g^2(t)\) 才是(第 9 節)。
誤解:「路徑 KL 小,資料 KL 就跟它差不多」。它只是上界,可能很鬆(Demo C 的偏移例子)。

自我測驗

1. 為什麼 \((dt)^2\) 和 \(dt\,dw\) 可以丟掉,\((dw)^2\) 卻不行?
\(\sum(\Delta t)^2=T\Delta t\to0\),\(\sum\Delta t\,\Delta w=\Delta t\,w(T)\) 的大小是 \(\mathcal O(\Delta t)\to0\);但 \(\sum(\Delta w)^2\) 的平均是 \(T\)、變異數 \(2T\Delta t\to0\),收斂到 \(T\),所以 \((dw)^2=dt\)。
2. 寫出一維 Itô 公式,並指出哪一項是古典連鎖律沒有的。
\(dh=(\partial_th+f\partial_xh+\frac12g^2\partial_x^2h)\,dt+g\,\partial_xh\,dw\)。\(\frac12g^2\partial_x^2h\,dt\) 是新的,來自 \((dx)^2=g^2dt\)。
3. 用 Itô 公式算 \(dx=\sigma\,dw\)、\(x_0=0\) 時的 \(\mathbb E[x_t^2]\)。
\(d(x^2)=2x\sigma\,dw+\sigma^2dt\)。積分取期望,Itô 積分的期望為 0,得 \(\mathbb E[x_t^2]=\sigma^2t\)。
4. 多維 Itô 公式裡為什麼是 \(\mathrm{Tr}(\nabla^2h)\)?
二階項 \(\frac12\sum\partial_i\partial_jh\,dx_idx_j\),\(dx_idx_j=g^2dw_idw_j=g^2\delta_{ij}dt\),只剩對角線:\(\frac12g^2\sum\partial_i^2h\,dt\)。
5. 寫出 Itô 乘積法則。什麼時候沒有修正項?
\(d(\mathbf x^\top\mathbf y)=d\mathbf x^\top\mathbf y+\mathbf x^\top d\mathbf y+\mathrm{Tr}[d\mathbf x\,d\mathbf y^\top]\);同一個布朗運動驅動、係數 \(b,d\) 時修正項是 \(Db\,d\,dt\)。其中一個是確定性的,或兩者由獨立的布朗運動驅動時,修正項為 0。
6. 用 Itô 公式推 Fokker–Planck 方程的五個步驟是什麼?
對測試函數 \(\phi\) 套 Itô;取期望(Itô 積分消失);用 \(p_t\) 寫成積分;對 \(\nabla\phi^\top\mathbf f\) 分部積分一次、對 \(\mathrm{Tr}\nabla^2\phi\) 分部積分兩次;和 \(\frac{d}{dt}\int\phi p_t\) 比對,對所有 \(\phi\) 成立,所以 \(\partial_tp=-\nabla\cdot(\mathbf fp)+\frac12g^2\Delta p\)。
7. 解線性 SDE \(d\mathbf x=f\mathbf x\,dt+g\,d\mathbf w\),並寫出條件平均與共變異數。
令 \(\mathbf y=e^{-\int f}\mathbf x\),Itô 給 \(d\mathbf y=e^{-\int f}g\,d\mathbf w\)。\(\mathbf x_t=e^{\int_0^tf}[\mathbf x_0+\int_0^te^{-\int_0^sf}g\,d\mathbf w]\)。平均 \(e^{\int f}\mathbf x_0\);共變異數 \(e^{2\int f}\int_0^t(e^{-\int_0^sf}g)^2ds\,\mathbf I\)(Itô isometry)。等價的 ODE:\(\mathbf m'=f\mathbf m\)、\(\mathbf P'=2f\mathbf P+g^2\mathbf I\)。
8. 寫出 Girsanov 的 Radon–Nikodym 導數,並用 Euler–Maruyama 解釋它。
\(\exp\big(\int\bm\delta^\top g^{-1}d\mathbf w-\frac12\int\|g^{-1}\bm\delta\|^2dt\big)\)。離散化後每一步是兩個同變異數、平均差 \(\bm\delta\Delta t\) 的高斯的密度比,取 log 正好是 \(\bm\delta^\top\Delta\mathbf w/g-\frac12\|\bm\delta\|^2\Delta t/g^2\)。
9. 「邊際一致」和「路徑一致」哪個比較強?舉一個只有邊際一致的例子。
路徑一致比較強,它推得出邊際一致。SDE 和它的 PF-ODE 每個時刻的邊際相同,路徑法則不同。
10. 推導 \(\mathcal D_{\text{KL}}(P^{\text{rev}}\|P_{\bm\phi})\) 的公式。
連鎖律拆成起點的 \(\mathcal D_{\text{KL}}(p_T\|p_{\text{prior}})\) 加上條件路徑的 KL。後者由 Girsanov:漂移差 \(g^2(\mathbf s_{\bm\phi}-\nabla\log p_t)\),KL \(=\frac12\mathbb E\int\|\bm\delta\|^2/g^2=\frac12\int g^2\mathbb E_{p_t}\|\mathbf s_{\bm\phi}-\nabla\log p_t\|^2dt\)。
11. 為什麼 \(\mathcal D_{\text{KL}}(p_{\text{data}}\|p_{\bm\phi})\le\mathcal D_{\text{KL}}(P^{\text{rev}}\|P_{\bm\phi})\)?這對訓練有什麼意義?
按終點拆的連鎖律多出一個非負的條件 KL。所以 \(g^2\) 加權的 score matching 加上終端不一致,是資料 KL、也是負對數概似(差一個常數)的上界。