生成式視覺:擴散與文生圖

去雜訊擴散機率模型

去雜訊擴散機率模型(DDPM)是 Ho、Jain 與 Abbeel 在 2020 年提出的表述,它讓擴散變得實用,並點燃了整個領域。它的核心發現幾乎樸素得令人意外:你可以拋開大部分令人生畏的機率理論,改用一個單純的均方誤差損失來訓練模型。具體來說,取一張乾淨影像,用已知量的高斯雜訊把它破壞到某個隨機時間步,然後要求網路猜出你加入了什麼雜訊。把這單一的迴歸目標在所有影像與所有時間步上取平均,就足以學出一個強大的影像生成器。

形式上,DDPM 把它的訓練目標推導為資料對數似然的變分下界(就是變分自編碼器 VAE 背後的同一套機制),但接著將其簡化為損失 L = E[ || epsilon - epsilon_theta(x_t, t) ||^2 ]。這裡 epsilon 是破壞過程中抽出的真實高斯雜訊,x_t 是時間步 t 的加雜訊影像,epsilon_theta 是網路的預測。完整變分下界本應分配給各時間步的權重被丟掉了(設為一),作者經驗上發現這反而改善了樣本品質——這就是著名的「簡化」目標。在取樣時,訓練好的 epsilon 預測器被代入一個祖先式取樣器(ancestral sampler),它一步一步走過反向鏈,並在每一步注入少量新鮮雜訊以維持過程的隨機性。

DDPM 之所以重要,是因為它是描述其他一切方法時的標準參照點:DDIM 是「確定性且更快的 DDPM」,無分類器引導是「強化條件的 DDPM」,潛在擴散是「在壓縮空間中執行的 DDPM」。理解 DDPM 的前向破壞、簡化損失與祖先式反向取樣器,等於掌握了整個擴散文獻的詞彙。它的限制——要達到最佳品質需要數百甚至一千個依序步驟——正是接下來十年研究努力削減的問題。

一個 DDPM 訓練步驟:從資料集抽出影像 x_0,從 {1,...,1000} 均勻抽出 t,抽出雜訊 epsilon ~ N(0, I),組成 x_t = sqrt(alpha_bar_t) x_0 + sqrt(1 - alpha_bar_t) epsilon,執行 epsilon_theta(x_t, t),並對 || epsilon - epsilon_theta ||^2 做一次梯度更新。沒有判別器、沒有對手——純粹只是迴歸。

一個微妙但重要的點:epsilon 預測、x_0 預測(直接預測乾淨影像)與 v 預測(一種在兩者之間內插的「速度」)其實都是同一個模型的不同重參數化,彼此可以互相換算。它們的差別主要在於跨時間步的數值條件——舉例來說,v 預測在高雜訊水準下表現較好,因此在某些蒸餾與高解析度設定中較受青睞。

又称
DDPMHo et al. 2020