筆記來源 [DeepBayes2019]: Day 5, Lecture 3. Langevin dynamics for sampling and global optimization 前半小時. 非常精彩!
粒子 $x$ follow Langevin dynamics 的話 ($x'$ 為此時的位置, $x$ 為經過無窮小的時間, $dt$, 後的位置):
$$x-x'=-\nabla U(x')dt+\sigma\sqrt{dt}\mathcal{N}(0,I)$$ 則 $x$ 隨時間的機率分布 $p_t(x)$ 會滿足 Fokker-Planck equation 這種 Stochastic Differential Equation (SDE) 的形式:
$$\frac{\partial }{\partial t}p_t(x)=\nabla p_t(x)^T\nabla U(x)+p_t(x)\text{div}\nabla U(x)+\frac{1}{2}\sigma^2\nabla^2p_t(x)$$ 其中 $\nabla^2$ 是 Laplacian operator, 定義是 $\nabla^2 f := \sum_i {(\partial^2f / \partial x_i^2})$, 而 $\text{div}$ 是 divergence 定義是 $\nabla^2 F := \sum_i {(\partial F_i / \partial x_i})$.
或這麼寫也可以 (用 $\text{div}(p\vec u)=\nabla p^T\vec u+p\text{div}(\vec u)$ 公式, 更多 divergence/curl 的微分[參考這, or YouTube]):
$$\frac{\partial }{\partial t}p_t(x)=\text{div}(p_t(x)\nabla U(x))+\frac{1}{2}\sigma^2\nabla^2p_t(x)$$ 而從 F-P equation 我們可以發現最後 $t\rightarrow\infty$ 時某種設定下會有 stationary 分佈.
而如果將要採樣的目標分佈 $p(x)$ 設定成這種 stationary 分佈的話.
由於是 stationary 表示就算繼續 follow Langevin dynamics 讓粒子 $x$ 移動 (更新), 更新後的值仍然滿足目標分佈 $p(x)$, 因此達到採樣效果!
而這也是 Denoising Diffusion Probabilistic Models (DDPM) 做採樣時的方法.
接著詳細記錄 Langevin dynamics, Fokker-Planck equation 推導, 以及 stationary 分佈和採樣方法.
如果讀者知道 Continuity equation 的話, 應該會發現與 F-P equation 非常相似. 它們的關聯可以參考 “Flow Matching for Generative Modeling” 論文的 Appendix D.

不過關鍵是怎麼找? 這樣聽起來似乎需要為每個 OPs 都配上對應可訓練的權重, 最後選擇權重大的那些 OPs? 以及怎麼訓練這些架構權重?