【扩散模型】扩散模型思想及数学原理

目录

扩散模型发展关键节点

1. 扩散模型思想

        思路来源:

        目的与结构:

        训练过程:

2. 扩散模型的两个过程:

2.1 前向扩散过程(噪声扩散)

2.2 反向扩散过程(去噪扩散)

3. 扩散模型数学原理:

3.1前向扩散过程 数学推导

3.2 反向扩散过程 数学推导

4. 扩散模型的三大分支:

DDPM:去噪扩散概率模型

SGM:基于噪声条件评分的生成模型

SDE:随机微分方程


扩散模型发展关键节点

第一个节点:

       2015年的论文《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》

        提出了扩散思想,但并未引起太多关注

原文链接:https://arxiv.org/abs/1503.03585

第二个节点:

        2020年6月提出了《Denoising Diffusion Probabilistic Models》(简称DDPM)

        在图像生成任务中展现了与生成对抗网络(GAN)相媲美的性能,奠定了扩散模型在该领域应用的基础。开启了扩散模型的理论深度研究和实践阶段,这不仅包括以DDPM为代表的连续性扩散模型也包括了离散型的扩散模型。

        此篇文章是 diffusion model 的奠基之作,虽不是最先提出 diffusion model 的文章,却是将 diffusion model 用于图像生成领域的关键论文

原文链接:https://arxiv.org/abs/2006.11239

第三个节点:

        2021年12月提出了基于潜在扩散模型(Latent Diffusion Models,LDMs)的text-to-image模型。

        这个研究使得用扩散模型进行文字生成图片任务可以在普通显卡上执行,并且耗时较短。为一年后现象级的稳定扩散(Stable Diffusion)诞生奠定了基础。

原文链接:https://arxiv.org/abs/2112.10752

1. 扩散模型思想

去噪扩散概率模型(DDPM)

思路来源:

非平衡热力学;连续时间转离散时间步;最大似然估计

拓展点:能量模型,VAE

目的与结构:

扩散模型目的从纯噪声生成图片

扩散模型结构:训练了一个U-Net,接受一系列加了噪声的图片,学习预测所加的噪声

训练过程

向训练样本中添加噪声(高斯噪声),然后反向该过程恢复数据,在这个过程中让模型学会消除噪声,从而实现从随机种子中生成高质量图像。

        数学上,扩散模型通常表示为一个参数化的马尔可夫链,它可以在有限时间内生成与训练数据匹配的样本。这一过程涉及到变分推理训练,以确保模型能够有效地模拟数据的概率分布。

2. 扩散模型的两个过程

2.1 前向扩散过程(噪声扩散)

        描述:固定的(或预设的)前向扩散过程 q :该过程会逐渐将高斯噪声添加到图像中,直到最终得到纯噪声

        对于训练集的每张照片,都能生成一系列噪声程度不同的加噪图片,这些噪声图+图上的噪声就是实际训练样本

2.2 反向扩散过程(去噪扩散)

        描述:可训练的反向去噪扩散过程 Pθ :训练一个神经网络,从纯噪音开始逐渐去噪,直到得到一个真实图像。

*前向与后向的步数由下标 t定义,并且有预先定义好的总步数 T(DDPM原文中为1000)。

*t=0 时为从数据集中采样得到的一张真实图片, t=T 时近似为一张纯粹的噪声

3. 扩散模型数学原理:

3.1前向扩散过程 数学推导

  • x为原始图像
  • 预先给定一个固定的噪声方差βt(在0~1间取值)
  • ϵ∼N(0,1)是添加的高斯噪声(也可用I表示)

将噪声和图片的对应位置上进行加权求和,加权求和的方式如下:

即        

                                 $\pmb{\sqrt{\beta}\times\epsilon+\sqrt{1-\beta}\times x}$

β:

最终噪声分布公式:

                        ​​​​​​​        $\pmb{q(x_{1:T}| x_{0})=\prod_{t=1}^{T}q(x_{t}| x_{t-1})}$

3.2 反向扩散过程 数学推导

要从采样自高斯噪声的一个随机噪声中恢复出原始数据X0,就需要知道反向过程中每一步的图像分布状态转移

DDPM也将反向过程定义为一个马尔可夫链,只不过这个马尔可夫链是由一系列用神经网络参数化的高斯分布组成的,也就是需要训练的扩散模型

基于 xt 来求 xt−1 的概率分布:

        ​​​​​​​        $\boxed{P(A|B)=\frac{P(B|A)P(A)}{P(B)}}$

        ​​​​​​​        $ \pmb{P(x_{t-1}|x_t)=\frac{P(x_t|x_{t-1})P(x_{t-1})}{P(x_t)}}$

也写做:

        ​​​​​​​        $\pmb{q(x_{t-1}| x_{t},x_{0})=\mathcal{N}(x_{t-1};\tilde{\mu}(x_{t},x_{0}),\tilde{\beta}_{t}\boldsymbol{I})}$

方差β的逆向推导:

        ​​​​​​​ $\tilde{\beta}_{t}=1 /\left\lgroup\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\overline{\alpha}_{t-1}}\right\rgroup=1 /\left\lgroup\frac{\alpha_{t}-\overline{\alpha}_{t}+\beta_{t}}{\beta_{t}(1-\overline{\alpha}_{t-1})}\right\rgroup=\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t}}\cdot\beta_{t}$

均值μ的逆向推导:

        $\begin{gathered} \tilde{\mu}_{t}(x_{t},x_{0}) =\left\lgroup\frac{\sqrt{\alpha_{t}}}{\beta_{t}}\boldsymbol{x}_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\boldsymbol{x}_{0}\right\rgroup/\left\lgroup\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\overline{\alpha}_{t-1}}\right) \\ =\Bigg\lgroup\frac{\sqrt{\alpha_{t}}}{\beta_{t}}x_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}x_{0}\Bigg\rgroup\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t}}\cdot\beta_{t} \\ =\frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_{t}}x_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}\beta_{t}}{1-\overline{\alpha}_{t}}x_{0} \end{gathered}$

4. 扩散模型的三大分支:

DDPM:去噪扩散概率模型

SGM:基于噪声条件评分的生成模型

SDE:随机微分方程

  • DDPM (Denoising Diffusion Probabilistic Model):
    • DDPM是一种基于扩散过程的生成模型,通过学习从噪声到干净数据的反向转换过程来生成新的样本。
    • DDPM建立在扩散过程的基础之上,通过训练一个条件去噪声网络来近似反向扩散过程。
  • SGM (Score-Based Generative Model):
    • SGM也是一种基于扩散过程的生成模型,它通过学习数据分布的条件评分函数(score function)来进行样本生成。
    • SGM与DDPM的主要区别在于,SGM直接建模数据分布的评分函数,而DDPM则建模反向扩散过程。
  • SDE (Stochastic Differential Equation):
    • SDE是描述扩散过程的数学框架,它提供了一种连续时间的方式来表示数据从噪声到干净样本的转换过程。
    • DDPM和SGM都可以基于SDE来实现,SDE为它们提供了理论基础和数学工具。

参考资料:

 原理+代码:Diffusion Model 直观理解 - 知乎

【扩散模型】2、DDPM | 去噪扩散概率模型开山之作_ddpm模型-CSDN博客

【CV】稳定扩散模型(Stable Diffusion)

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库尔特哥德尔的破壁人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值