反向去雜訊過程
反向去雜訊過程是擴散模型中困難、需要學習的那一半——一種修復行為,把前向過程刻意的破壞還原回去。你從一張純隨機雜訊的畫布開始,一步一步刷掉一點雜訊,每一刷都由一個神經網路引導,它問的是:「以目前看起來這麼雜的情況,往回退一格、較乾淨的版本大概長什麼樣?」經過許多次這樣的刷洗,一張清晰、連貫的影像便從原本的靜電中浮現。這正是真正在生成圖片的過程。
形式上,反向過程同樣被建模為一條馬可夫鏈,p_theta(x_{t-1} | x_t) = N(x_{t-1}; mu_theta(x_t, t), Sigma_t)。網路並不直接輸出乾淨影像;它通常預測雜訊 epsilon_theta(x_t, t),再由一個固定的代數公式從中算出較乾淨影像的均值 mu_theta。變異數 Sigma_t 通常固定為排程的數值(不過也可以學習)。這之所以行得通的深層原因是:當前向步驟夠小時,真正的反向條件分布本身就近似高斯——因此一個帶有學習得來均值的高斯模型正是恰當的函數形式,剩下要學的只有把它的中心擺在哪裡。
在原始的 DDPM 取樣器中,每個反向步驟都是隨機的:算出均值之後,你會再加入一小劑新鮮的高斯雜訊(最後一步除外),這能避免軌跡塌縮,並讓單一起始雜訊映射到一個豐富的影像分布。這就是為什麼從不同初始雜訊出發的兩次執行會得到不同圖片,也是為什麼同一個提示詞能產生無窮無盡的變化。反向步驟數量在速度與品質之間取捨:步驟越多,每次修正越小、越精確,但生成越慢——這正是 DDIM 與少步蒸餾方法所攻克的核心張力。
為什麼不乾脆跳過整條鏈,讓網路像 GAN 那樣一次把雜訊映射成影像?因為反向條件分布只有在步驟很小時才近似高斯;在一次巨大的跳躍中,它會變成一個高度多峰的分布,單一個高斯無法捕捉,於是一次性的預測就退化成一張模糊的平均影像。正是「迭代」讓一個簡單的高斯模型得以表示任意複雜的資料分布。