【扩散模型】DDPM,DDIM

这篇具有很好参考价值的文章主要介绍了【扩散模型】DDPM,DDIM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DDPM:去噪扩散概率模型

ddpm是一类生成模型,其工作原理是逐渐向数据中添加噪声,然后学习如何逆转这一过程。这个想法是通过一个称为扩散的过程将一个简单的分布(通常是高斯噪声)转换成一个复杂的数据分布(如图像或音频),然后反向生成新的样本。

简单的过程可以描述如下:

  1. 从数据分布中的数据示例 x 0 x_0 x0开始。
  2. 通过一系列步骤将噪声添加到该数据样本 t t t以生成 x t x_t xt,最终变为纯噪声。
  3. 训练一个神经网络来逆转这个过程,即去噪,从 x T x_T xT(纯噪声)回到 x 0 x_0 x0(数据样本)。

正向扩散过程可以用马尔可夫链来描述:

x t = 1 − β t x t − 1 + β t ϵ , ϵ ∼ N ( 0 , I ) x_{t} = \sqrt{1 - \beta_t} x_{t-1} + \sqrt{\beta_t} \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) xt=1βt xt1+βt ϵ,ϵN(0,I)

式中$ \beta_t 为方差调度参数, 为方差调度参数, 为方差调度参数, \epsilon $为高斯噪声。

相反的过程,也就是模型所学到的,可以简化为:

x t − 1 = f ( x t , t ; θ ) x_{t-1} = f(x_t, t; \theta) xt1=f(xt,t;θ)

其中 f f f是一个由 θ \theta θ参数化的神经网络,它学习对 x t x_t xt去噪以估计 x t − 1 x_{t-1} xt1

DDIM:去噪扩散隐式模型

ddim是ddpm的非马尔可夫变体,允许更快的采样,并可以提供确定性输出。关键思想是,它们改变了逆向过程的计算方式,在不牺牲质量的情况下,允许更少的步骤生成样本。

在ddim中,反向过程被修改,以便每个步骤都可能撤销多个正向扩散步骤。反向过程可表述为:

x t − 1 = α t − 1 f ( x t , t ; θ ) + 1 − α t − 1 ϵ t , ϵ t ∼ N ( 0 , I ) x_{t-1} = \sqrt{\alpha_{t-1}} f(x_t, t; \theta) + \sqrt{1 - \alpha_{t-1}} \epsilon_t, \quad \epsilon_t \sim \mathcal{N}(0, I) xt1=αt1 f(xt,t;θ)+1αt1 ϵt,ϵtN(0,I)这里, α t − 1 \alpha_{t-1} αt1是控制学习到的去噪函数 f f f和添加的噪声 ϵ t \epsilon_t ϵt之间权衡的系数。DDPM和DDIM反向过程之间的关键区别在于DDIM的确定性设置,其中 ϵ t \epsilon_t ϵt是从模型派生出来的,创建了从 x T x_T xT x 0 x_0 x0的确定性路径。

ddim可以被认为是一种更有效地遍历扩散过程的方法,通常会导致更快的推理时间,因为它们可以采取更大的步骤而不会引入太多错误。

我们尝试进一步简化ddpm和ddim的解释:

DDPM:去噪扩散概率模型

想象一下,你有一张清晰的照片(你的原始数据),你开始在许多小步骤中添加一点随机噪声。每一步,照片都变得更加混乱,直到它完全是随机的噪音。ddpm学习如何做相反的事情:从噪音开始,他们弄清楚如何一步一步地消除噪音,以恢复原始的清晰照片。

用数学术语来说,你可以这样考虑每个增加噪声的步骤:
x noisy = x clear + noise x_{\text{noisy}} = x_{\text{clear}} + \text{noise} xnoisy=xclear+noise
而ddpm学会做相反的事情,就像:
x less noisy = some process to remove noise from  x noisy x_{\text{less noisy}} = \text{some process to remove noise from } x_{\text{noisy}} xless noisy=some process to remove noise from xnoisy

DDIM:去噪扩散隐式模型

现在,对于ddimm,这个想法是类似的,但是ddimm不是在许多步骤中去除一点点噪声,而是找到了一种方法,只需几个步骤就可以去除大量噪声。因此,它们可以更快地清除有噪点的照片,因为它们每次都在清除噪点方面有更大的飞跃。

简单来说,他们学习的反向过程更像是:
x less noisy = a more effective noise removal process applied to  x noisy x_{\text{less noisy}} = \text{a more effective noise removal process applied to } x_{\text{noisy}} xless noisy=a more effective noise removal process applied to xnoisy

ddpm和ddim之间的区别主要在于它们如何逆转噪声添加过程。ddpm通过许多小步骤来完成,而ddim通过更少、更大的步骤来完成。这使得ddimm能够更快地从噪声中生成清晰的图像,因为它们可以走捷径,而不需要经过每一个小步骤就能获得清晰的图像。

总而言之,ddpm就像一丝不苟地一块一块地清理脏窗户,而ddim就像把整个窗户擦几次,让它变得一样干净。

DDPM(去噪扩散概率模型)

在DDPM中,在每个反向步骤中,网络将噪声图像$ x_t 和时间步长 和时间步长 和时间步长 t 作为输入,并预测已添加到原始图像中的噪声 作为输入,并预测已添加到原始图像中的噪声 作为输入,并预测已添加到原始图像中的噪声 \epsilon 以到达 以到达 以到达 x_t $。逆扩散过程在每一步的公式为:

x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ ^ θ ( x t , t ) ) + σ t ⋅ z x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \hat{\epsilon}_\theta(x_t, t) \right) + \sigma_t \cdot z xt1=αt 1(xt1αˉt 1αtϵ^θ(xt,t))+σtz

其中$ \hat{\epsilon}_\theta(x_t, t) 是神经网络预测的噪声, 是神经网络预测的噪声, 是神经网络预测的噪声, z $是一个随机噪声向量,如果需要可以添加(用于随机抽样)。

DDIM(去噪扩散隐式模型)

DDIM使用相同的神经网络来预测噪声$ \epsilon $。然而,反向过程的表述不同,以允许非马尔可夫动力学和更大的步骤。DDIM中反向步骤的公式为:

x t − 1 = α ˉ t − 1 ( x t − 1 − α ˉ t ⋅ ϵ ^ θ ( x t , t ) α ˉ t ) + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ ^ θ ( x t , t ) + σ t ⋅ z x_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \left( \frac{x_t - \sqrt{1 - \bar{\alpha}_t} \cdot \hat{\epsilon}_\theta(x_t, t)}{\sqrt{\bar{\alpha}_t}} \right) + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \hat{\epsilon}_\theta(x_t, t) + \sigma_t \cdot z xt1=αˉt1 (αˉt xt1αˉt ϵ^θ(xt,t))+1αˉt1σt2 ϵ^θ(xt,t)+σtz

在这个公式中,$ \hat{\epsilon}_\theta(x_t, t) 同样是神经网络的输出。术语 同样是神经网络的输出。术语 同样是神经网络的输出。术语 \sigma_t 是该步骤所选择的噪声级别, 是该步骤所选择的噪声级别, 是该步骤所选择的噪声级别, z $是一个随机噪声向量,可以将其设置为零以使该过程具有确定性。

说明

在这两种情况下,只有一个网络可以预测噪声$ \epsilon $。DDPM和DDIM之间的关键区别在于它们如何在反向过程中使用预测的噪声和其他术语来重建原始图像。由于其公式,DDIM可以在反向过程中进行更大的跳跃,这使得它比DDPM更有效,DDPM需要更小、更渐进的步骤。

网络$ \theta 预测 预测 预测 \epsilon ,但是它用于计算下一个 ,但是它用于计算下一个 ,但是它用于计算下一个 x_{t-1} $的方式在DDPM和DDIM之间是不同的,DDIM允许一个非马尔可夫过程,它可以通过扩散过程向后采取可变大小的步骤。文章来源地址https://www.toymoban.com/news/detail-799342.html

到了这里,关于【扩散模型】DDPM,DDIM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【生成模型】DDPM概率扩散模型(原理+代码)

    AI 作画从 18 年的 DeepDream噩梦中惊醒过来,在 2022 年 OpenAI 的 DALL·E 2达到惊人效果,见图: AI + 艺术涉及到 Transformer、VAE、ELBO、Diffusion Model 等一系列跟数学相关的知识。 Diffusion Models 跟 VAE 一样原理很复杂 。 扩散模型 (论文: DDPM 即 Denoising Diffusion Probabilistic Model)2020年发

    2023年04月18日
    浏览(45)
  • 论文阅读_扩散模型_DDPM

    英文名称: Denoising Diffusion Probabilistic Models 中文名称: 去噪扩散概率模型 论文地址: http://arxiv.org/abs/2006.11239 代码地址1: https://github.com/hojonathanho/diffusion (论文对应代码 tensorflow) 代码地址2: https://github.com/AUTOMATIC1111/stable-diffusion-webui stable-diffusion-webui/modules/models/diffusion/ddpm_edi

    2024年02月09日
    浏览(48)
  • 【扩散模型】【AIGC】DDPM Note

    Abstract 我们使用扩散概率模型给出了高质量的图像合成结果,扩散概率模型是一类受非平衡热力学启发的潜变量模型。我们的最佳结果是根据扩散概率模型和去噪分数匹配与朗之万动力学之间的新联系而设计的加权变分界上的训练,并且我们的模型自然地允许渐进有损解压缩

    2024年02月10日
    浏览(42)
  • 扩散模型原理+DDPM案例代码解析

    扩散模型和一般的机器学习的神经网络不太一样!一般的神经网络旨在构造一个网络模型来拟合输入数据与希望得到的输出结果,可以把一般的神经网络当作一个黑盒,这个黑盒通过训练使其输入数据后就可以得到我们想要的结果。而扩散模型包含了大量的统计学和数学相关

    2024年02月16日
    浏览(45)
  • 理解扩散模型:Diffusion Models & DDPM

    在前面的博客中,我们讨论了生成模型VAE和GAN,近年来,新的生成模型——扩散模型受到越来越多的关注,因此值得好好去研究一番。扩散模型(Diffusion Models)最早由 [2] 于2015年提出,但直到2020年论文 [3] 发表之后才得到关注,本文详细梳理了 [3] 中的公式推导部分,帮助大

    2023年04月08日
    浏览(48)
  • AI绘图之DDIM 与 DDPM

    DDPM:    去噪扩散概率模型 (DDPM) 在没有对抗训练的情况下实现了高质量的图像生成,但它们需要模拟马尔可夫链的许多步骤才能生成样本。 为了加速采样,我们提出了去噪扩散隐式模型 (DDIM),这是一类更有效的迭代隐式概率模型,其训练过程与 DDPM 相同。 在 DDPM 中,生成过

    2024年02月11日
    浏览(40)
  • AI绘画Stable Diffusion原理之扩散模型DDPM

    传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook部署stable-diffusion-webui:Git kaggle Notebook部署stable-diffusion-webui:Git AI绘画,输入一段文本就能生成相关的图像,stable diffusion便是其中一个重要分支。自己对其中的原理比较感兴趣,因此开启这个系列的文章

    2024年02月03日
    浏览(50)
  • 一文速览扩散模型优化过程:从DDPM到条件生成模型Stable Diffusion

    目前AIGC可以说是整个人工智能领域的当红炸子鸡,而Diffusion Model(扩散模型)正是目前各项图像生成式应用的主要架构。本人并不主要研究图像生成领域,不过由于项目需要也对其进行过一些调研,故写下这篇文章进行分享与记录。本文会从最简单的扩散模型开始讲起,然后

    2024年02月09日
    浏览(58)
  • 人工智能_CPU安装运行ChatGLM大模型_安装清华开源人工智能AI大模型ChatGlm-6B_004---人工智能工作笔记0099

    上一节003节我们安装到最后,本来大模型都可以回答问题了,结果, 5分钟后给出提示,需要GPU,我去..继续看官网,如何配置CPU运行  没办法继续看: 这里是官网可以看到  需要gcc的版本是11.3.0,这里我们先没有去安装,直接试试再说 yum install epel-release yum install gcc-11.3.0 安装的话执行这

    2024年02月21日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包