← 返回筆記

研究領域 / Flow-Based Generative Models / From Noise to Data / 2026年6月

Denoising:生成可以被看成局部修復

可閱讀 7 分鐘閱讀

前面幾篇給了統一的動態地圖;從這篇開始,我們看生成的第一種局部訊號:去噪。

你大概聽過有人說「diffusion 就是去噪模型」。乍聽很怪:去噪不是把雜訊照修乾淨的影像處理嗎?它怎麼會「生成」出全新的圖?這篇就把這個轉折講清楚。

去噪怎麼會等於生成?

關鍵的轉念是這樣:如果一個模型在每一種噪聲程度下,都知道怎麼把資料往乾淨的方向修一點點,那我們就能從一團純噪聲出發,反覆做很多次小修正,一路修回一張清晰的樣本。生成,於是被拆解成一長串「局部修復」。

先抓住這個畫面

不必一步畫出整張圖。只要在每個模糊程度上,都能猜出「該往哪修一點」,把這些小修正串起來,純噪聲就會慢慢顯影成資料。

為什麼不一步到位,要拆成很多步?

去噪聽起來只是「把髒的修乾淨」,真正巧妙的其實是拆步:既然最後要的是一張清楚的圖,為什麼不訓練一個模型,看一眼純噪聲就一步畫出來?

比較兩種輸入。第一種是一團純 Gaussian noise——它裡面沒有任何線索,要把它變成一隻狗、一隻貓、還是一棟房子都「同樣合理」,因為純噪聲幾乎對應到所有可能的圖。要模型從這裡一步生出一張清楚的狗,等於要它在毫無提示下,押中一個極其特定的答案;這是個極難、極不穩定的問題。

第二種是一張被加了一點噪聲、看起來有點髒、有點糊的狗照片。細節雖然糊掉了,你一眼還是看得出「這是狗,不是貓」。主體已經定下來,「把它再修清楚一點」就成了一個好回答的問題——你知道該往哪修。

純噪聲太曖昧(對應太多種可能),所以難一步還原;只要還看得出大概是什麼,「再修清楚一點」就變得容易。

diffusion 整個設計就建立在這個落差上:與其逼模型回答「從零生出一張圖」這個最難的問題,不如把它切成一長串「在某個噪聲程度下,把已經半成形的圖再修清楚一點」的簡單問題。 噪聲很重時,模型只需要決定大方向(先定下大致輪廓、是狗還是貓);噪聲變輕時,再逐步補上毛色、紋理這些細節。資訊是一層一層浮現的,每一步都只面對它那一格、好回答的版本,難度被均攤掉了——這也回頭解釋了上一段為什麼要「在每一種噪聲程度上」都學會修一點。

(一個誠實的提醒:這裡說的「弄髒、變糊」,具體是加 Gaussian noise——也就是下一節 xt=αtx0+σtϵx_t=\alpha_t x_0+\sigma_t\epsilon 那種加噪,不是把照片做模糊化(blur)處理;用「糊」只是借一個看得見的畫面。真的改用「模糊」當破壞方式,是另一條支線 cold / blurring diffusion。)

這個「拆成許多小步、每步只解一個簡單的局部問題」,其實就是 把樣本想成粒子 講的同一件事——只是一個盯著粒子在空間裡被搬運,一個盯著資料被加噪與去噪的程度;兩副鏡頭看的是同一段過程。

想一想為什麼 diffusion 要把生成拆成很多步去噪,而不直接訓練一個「看一眼純噪聲就輸出整張圖」的模型?

把畫面寫成數學

先定義「加噪」:對一筆乾淨資料 x0x_0,混入高斯噪聲

xt=αtx0+σtϵ,ϵN(0,I),x_t = \alpha_t\, x_0 + \sigma_t\, \epsilon, \qquad \epsilon \sim \mathcal{N}(0, I),

其中 αt,σt\alpha_t, \sigma_t 是事先定好的 schedule(訊號逐漸變弱、噪聲逐漸變強)。模型 ϵθ\epsilon_\theta 的任務,是看著帶噪的 xtx_t 與程度 tt把混進去的噪聲猜回來

L=Ex0,ϵ,t[ϵθ(xt,t)ϵ2].\mathcal{L} = \mathbb{E}_{x_0,\, \epsilon,\, t}\Big[\, \big\| \epsilon_\theta(x_t, t) - \epsilon \big\|^2 \,\Big].

這是一個乾淨的監督式回歸:輸入 xtx_t,標準答案是 ϵ\epsilon。猜到了噪聲,就等於知道該往哪個方向修。生成時反過來:從純噪聲開始,一步步用 ϵθ\epsilon_\theta 估計並移除一點噪聲,直到還原出樣本。

一個一定要先講清楚的混淆點:時間方向

這裡有個讓很多人讀論文時當機的慣例差異。本系列t:01t: 0 \to 1t=0t=0 是 noise、t=1t=1 是 data(沿著生成方向走)。但多數 diffusion 論文用相反方向:t=0t=0 是乾淨資料、t=Tt=T 是純噪聲,「前向過程」隨 tt 增加而加噪,「反向過程」(生成)則是把 ttTT 走回 00

想一想在標準 diffusion 論文的慣例下,「生成新樣本」對應到時間怎麼走?

記住這件事,你之後對照公式就不會被 t=0t=0 到底是噪聲還是資料搞混。

幾個容易想歪的地方

想一想diffusion 的去噪訓練,和一般「把雜訊照片修乾淨」的影像去噪任務,最大的差別是什麼?

這怎麼接到論文?

denoising 目標(預測 ϵ\epsilon)是 DDPM 一系的訓練主力,撐起了高品質的影像、音訊、影片與 3D 生成。它的形式極簡——一個 L2 回歸——卻能逼出驚人的樣本品質,也是 diffusion 好訓練、好擴展的原因之一。

下一步

「預測噪聲」其實偷偷連到一個更幾何的物件。如果你問「往哪修,資料才更可能?」那個方向,就是 score。下一篇 Score Function:資料分布的局部方向感 會說明 score 是什麼,並揭穿一件事:去噪和 score,根本是同一件事換個寫法。

參考文獻

  1. Ho, J., Jain, A., Abbeel, P. Denoising Diffusion Probabilistic Models. NeurIPS 2020.
  2. Sohl-Dickstein, J., et al. Deep Unsupervised Learning using Nonequilibrium Thermodynamics. ICML 2015.