一.背景简介
在开始有正式介绍前,我们先来简要的讲解一下扩散模型与贝叶斯方法。
1.扩散模型
1.1图像在计算机中的存储
图像在计算机中按像素点存储。对于彩色图像,每个像素点有红,绿,蓝三种颜色,用0-255的数值表示每种颜色的深浅,再进行混合,即可得到一个彩色的像素点,每个像素点可于是可以用三维向量(b,g,r)表示(对于黑白图像是一维)
1.2扩散模型简介
1.2.1DDPM
现在我们考虑单个黑白像素点,即0-255间的整数,由于0-255这个范围不便于处理,我们将其除以255,将取值范围变为0-1,在处理结束后乘上255恢复即可。
于是,现在便可用一个出于0-1的数表示一个像素点,将其记为。现在我们记为一个标准高斯噪声(),以及一列在[0,1]上单调趋于0的数,随后我们考虑Markov过程:
再利用Markov性得到:
再将用相同公式解出,代入,最终得到:
其中,由极限理论可知,当t足够大,时便会足够小以至于可以被当作0.
于是,在经过一系列加噪后,初始的像素点x0成为了一个由标准正态随机变量随机生成的一个值。
对于任意的像素点这样操作最终都会得到一个这样的随机数,而图像是由若干个像素点组成的,这也就是说,对任意图像进行上述操作,最终都会得到一张每个像素点都是由标准正态变量随机生成的图像。
那么,既然任意图像都可以通过加噪变成噪声图像,那么我们是否可以从一张噪声图像出发,在一图片集上训练一个神经网络,通过网络预测噪声,进行一系列去噪过程,得到一张与训练集类似的图像呢?答案是肯定的,而这就是扩散模型。在扩散模型框架下,我们前文提到的加噪过程被称为前向过程,而从噪声图像生成新图像的过程被称为逆向过程。
Ho等人在其2020年发表的论文Denoising Diffusion Probabilistic Models(DDPM)中通过似然函数对神经网络的训练过程进行了严格的讨论,碍于篇幅我们此处不详细展开,仅给出他们的结论。根据论文的内容,我们只需对
进行梯度下降即可完成训练,其中是用网络预测的噪声,具体的训练与生成算法如下:
生成过程即从噪声图像开始逐步减去由网络预测的噪声。
1.2.2基于分数的生成模型
这是Song等人在SCORE-BASED GENERATIVE MODELING THROUGH STOCHASTIC DIFFERENTIAL EQUATIONS这篇论文中对扩散模型做出的改进,他们在这篇文章中结合了DDPM与 SMLD(Score matching with Langevin dynamics),并采用SDE来描述加噪与去噪过程,此处碍于篇幅也不具体展开,仅给出经他们改进后的扩散模型。在他们的模型中,通过随机微分方程(SDE)定义了加噪与去噪过程。
前向过程为:
逆向过程则为前向过程的逆向方程:
其中与表示正向与反向winner过程,为随机微分方程/随机过程中的概念。
这样改良后的扩散模型将不再预测,转而预测分数函数的值,并由预测值表示逆向(去噪)过程,记预测值为,于是逆向(去噪)过程可表示为:
其中的,之后的也表相同含义。
扩散后验采样方法采用的便是这种形式的扩散模型。
2.贝叶斯方法
我们知道,统计推断问题就是要通过样本去推断未知的参数。现假设我们由样本,有分布族,其中为参数空间。
我们的要通过得到的样本X来预测参数的分布,为此我们可以使用条件概率来进行预测。
设为样本x与参数的联合分布密度,为x与的边缘分布密度,则由贝叶斯公式有:
其中为分布的密度函数,是已知的。故在上式中,唯一的未知项便是,为了进行统计推断,我们可以根据已知信息先对做一个主观的推断,我们将这个推断叫做先验分布,而条件概率密度则叫做后验分布。得出后验分布后,我们再用后验分布进行统计推断,这种推断方法便被称作贝叶斯方法。
形象来看,贝叶斯方法其实就是一个不断通过新获取的信息修正旧有模型的过程。
二.扩散后验采样模型
1.扩散后验采样的总体思路
1.1贝叶斯框架下的逆问题
逆问题的数学抽象形式为:
其中为实际观测到的图像,在图像问题中体现为动态模糊的图像,部分遮挡的图像等
为问题的初始值,在图像问题中,就是未经迷糊,遮挡的“初始图像”。
(如在此例中,左图为y,右图为)
而则是把变成的算子,叫做测量算子。则为测量误差等导致的噪声,一般为高斯噪声。
逆问题表达式中,观测值是显然已知的,测量算子也可以认为是已知的(DPS模型中),噪声也已知,而初始状态未知。
我们将观测值作为样本,而初始状态作为参数,由于,均已知,从而确定时y的分布也是已知的,于是我们便可以用贝叶斯方法来求解逆问题。
1.2用扩散模型作为先验
要用贝叶斯方法推断参数,则我们必须有一个先验,而在扩散后验采用模型中,这个先验正是由扩散模型生成的图像的分布,而与之相对应的,我们有一个预先训练好的网络.
在扩散后验采样框架下,依照基于分数的生成模型,定义前向(加噪)和逆向(去噪)方程:
前向:
逆向:
并用训练好的网络来预测分数函数的值,记预测值为.
自然地,后验分布便是加上观测值作为条件,从而我们得到后验逆向方程:
由贝叶斯公式,其中的后验分数函数可分解为
其中与先验方程中分数函数一致,直接用替代,而则没有解析表示(见Diffusion Posterior Sampling is Computationally Intractable )。
因此,扩散后验采样框架下的问题的关键便是如何处理不可解析表示的,这一框架下的各种研究都致力于为该项寻找合理的近似,然而在DPS之前,都没有找到泛用的近似,这些近似要么只对线性模型起作用,要么就必须要求无噪声。
2.DPS模型所采用的近似
我们先对噪声为高斯噪声情形进行讨论,对于概率密度,可以将其写作:
, 三者关系如图
因此与在条件下条件独立,于是进一步有:
,将视作一个概率测度,则:
其中可以当作的一个函数,记作,则上式可表示为
现在我们颠倒期望和函数的复合关系,即,
现记,则
由于噪声为高斯噪声,可知服从高斯分布,为一指数族分布,因此可以利用Tweedie公式,求得:
并且可作为一个经验分布替换,因此有也满足高斯分布,进而可以解析表达。
综上所述,在颠倒期望和函数的复合关系后得到的可以解析表达,因此如果该式等于,至少二者差距不大,那么便可以直接用进行替换,得到一个的近似。
而此二者的差为一个 Jensen Gap,根据“Robust Compressed Sensing MRI with Deep Generative Priors”,可以估计Jensen Gap的上界,为:
其中对于大多数算子有界,且由于是的一个经验分布近似,也很小。因此二者之差在大多数情况下是很小的,该近似是可行的。此外,如若无噪声,即趋于0,则根据极限理论,二者就是相等的。
3.DPS算法的具体实现
根据先前的近似,针对高斯噪声情形,我们有:
=
=+=+
=-
其中,在算法中作为步长。
由于泊松分布可以被高斯分布近似,因此针对泊松噪声的情形,我们可通过类似方法得到:
=-,
其中
其中标红框的部分即一般的扩散模型生成算法,DPS模型在去噪完成后,再额外减去了一项,该项实际上就是(或者说)。综合来看,也就是将扩散模型生成去噪中的分数函数改为了。
当然我们也可以更加形象的理解这个算法,该算法在每一步消去噪声的同时,也用额外的一步来尽可能缩小现有图像与真正的初始图像的差别。
三.未来可能的研究方向
1.DPS本身
作为一个逆问题求解模型,DPS本身还是有不少值得改进的点。首先便是算子必须已知,这点极大的限制了该模型的实用价值。对此可以结合其他能够预测算子的模型,从而解决未知算子的逆问题。
此外,根据实验结果,该模型比较依赖先验数据,在采样方法上还可以做进一步改进。而且由于其生成过程同样基于扩散模型,也继承了扩散模型生成图像缓慢的特点。这些都是未来可能的研究方向。
2.应用拓展
作为一套求解逆问题的,扩散后验采用的思路是十分有效的,除了图像之外,也可以尝试将其拓展到其他领域,如求解偏微分方程等。