生成式視覺:擴散與文生圖
雜訊排程
雜訊排程是決定在前向過程中影像「化為靜電」的速度有多快的配方——也就是每個時間步要加入多少雜訊。可以把它想成控制「破壞速度」的旋鈕。加雜訊太快,早期的時間步就已經毀掉幾乎一切,留給網路可學的有用訊號很少;加得太慢,則會浪費掉那些影像幾乎沒變化的步驟。一個好的排程會把去雜訊的難度均勻地分攤到各時間步,讓網路把容量花在真正重要的地方。
具體而言,排程就是每步變異數的序列 beta_1, ..., beta_T,或等價地,是決定每一步訊雜比的累積量 alpha_bar_t。原始的 DDPM 使用線性排程(linear schedule),beta 從一個小值線性增長到較大值。Nichol 與 Dhariwal 後來指出這在尾端過於突兀地摧毀了高解析度資訊,並提出餘弦排程(cosine schedule),它在中段時間步保留更多訊號,改善了樣本品質,尤其在較高解析度下。排程在訓練前就固定下來,並由前向與反向過程共用。
排程與一切都互相牽動:它設定了網路在每個 t 所看到的訊雜比,這會影響 epsilon、x_0 還是 v 預測的數值條件較佳;它影響你需要多少取樣步驟;而在高解析度下,它必須往更多雜訊的方向偏移(因為相鄰像素彼此相關,固定排程對一張大圖實際造成的破壞,比對小圖要少)。現代系統往往會針對其運作的解析度與潛在空間重新推導或重新縮放排程,而不是盲目沿用 DDPM 的預設值。
一個常被忽略的失敗模式是「終端訊雜比」的問題:許多實作在最後一個時間步從未真正讓訊號歸零,於是訓練時網路總會看到真實影像的一抹淡淡痕跡——但取樣時它卻從沒有這種痕跡的純雜訊開始。這種不一致會限制可達到的亮度與對比。強制讓終端訊雜比歸零,能修正那種偏灰、只會產出中等亮度影像的問題。
又稱