扩散模型是一类生成模型,它通过迭代地向数据添加和移除噪声来学习数据分布。它们因其在图像和音频合成等领域生成高质量样本的能力而备受关注。
- 生成建模:扩散模型旨在通过学习逆转预定义的噪声过程来建模底层数据分布 p(x)。
- 加噪过程:一个正向过程,其中噪声逐渐添加到数据中,导致一个可处理的分布。
- 去噪过程:一个逆向过程,其中模型学习逐步去除噪声以恢复原始数据。
正向扩散过程
正向过程在 T 个时间步长内向数据添加高斯噪声。
- 马尔可夫链:每个加噪样本仅依赖于前一个时间步。
- 高斯转换:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
- 方差:βt 是控制噪声调度的小正数常数。
逆向扩散过程
模型学习逆向转换以对数据进行去噪。
- 学习近似:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),σt2I)
- 均值预测:模型预测均值 μθ 以逆转扩散。
训练目标
目标是最小化负对数似然的变分下界。
- 简化损失函数:
L=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2]
- 噪声预测:模型 ϵθ 预测每个时间步添加的噪声。
去噪扩散概率模型 (DDPM)
DDPMs 是扩散模型的一种特定实现,专注于概率公式。
- 正向过程:根据预定义的调度添加噪声。
- 逆向过程:使用神经网络(通常是 U-Net)学习去噪。
- 采样:从纯噪声 xT 开始,迭代去噪以获得 x0。
采样过程
要生成新数据:
- 初始化:从噪声样本 xT∼N(0,I) 开始。
- 迭代去噪:对于 t=T 到 1:
- 使用学习到的逆向过程预测 xt−1。
- 输出:最终样本 x0 是生成的数据。
图像生成
- 高保真图像:能够生成具有精细细节的图像。
- 无条件和有条件生成:可以从头开始生成图像或基于输入数据生成图像。
文本到图像合成