基于Diffusion Model的图像生成

Part 01

  发展历史   

1.1 起源

2015年在Deep Unsupervised Learning using Nonequilibrium Thermodynamics 这篇文章中提出,当时的生成模型比如VAE,有一个很大的难点,就是这类模型是先定义了条件分布,然后再定义变分后验去适配,最后会导致需要同时优化条件分布和变分后验,然而这是很困难的。如果我们可以定义一个简单的过程,把数据分布映射到标准高斯,“生成器”的任务就变成了简单的拟合这个过程的逆过程的每一小步,这,就是diffusion model的核心思想。然而这篇文章当时并没有掀起什么波澜。

1.2 发展

时间来到2020年,基于前人的思想,提出了DDPM模型(Denoising Diffusion Probabilistic Models),相对于基础的扩散模型,作者结合了扩散模型和去噪分数,来引导训练以及采样的过程,带来了生成图像样本适量的提升,使其在训练更简单稳定的条件下,最后的结果可以和GAN模型相当。

基于Diffusion Model的图像生成

图2-DDPM的生成结果

然而DDPM模型也并非完美无缺,由于扩散过程是一个马尔科夫链,其缺点就是需要比较大的扩散步数才可以获得比较良好的效果,这导致了样本生成很慢。

于是继DDPM之后,时间来到2021年,Song等人提出了DDIM(Denoising Diffusioin Implicit Model),其改造了DDPM的扩散过程的采样方法,将传统的马尔可夫扩散过程推广到了非马尔可夫过程,可以用更小的采样步数来加速样本生成,大大的提高了效率。

后续也有一些改进的工作,将扩散模型和传统的生成网络进行融合,比如将VAE和DM模型结合,GAN+DM的结合等等,笔者再此就不一一赘述了。

1.3 爆发

2022年,谷歌基于扩散模型推出了一款新的AI系统,可以将文字描述转为逼真图像。

基于Diffusion Model的图像生成

图3

基于Diffusion Model的图像生成

图4

由谷歌给出的原理图可以看出,输入的文本首先经过编码,然后由一个文字转图像的扩散模型转化为64*64的小图,进一步的,利用超分辨率扩散模型对小图进行处理,在进一步的迭代过程中提升图像的分辨率,得到最后的生成结果——一张1024*1024的最终图像。这个神奇的过程就像是大家使用中所感受到的一样,输入了一段文字——一只穿着红色点点高领衫,戴着蓝色方格帽子的金毛狗狗,然后程序就自动生成了上面你所看到的狗狗图片。

另一款热度颇高的现象级应用——novalAI,这本来是一个致力于AI写作的网站,基于当前火热的图像生成,它结合网络上的图片资源,训练了一个专注于二次元的图像生成模型,从效果上看已经初具人类画手的水平。

基于Diffusion Model的图像生成

图5

除了传统的输入文字从而产出图片之外,它还支持输入图片作为参考,可以让AI基于已知的图片基础上生成新的图片,一定程度上解决了AI生成结果不可控的问题。

Part 02

  原理阐述 ● 

那么,如此强大的AI技术,其工作过程到底是怎样的呢?这里我们以比较经典的DDPM模型作为例子给出简要的过程:

2.1 前向过程

前向过程是一个往图片上加噪声的过程,目的是为了构建训练样本GT。

对于给定的初始数据分布x0~q(x),我们逐步向数据分布中添加高斯噪声,这个过程有T次,每一步的结果是x1,x2,…,xt,噪声的标准差表示为,则加噪过程可以表述为:

基于Diffusion Model的图像生成

正如前文所述,这是一个马尔科夫链过程。最终会使得数据趋向于各向同性的高斯分布。

2.2 逆扩散过程

逆向过程是一个去噪的过程,如果得知基于Diffusion Model的图像生成,就可以从完全的标准高斯分布中还原出x0, 经过证明如果基于Diffusion Model的图像生成满足高斯分布且基于Diffusion Model的图像生成足够小,那么基于Diffusion Model的图像生成仍然是一个高斯分布,然后基于Diffusion Model的图像生成无法简单推断得到,所以我们利用一个参数为基于Diffusion Model的图像生成的深度学习模型去预测它,于是有:

基于Diffusion Model的图像生成

如果得知x0,则通过贝叶斯公式有:

基于Diffusion Model的图像生成

2.3 训练过程

如果对于机器学习有所了解的读者应该知道,所有模型的训练都是为了能够最优化模型的参数,从而得到靠谱的均值和方差,我们最大化模型预测分布的对数似然,即:

基于Diffusion Model的图像生成

经过一系列的推导,DDPM模型得到了最后的loss函数表达:

基于Diffusion Model的图像生成

总结一下训练的过程:

  • 1.获取输入的x0, 从1…T中随机采样一个t
  • 2.从标准高斯分布采样一个噪声基于Diffusion Model的图像生成
  • 3.计算出损失并迭代最小化损失函数

基于Diffusion Model的图像生成

图6

Part 03

  总结 ● 

扩散模型已经展示出了巨大的潜力,其相对于VAE模型不需要对准后验分布,也不需要像GAN那样训练额外的判别器,在包括计算机视觉,生物信息学,语音处理等方面都有应用,其在图像生成方面的应用,将助力于提升图像创作的效率,可能让AI生成根据条件生成若干图片,人类对其结果进行筛选和修改会是将来2D绘画领域的新的工作模式,这可能会很大程度上提升2D数字资产的生产效率。

然而伴随着AI技术的发展,总是会有一些争议,图像生成领域也不例外,除了AI技术本身的问题,如生成的图片结构错误,不合理之外,还伴随着一些法律方面的纠纷,比如AI作品本身的版权问题。技术的问题可以通过技术本身的发展来解决,我们有理由相信随着AI技术的发展,图像生成最后会达到一个很高的水平,这会消灭大部分低端的绘画相关的工作,极大的解放人类的生产力。版权问题可能还是需要政府部门对于相关产业的发展投入足够多的关注,完善相关的政策和制度,需要我们对于新兴的领域有更多的思考,从而让AI技术更好的服务于我们。

参考文献

https://github.com/Yutong-Zhou-cv/Awesome-Text-to-Image

https://lilianweng.github.io/posts/2021-07-11-diffusion-models/#forward-diffusion-process

https://link.zhihu.com/?target=https%3A//gweb-research-imagen.appspot.com/paper.pdf

© 版权声明

相关文章