
©PaperWeekly 原創 ·作者 | 蘇劍林對於生成擴散模型來說,一個很關鍵的問題是生成過程的方差應該怎麼選擇,因為不同的方差會明顯影響生成效果。在《生成擴散模型漫談:DDPM = 自回歸式 VAE》我們提到,DDPM 分別假設數據服從兩種特殊分布推出了兩個可用的結果;《生成擴散模型漫談:DDIM = 高觀點DDPM》中的 DDIM 則調整了生成過程,將方差變為超參數,甚至允許零方差生成,但方差為 0 的 DDIM 的生成效果普遍差於方差非 0 的 DDPM;而《生成擴散模型漫談:一般框架之 SDE 篇》顯示前、反向 SDE 的方差應該是一致的,但這原則上在 時才成立;《Improved Denoising Diffusion Probabilistic Models》則提出將它視為可訓練參數來學習,但會增加訓練難度。所以,生成過程的方差究竟該怎麼設置呢?今年的兩篇論文《Analytic-DPM: an Analytic Estimate of the Optimal Reverse Variance in Diffusion Probabilistic Models》和《Estimating the Optimal Covariance with Imperfect Mean in Diffusion Probabilistic Models》算是給這個問題提供了比較完美的答案。接下來我們一起欣賞一下它們的結果。不確定性
事實上,這兩篇論文出自同一團隊,作者也基本相同。第一篇論文(簡稱 Analytic-DPM)下面簡稱在 DDIM 的基礎上,推導了無條件方差的一個解析解;第二篇論文(簡稱 Extended-Analytic-DPM)則弱化了第一篇論文的假設,並提出了有條件方差的優化方法。本文首先介紹第一篇論文的結果。
在《生成擴散模型漫談:DDIM = 高觀點 DDPM》中,我們推導了對於給定的 ,對應的 的一般解為
其中 , 就是可調的標準差參數。在 DDIM 中,接下來的處理流程是:用 來估計 ,然後認為
然而,從貝葉斯的角度來看,這個處理是非常不妥的,因為從 預測 不可能完全準確,它帶有一定的不確定性,因此我們應該用概率分布而非確定性的函數來描述它。事實上,嚴格地有
精確的 通常是沒法獲得的,但這裡只要一個粗糙的近似,因此我們用正態分布 去逼近它(如何逼近我們稍後再討論)。有了這個近似分布後,我們可以寫出:
其中 。可以看到, 更加接近均值為 、協方差為 的正態分布,其中均值跟以往的結果是一致的,不同的是方差多出了 這一項,因此即便 ,對應的方差也不為0。多出來的這一項,就是第一篇論文所提的最優方差的修正項。
現在我們來討論如何用 去逼近真實的 ,說白了就是求出 的均值和協方差。對於均值 來說,它依賴於 ,所以需要一個模型來擬合它,而訓練模型就需要損失函數。利用

這就是訓練 所用的損失函數。如果像之前一樣引入參數化
就可以得到 DDPM 訓練所用的損失函數形式 了。關於均值優化的結果是跟以往一致的,沒有什麼改動。

其中 可以是任意常向量,這對應於協方差的平移不變性。上式估計的是完整的協方差矩陣,但並不是我們想要的,因為目前我們是想要用 去逼近 ,其中設計的協方差矩陣為 ,它有兩個特點:1、跟 無關:為了消除對 的依賴,我們對全體 求平均,即 ;2、單位陣的倍數:這意味着我們只用考慮對角線部分,並且對對角線元素取平均,即 ,其中 。
這是筆者給出的關於 的一個解析形式,在 完成訓練的情況下,可以通過採樣一批 和 來近似計算上式。
這裡的 是全體訓練數據 的像素級方差。如果 的每個像素值都在 區間內,那麼它的方差顯然不會超過 ,從而有不等式

剛才的解是筆者給出的、認為比較直觀的一個解,Analytic-DPM 原論文則給出了一個略有不同的解,但筆者認為相對來說沒那麼直觀。通過代入式(7),我們可以得到:

別忘了 ,所以 實際上就是 的均值,那麼 實際上是在求 的均值的協方差矩陣,結果顯然就是 ,所以


這就得到了另一個估計和上界,這就是 Analytic-DPM 的原始結果。
實驗結果
原論文的實驗結果顯示,Analytic-DPM 所做的方差修正,主要在生成擴散步數較少時會有比較明顯的提升,所以它對擴散模型的加速比較有意義:
▲Analytic-DPM 主要在擴散步數較少時會有比較明顯的效果提升
筆者也在之前自己實現的代碼上嘗試了Analytic-DPM 的修正,參考代碼為:
Github:
https://github.com/bojone/Keras-DDPM/blob/main/adpm.py
當擴散步數為 10 時,DDPM 與 Analytic-DDPM 的效果對比如下圖:
▲ DDPM 在擴散步數為 10 時的生成結果

▲Analytic-DDPM 在擴散步數為 10 時的生成結果
可以看到,在擴散步數較小時,DDPM 的生成效果比較光滑,有點「重度磨皮」的感覺,相比之下 Analytic-DDPM 的結果顯得更真實一些,但是也帶來了額外的噪點。從評價指標來說,Analytic-DDPM 要更好一些。
至此,我們已經完成了 Analytic-DPM 的介紹,推導過程略帶有一些技巧性,但不算太複雜,至少思路上還是很明朗的。如果讀者覺得還是很難懂,那不妨再去看看原論文在附錄中用 7 頁紙、13 個引理完成的推導,想必看到之後就覺得本文的推導是多麼友好了哈哈~
誠然,從首先得到這個方差的解析解來說,我為原作者們的洞察力而折服,但不得不說的是,從「事後諸葛亮」的角度來說,Analytic-DPM 在推導和結果上都走了一些的「彎路」,顯得「太繞」、」太巧「,從而感覺不到什麼啟發性。其中,一個最明顯的特點是,原論文的結果都用了 來表達,這就帶來了三個問題:一來使得推導過程特別不直觀,難以理解「怎麼想到的」;二來要求讀者額外了解得分匹配的相關結果,增加了理解難度;最後落到實踐時, 又要用回 或 來表示,多繞一道。本文推導的出發點是,我們是在估計正態分布的參數,對於正態分布來說,矩估計與最大似然估計相同,因此直接去估算相應的均值方差即可。結果上,沒必要強行在形式上去跟 、得分匹配對齊,因為很明顯 Analytic-DPM 的 baseline 模型是 DDIM,DDIM 本身就沒有以得分匹配為出發點,增加與得分匹配的聯繫,於理論和實驗都無益。直接跟 或 對齊,形式上更加直觀,而且更容易跟實驗形式進行轉換。
本文分享了論文 Analytic-DPM 中的擴散模型最優方差估計結果,它給出了直接可用的最優方差估計的解析式,使得我們不需要重新訓練就可以直接應用它來改進生成效果。筆者用自己的思路簡化了原論文的推導,並進行了簡單的實驗驗證。

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平台上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝稿件基本要求:
• 文章確係個人原創作品,未曾在公開渠道發表,如為其他平台已發表或待發表的文章,請明確標註
• 稿件建議以markdown格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬投稿通道:
• 投稿郵箱:hr@paperweekly.site
• 來稿請備註即時聯繫方式(微信),以便我們在稿件選用的第一時間聯繫作者
• 您也可以直接添加小編微信(pwbot02)快速投稿,備註:姓名-投稿

△長按添加PaperWeekly小編
