曾經大紅大紫的GAN 已過時。
馬里蘭大學副教授 Tom Goldstein 最近發表的一個推文,可謂是一石激起千層浪。
就連科技圈的大佬們也紛紛前來關注:

話題里 " 劍指 " 的關鍵詞則是 Diffusion Model,用 Tom 的話來說就是:
在 2021 年,它甚至可以說是聞所未聞。
但其實這個算法并不陌生,因為它正是 AI 作畫神器DALL · E的核心。
而且 DALL · E 的作者打一開始就 " 沒看上 "GAN,直接將其放棄。
無獨有偶,同樣的話題在國內也引發了不小的討論:

那么圖像生成領域的這波 " 后浪推前浪 ",究竟是為何?
咱們這就來盤一盤。
什么是 Diffusion Model?
Diffusion Model 這次被拉進聚光燈之下,不得不歸功于各類 "AI 一句話作圖 " 神器的火爆。
例如 OpenAI 家的 DALL · E 2:

谷歌家的 Imagen:

不難看出,這些近期大流行的圖像生成神器,不論是真實程度亦或是想象、理解能力,都是比較符合人類的預期。
因此它們也成為了這屆網友們把玩的 " 新寵 "(當年 GAN 出道的時候也是被玩壞了)。
而如此能力背后的關鍵,便是 Diffusion Model。
它的研究最早可以追溯到 2015 年,當時,斯坦福和伯克利的研究人員發布了一篇名為 Deep Unsupervised Learning using Nonequilibrium Thermodynamics 的論文:

但這篇研究和目前的 Diffusion Model 非常不一樣;而真正使其發揮作用的研究是 2020 年,一項名為 Denoising Diffusion Probabilistic Models 的研究:

我們可以先來看一下各類生成模型之間的對比:

不難看出,Diffusion Model 和其它模型的不同點在于,它的 latent code ( z ) 和原圖是同尺寸大小的。
若是簡單來概括 Diffusion Model,就是存在一系列高斯噪聲(T 輪),將輸入圖片 x0 變為純高斯噪聲 xT。
再細分來看,Diffusion Model 首先包含一個前向過程(Forward diffusion process)。
這個過程的目的,就是往圖片上添加噪聲;但在這一步中還無法實現圖片生成。

其次是一個逆向過程(Reverse diffusion process),這個過程可以理解為 Diffusion 的去噪推斷過程。

最后在訓練階段,則是通過對真實數據分布下,最大化模型預測分布的對數似然。
上述的過程是基于 DDPM 這項研究展開。
不過知乎用戶" 我想唱 high C"(TSAIL 博士)認為:
DDPM 提出的時候,領域里的研究者其實并不完全清楚這個模型背后的數學原理,所以文章里的描述沒有探尋到更本質的數學原理。
在他看來,直到斯坦福大學 Yang Song 等在 Score-Based Generative Modeling through Stochastic Differential Equations 中,才首次揭示了 diffusion model 的連續版本對應的數學背景。
并且將統計機器學習中的 denoising score matching 方法與 DDPM 中的去噪訓練統一起來。

更多細節過程可以參考文末鏈接中的論文詳情。
那么接下來需要探討的一個問題是:
為什么 GAN 這么快會被取代?
用 OpenAI 的一篇論文內容來講,用 Diffusion Model 生成的圖像質量明顯優于 GAN 模型。
DALL · E 是個多模態預訓練大模型," 多模態 " 和 " 大 " 字都說明,訓練這個模型的數據集十分龐大冗雜。
發表這篇推特的 Tom Goldstein 教授提到,GAN 模型訓練過程有個難點,就是眾多損失函數的鞍點(saddle-point)的最優權重如何確定,這其實是個蠻復雜的數學問題。

在多層深度學習模型的訓練過程中,需通過多次反饋,直至模型收斂。
但在實際操作中發現,損失函數往往不能可靠地收斂到鞍點,導致模型穩定性較差。即使有研究人員提出一些技巧來加強鞍點的穩定性,但還是不足以解決這個問題。
尤其面對更加復雜、多樣化的數據,鞍點的處理就變得愈加困難了。
與 GAN 不同,DALL · E 使用 Diffusion Model,不用在鞍點問題上糾結,只需要去最小化一個標準的凸交叉熵損失(convex cross-entropy loss),而且人已經知道如何使其穩定。
這樣就大大簡化了模型訓練過程中,數據處理的難度。說白了,就是用一個新的數學范式,從新穎的角度克服了一道障礙。
此外,GAN 模型在訓練過程中,除了需要 " 生成器 ",將采樣的高斯噪聲映射到數據分布;還需要額外訓練判別器,這就導致訓練變得很麻煩了。
和 GAN 相比,Diffusion Model 只需要訓練 " 生成器 ",訓練目標函數簡單,而且不需要訓練別的網絡(判別器、后驗分布等),瞬間簡化了一堆東西。
目前的訓練技術讓Diffusion Model 直接跨越了 GAN 領域調模型的階段,而是直接可以用來做下游任務。

△Diffusion Model 直觀圖
從理論角度來看,Diffusion Model 的成功在于訓練的模型只需要 " 模仿 " 一個簡單的前向過程對應的逆向過程,而不需要像其它模型那樣 " 黑盒 " 地搜索模型。
并且,這個逆向過程的每一小步都非常簡單,只需要用一個簡單的高斯分布(q ( x ( t-1 ) | xt ) )來擬合。
這為 Diffusion Model 的優化帶來了諸多便利,這也是它經驗表現非常好的原因之一。
Diffushion Model 是否就是完美?
不見得。
從趨勢上來看,Diffushion Model 領域確實正處于百花齊放的狀態,但正如 " 我想唱 high C" 所述:
這個領域有一些核心的理論問題還需要研究,這給我們這些做理論的人提供了個很有價值的研究內容。>
并且,哪怕對理論研究不感興趣,由于這個模型已經很 work 了,它和下游任務的結合也才剛剛起步,有很多地方都可以趕緊占坑。
我相信 Diffusion Model 的加速采樣肯定會在不久的將來徹底被解決,從而讓 Diffusion Model 占據深度生成模型的主導。
而對于 Diffusion Model 的有效性以及很快取代 GAN 這件事,馬毅教授認為充分地說明了一個道理:
幾行簡單正確的數學推導,可以比近十年的大規模調試超參調試網絡結構有效得多。
不過對于這種 " 前浪推后浪 " 的火熱,馬毅教授也有不一樣的觀點:
希望年輕的研究員端正研究的目的和態度,千萬不要被目前熱的東西忽悠。
包括 Diffusion Process,這其實也是好幾百年 old 的想法,只是老樹發新芽,找到新的應用。
原文地址:http://www.myzaker.com/article/630106b58e9f0952772e2329