扩散模型
一系列噪声扰动图中的边缘(也就是前向扩散过程),并通过学习将这个过程从噪声转换到数据来生成图(a.k.a,生成扩散过程)。由于排列不变性约束和同时考虑离散局部运动的必要性,有效地采用现有的方法来绘制数据是非常重要的Fs和图的整体拓扑性质。
这个github仓库整理了关于扩散模型的资源和论文集:https://github.com/heejkoo/Awesome-Diffusion-Models
这个是扩散模型综述的中文翻译:https://www.yuque.com/jinyuma-igdk2/hcuntc/hhlwis
扩散模型在图领域目前的应用还比较少
这篇文章通俗地解释了各个生成模型之间的关系https://zhuanlan.zhihu.com/p/591881660
想象平面上方的一个曲面,该曲面的高度对应于簇的密度。这个曲面映射出一个概率分布。使用这个概率分布来生成新的图像。所需要做的就是随机生成新的数据点,同时遵守更频繁地生成更可能的数据的限制——这一过程被称为“采样”分布。每个新的点都是一个新的图像。这一过程的挑战是学习构成训练数据的一些图像集的复杂概率分布。比如每张照片有一百万像素,绘制每张图像时需要一百万个轴。
非平衡热力学(Nonequilibrium thermodynamics)描述了扩散过程中每一步的概率分布。非常重要的是,每一步都是可逆的——只要有足够小的步骤,就可以从简单的分布(随机均匀的)回到复杂的分布。
在扩散过程中,在每个时间步长向每个像素添加一些噪声,将每个像素值向原点轻轻推一点。对数据集中的所有图像都这样做,那么百万维空间中的点的初始复杂分布(无法轻易描述和采样)就会变成原点周围点的简单正态分布。这一转换慢慢地将数据分布变成一个巨大的噪音球,这一正向过程提供了一个可以轻松采样的分布。
接下来使用神经网络,不断预测前一步噪声较小的图像,尽管他一开始会出错,我们可以不断调整网络参数。
与LLM结合的扩散模型能够根据文本生成图片,但由于大语言模型存在文化和社会偏见,由扩散模型生成的图像也会具有同样的问题。
现有的生成模型
估计数据\(\left \{x_i \right \}_i^n\)的概率密度函数\(p(x)\), \(x_i \sim p(x)\)。
要求概率密度函数:
- \(p(x) \ge 0\)
- \(\int p(x)dx=1\) 这是一个很强的条件
基于能量的模型——Energy-based Model
使用指数函数保证概率大于一,分母除以概率密度积分保证积分等于1,从而满足p(x)需要满足的性质
\(E_\theta(x)\)为物理学中的能量函数(郎之万Langevin动力学)
例如,softmax就是基于能量的分布。
有了p(x)的定义之后,要求参数\(\theta\),可以基于最大似然法训练,
使用马尔科夫链的蒙特卡罗方式,不断迭代,在高维的情况下具有很高的方差和噪声,导致训练方差高。
自回归模型——Autoregressive Models
将一个n维的概率密度函数变成n个一维的概率密度函数的乘积
缺点:
- 对于图片这种没有顺序的效果不好,生成的照片不真实,对于有序的音频效果较好
- 要采样n次,速度慢
变分自编码器——Variational Autoencoders(VAE)
从p(x)给定z的条件分布来进行采样,z使用简单的高斯分布。将从p(x)给定z建模为高斯分布。
理论上,根据monte carlo就可以在给定z的情况下估计出x,但为估计准确的p(x),需要很多z,因为在大多数情况下
Diffusion Model
DDPM
在VAE中x到latent space的z再到x的过程中,p(z)、p(x|z)、q(z|x)都被建模成高斯分布,但是实际上,从z到x的过程是很复杂的,导致了VAE的表达能力不足。为解决这一问题,DM希望将z到x的过程分解成很多个简单的过程。
正向和反向的过程都被建模成高斯分布
反向用神经网络学习\(\mu\),最后要优化的函数同VAE
基于似然训练的,都比较稳定
(基于对抗训练的不太稳定)
最大的问题是采样速度慢