生成模型理論

正規化流(normalizing flows)

正規化流透過一個可逆函數把一個簡單分布扭曲成一個複雜分布。從容易取樣的雜訊(例如標準高斯)出發,把它推過一個可學習的雙射,輸出就是你的資料分布;把雙射反向跑,任何資料點都能乾淨地映回它的雜訊。由於映射可逆,而且你能精確追蹤它如何拉伸與壓縮體積,你就得到擴散與 GAN 給不了的東西:對每一個點都精確且可計算的似然。

其機制是變數變換公式,它說:變換後變數的對數密度等於基底對數密度加上變換之 Jacobian 行列式絕對值的對數。設計上的挑戰是建構表達力強、卻又能廉價算出 Jacobian 行列式的雙射。耦合層以一半座標為函數來更新另一半座標,得到三角形 Jacobian,其行列式是對角元素的乘積;自迴歸流則一次處理一個座標、如出一轍。許多這樣的層疊合成一個靈活的流,並以精確的最大似然訓練。

在校準密度很重要的場合,正規化流大放異彩,例如變分推論、基於模擬的推論與異常偵測,但「可逆加上可處理 Jacobian」的限制壓低了每層的表達力,這也是它在原始影像保真度上一度被擴散蓋過的原因。

\log p_X(x)=\log p_Z\big(f(x)\big)+\log\Big|\det \tfrac{\partial f}{\partial x}\Big|

變數變換:精確的似然,前提是 Jacobian 行列式算得便宜。

精確似然是正規化流的超能力,也是它的牢籠:可逆性迫使潛在空間與資料同維,不像 VAE 那種壓縮式瓶頸。

又称
normalizing flow正規化流