即日起,公众号推出2023年机器学习前沿专题解读,共30期。本期为大家带来的主题是“扩散模型的数学原理”。
1 前言
在当下的机器学习研究中,扩散模型(diffusion model)是一类不可忽视的模型,已经广泛应用于图像去噪、修复、超分辨率,以及最近大火的图像生成等。据笔者所知,扩散模型最早是2015年,在《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》一文中受物理学中的非平衡热力学启发而来。后几经演进,2020年发表的《denoising diffusion probabilistic models》(DDPM)使之在人工智能领域逐渐为大众所知。本文即以此模型为例介绍其背后的数学原理。
2 扩散模型的数学原理
扩散模型也称为扩散概率模型,实际上就是用变分推断训练出的一个马尔科夫链,属于一种隐变量模型(latent variable model)。笔者认为,其背后的数学模型是较为精巧简洁,易于理解的。但是,原论文中对于数学推导的描述较为晦涩难懂,容易让人望而生畏。这里笔者先省略其中的具体推导,以求读者可迅速了解其数学精髓。详细的推导过程可参看博客https://lilianweng.github.io/posts/2021-07-11-diffusion-models/#nice. 因水平有限,如有错漏恳请批评指正。话不多说,直接上干货。先放出其模型图:
其中的式子可由设定的超参数直接计算得到。因为我们想让两个分布靠近,故可直接将这里q分布的方差作为我们变分分布的方差。那么,剩下的我们只需要优化中和二者的均值使其接近即可:
再加上作者基于实践做的一些简化,我们可以将化简成以下关于的优化目标:
其中是一个确定的正态分布,是一个以为参数的需要被优化的分布。到此,我们的目标函数终于推导完毕。又根据正态分布和马尔可夫链的性质可以推导出:
所以在实现中,我们直接使用一个神经网络来代替,这个网络的输入是时间步以及当前时间步的图像,输出一幅高斯噪声的图片。最后,网络的训练过程也自然水到渠成如下所示:
生成过程则直接根据学习到的进行一步步的去噪即可:
以上就是DDPM模型的主要内容。后续又有一些工作对其进行改进,如进行跳步采样以加快其生成过程等,这些改进也进一步促进了扩散模型的繁荣。具体也可参考上面提到的博客。
3 扩散模型为什么好
看完了其数学原理,我们也可以思考一下为什么扩散模型比之前的生成模型如GAN、VAE有着更好的性能。在笔者看来,扩散模型由于其逐步添加/去除噪声的性质,不需要像之前的模型一样一次就生成一整张图片。这有点像我们人画一幅肖像,可能是先画出头部形状,然后加上眼睛鼻子和嘴巴,最后画上睫毛和头发等等细节这样。当然,笔者对这些模型的理解也不够深入,这里仅是抛砖引玉,欢迎大家多多讨论~
长按下图并点击“识别图中二维码”
即可关注北邮 GAMMA Lab 公众号
原文始发于微信公众号(北邮 GAMMA Lab):专题解读 | 扩散模型的数学原理
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论