1 简介
本文根据2015年5月的《deep unsupervised learning using nonequilibrium thermodynamics》翻译总结的。
本文应该是最早提出扩散模型的文章,然后2020年DDPM对其进行了改进,使得扩散模型大火。时间跨度了5年啊。
概率模型一般要在两个冲突的目标间权衡:可追溯(tractability)和灵活性(flexibility)。当模型是可追溯时,其可以被分析评估并容易匹配到数据;但是这些模型不能恰当的描述丰富的数据结构。另一方面,当模型是灵活的时候,其可以适配任意的数据结构。
我们提出了一个新颖的方式,同时满足可追溯(tractability、可计算的)和灵活性(flexibility):
- 在模型结构上非常灵活;
- 准确采样;
- 容易和其他分布相乘,例如为了计算后验;
- 模型对数似然( log likelihood)和独立状态的概率容易评估。
我们的方法使用马尔科夫链来逐步将一个分布转成另一个,其思想在非均衡统计物理学和sequential Monte Carlo 中有使用。
我们的方法可以捕捉任何形式的数据分布。
我们的工作也是利用变分界(variational bound ),但我们有如下不同:
- 我们使用了物理学准静态的过程、退火重要性采样,而不是变分贝叶斯方法。
- 我们显示了很容易用另一个概率分布和学到的分布相乘。
- 我们解决了在预测(训练预测(inference) 模型)和生成方法间的不对称性。我们限制前向过程为一个简单的函数形式,如此逆向过程(生成)有相同的函数形式。
- 我们训练模型用上千层(或者时间步),而不仅仅少数层。
- 在每一层(或时间步),我们提供熵增的上下界。
2 算法
2.1 前向过程(扩散)
2.2 逆向过程
生成分布将被训练为描述相同的过程,只是逆向的。
2.3 模型概率
生成模型分配给数据的概率如下:
上面这个积分是不可溯源的(intractable)、不可计算的。但可以通过下式计算(参考退火重要性采样和 the Jarz ynski等式):
2.4 训练
预备知识--交叉熵:
交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性
模型目标函数:
训练就是最大化下面的对数似然( log likelihood)。下面函数类似交叉熵函数,衡量p与q的关系。
经过一系列推导上面的熵和KL散度是可以计算的。
训练包括找到逆向马尔可夫转换,其最大化下面log likelihood的下界:
所以,评估一个概率分布的任务简便为求高斯序列的均值和方差。
2.4.1 扩散率
3 实验
如下图,a是树皮原图,b是中间一块被高斯噪声替换掉,c是将中间那块通过扩散模型还原的。
下表显示扩散模型相比其他算法也有竞争优势。
4 附录
训练目标(高斯均值和方差)的网络。