©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络
说到生成模型,VAE、GAN 可谓是“如雷贯耳”,本站也有过多次分享。此外,还有一些比较小众的选择,如 flow 模型 [1]、VQ-VAE [2] 等,也颇有人气,尤其是 VQ-VAE 及其变体 VQ-GAN [3],近期已经逐渐发展到“图像的Tokenizer”的地位,用来直接调用 NLP 的各种预训练方法。除了这些之外,还有一个本来更小众的选择——扩散模型(Diffusion Models)——正在生成模型领域“异军突起”,当前最先进的两个文本生成图像——OpenAI 的 DALL·E 2 [4] 和 Google 的 Imagen [5],都是基于扩散模型来完成的。
▲ Imagen“文本-图片”的部分例子
从本文开始,我们开一个新坑,逐渐介绍一下近两年关于生成扩散模型的一些进展。据说生成扩散模型以数学复杂闻名,似乎比 VAE、GAN 要难理解得多,是否真的如此?扩散模型真的做不到一个“大白话”的理解?让我们拭目以待。
新的起点
其实我们在之前的文章《能量视角下的 GAN 模型(三):生成模型=能量模型》[6]、《从去噪自编码器到生成模型》也简单介绍过扩散模型。说到扩散模型,一般的文章都会提到能量模型(Energy-based Models)、得分匹配(Score Matching)、朗之万方程(Langevin Equation)等等,简单来说,是通过得分匹配等技术来训练能量模型,然后通过郎之万方程来执行从能量模型的采样。
从理论上来讲,这是一套很成熟的方案,原则上可以实现任何连续型对象(语音、图像等)的生成和采样。但从实践角度来看,能量函数的训练是一件很艰难的事情,尤其是数据维度比较大(比如高分辨率图像)时,很难训练出完备能量函数来;另一方面,通过朗之万方程从能量模型的采样也有很大的不确定性,得到的往往是带有噪声的采样结果。所以很长时间以来,这种传统路径的扩散模型只是在比较低分辨率的图像上做实验。
如今生成扩散模型的大火,则是始于 2020 年所提出的 DDPM [7](Denoising Diffusion Probabilistic Model),虽然也用了“扩散模型”这个名字,但事实上除了采样过程的形式有一定的相似之外,DDPM 与传统基于朗之万方程采样的扩散模型可以说完全不一样,这完全是一个新的起点、新的篇章。
准确来说,DDPM 叫“渐变模型”更为准确一些,扩散模型这一名字反而容易造成理解上的误解,传统扩散模型的能量模型、得分匹配、朗之万方程等概念,其实跟 DDPM 及其后续变体都没什么关系。有意思的是,DDPM 的数学框架其实在 ICML 2015的论文《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》[8] 就已经完成了,但 DDPM 是首次将它在高分辨率图像生成上调试出来了,从而引导出了后面的火热。由此可见,一个模型的诞生和流行,往往还需要时间和机遇.
拆楼建楼
很多文章在介绍 DDPM 时,上来就引入转移分布,接着就是变分推断,一堆数学记号下来,先吓跑了一群人(当然,从这种介绍我们可以再次看出,DDPM 实际上是 VAE 而不是扩散模型),再加之人们对传统扩散模型的固有印象,所以就形成了“需要很高深的数学知识”的错觉。事实上,DDPM 也可以有一种很“大白话”的理解,它并不比有着“造假-鉴别”通俗类比的 GAN 更难。
首先,我们想要做一个像 GAN 那样的生成模型,它实际上是将一个随机噪声 变换成一个数据样本 的过程:
我们可以将这个过程