扩散模型(2015年)

1 简介

本文根据2015年5月的《deep unsupervised learning using nonequilibrium thermodynamics》翻译总结的。

本文应该是最早提出扩散模型的文章,然后2020年DDPM对其进行了改进,使得扩散模型大火。时间跨度了5年啊。

概率模型一般要在两个冲突的目标间权衡:可追溯(tractability)和灵活性(flexibility)。当模型是可追溯时,其可以被分析评估并容易匹配到数据;但是这些模型不能恰当的描述丰富的数据结构。另一方面,当模型是灵活的时候,其可以适配任意的数据结构。

我们提出了一个新颖的方式,同时满足可追溯(tractability、可计算的)和灵活性(flexibility):

  1. 在模型结构上非常灵活;
  2. 准确采样;
  3. 容易和其他分布相乘,例如为了计算后验;
  4. 模型对数似然( log likelihood)和独立状态的概率容易评估。

我们的方法使用马尔科夫链来逐步将一个分布转成另一个,其思想在非均衡统计物理学和sequential Monte Carlo 中有使用。

我们的方法可以捕捉任何形式的数据分布。

我们的工作也是利用变分界(variational bound ),但我们有如下不同:

扫描二维码关注公众号,回复: 15343088 查看本文章
  1. 我们使用了物理学准静态的过程、退火重要性采样,而不是变分贝叶斯方法。
  2. 我们显示了很容易用另一个概率分布和学到的分布相乘。
  3. 我们解决了在预测(训练预测(inference) 模型)和生成方法间的不对称性。我们限制前向过程为一个简单的函数形式,如此逆向过程(生成)有相同的函数形式。
  4. 我们训练模型用上千层(或者时间步),而不仅仅少数层。
  5. 在每一层(或时间步),我们提供熵增的上下界。

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 附录

训练目标(高斯均值和方差)的网络。

猜你喜欢

转载自blog.csdn.net/zephyr_wang/article/details/130798380
今日推荐