Diffusion 和Stable Diffusion的数学和工作原理详细解释

这篇具有很好参考价值的文章主要介绍了Diffusion 和Stable Diffusion的数学和工作原理详细解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

扩散模型的兴起可以被视为人工智能生成艺术领域最近取得突破的主要因素。而稳定扩散模型的发展使得我们可以通过一个文本提示轻松地创建美妙的艺术插图。所以在本文中,我将解释它们是如何工作的。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

扩散模型 Diffusion

Diffusion 和Stable Diffusion的数学和工作原理详细解释

扩散模型的训练可以分为两部分:

  • 正向扩散→在图像中添加噪声。
  • 反向扩散过程→去除图像中的噪声。

正向扩散过程

Diffusion 和Stable Diffusion的数学和工作原理详细解释

正向扩散过程逐步对输入图像 x₀ 加入高斯噪声,一共有 T 步。该过程将产生一系列噪声图像样本 x₁, …, x_T。

当 T → ∞ 时,最终的结果将变成一张完包含噪声的图像,就像从各向同性高斯分布中采样一样。

但是我们可以使用一个封闭形式的公式在特定的时间步长 t 直接对有噪声的图像进行采样,而不是设计一种算法来迭代地向图像添加噪声。

封闭公式

封闭形式的抽样公式可以通过重新参数化技巧得到。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

通过这个技巧,我们可以将采样图像xₜ表示为:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

然后我们可以递归展开它,最终得到闭式公式:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

这里的ε 是 i.i.d. (独立同分布)标准正态随机变量。使用不同的符号和下标区分它们很重要,因为它们是独立的并且它们的值在采样后可能不同。

但是,上面公式是如何从第4行跳到第5行呢?

Diffusion 和Stable Diffusion的数学和工作原理详细解释

有些人觉得这一步很难理解。下面我详细介绍如何工作的:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

让我们用 X 和 Y 来表示这两项。它们可以被视为来自两个不同正态分布的样本。即 X ~ N(0, αₜ(1-αₜ₋₁)I) 和 Y ~ N(0, (1-αₜ)I)。

两个正态分布(独立)随机变量的总和也是正态分布的。即如果 Z = X + Y,则 Z ~ N(0, σ²ₓ+σ²ᵧ)。因此我们可以将它们合并在一起并以重新以参数化的形式表示合并后的正态分布。

重复这些步骤将为得到只与输入图像 x₀ 相关的公式:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

现在我们可以使用这个公式在任何时间步骤直接对xₜ进行采样,这使得向前的过程更快。

反向扩散过程

Diffusion 和Stable Diffusion的数学和工作原理详细解释

与正向过程不同,不能使用q(xₜ₋₁|xₜ)来反转噪声,因为它是难以处理的(无法计算)。所以我们需要训练神经网络pθ(xₜ₋₁|xₜ)来近似q(xₜ₋₁|xₜ)。近似pθ(xₜ₋₁|xₜ)服从正态分布,其均值和方差设置如下:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

损失函数

损失定义为负对数似然:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

这个设置与VAE中的设置非常相似。我们可以优化变分的下界,而不是优化损失函数本身。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

通过优化一个可计算的下界,我们可以间接优化不可处理的损失函数。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

通过展开,我们发现它可以用以下三项表示:

1、L_T:常数项

由于 q 没有可学习的参数,p 只是一个高斯噪声概率,因此这一项在训练期间将是一个常数,因此可以忽略。

2、Lₜ₋₁:逐步去噪项

这一项是比较目标去噪步骤 q 和近似去噪步骤 pθ。通过以 x₀ 为条件,q(xₜ₋₁|xₜ, x₀) 变得易于处理。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

经过一系列推导,上图为q(xₜ₋₁|xₜ,x₀)的平均值μ′ₜ。为了近似目标去噪步骤q,我们只需要使用神经网络近似其均值。所以我们将近似均值 μθ 设置为与目标均值 μ̃ₜ 相同的形式(使用可学习的神经网络 εθ):

Diffusion 和Stable Diffusion的数学和工作原理详细解释

目标均值和近似值之间的比较可以使用均方误差(MSE)进行:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

经过实验,通过忽略加权项并简单地将目标噪声和预测噪声与 MSE 进行比较,可以获得更好的结果。所以为了逼近所需的去噪步骤 q,我们只需要使用神经网络 εθ 来逼近噪声 εₜ。

3、L₀:重构项

这是最后一步去噪的重建损失,在训练过程中可以忽略,因为:

  • 可以使用 Lₜ₋₁ 中的相同神经网络对其进行近似。
  • 忽略它会使样本质量更好,并更易于实施。

所以最终简化的训练目标如下:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

我们发现在真实变分界上训练我们的模型比在简化目标上训练产生更好的码长,正如预期的那样,但后者产生了最好的样本质量。[2]

通过测试在变分边界上训练模型比在简化目标上训练会减少代码的长度,但后者产生最好的样本质量。[2]

U-Net模型

在每一个训练轮次

  • 每个训练样本(图像)随机选择一个时间步长t。
  • 对每个图像应用高斯噪声(对应于t)。
  • 将时间步长转换为嵌入(向量)。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

训练过程的伪代码

Diffusion 和Stable Diffusion的数学和工作原理详细解释

官方的训练算法如上所示,下图是训练步骤如何工作的说明:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

反向扩散

Diffusion 和Stable Diffusion的数学和工作原理详细解释

我们可以使用上述算法从噪声中生成图像。下面的图表说明了这一点:

Diffusion 和Stable Diffusion的数学和工作原理详细解释

在最后一步中,只是输出学习的平均值μθ(x₁,1),而没有添加噪声。反向扩散就是我们说的采样过程,也就是从高斯噪声中绘制图像的过程。

扩散模型的速度问题

扩散(采样)过程会迭代地向U-Net提供完整尺寸的图像获得最终结果。这使得纯扩散模型在总扩散步数T和图像大小较大时极其缓慢。

稳定扩散就是为了解决这一问题而设计的。

稳定扩散 Stable Diffusion

稳定扩散模型的原名是潜扩散模型(Latent Diffusion Model, LDM)。正如它的名字所指出的那样,扩散过程发生在潜在空间中。这就是为什么它比纯扩散模型更快。

潜在空间

Diffusion 和Stable Diffusion的数学和工作原理详细解释

首先训练一个自编码器,学习将图像数据压缩为低维表示。

通过使用训练过的编码器E,可以将全尺寸图像编码为低维潜在数据(压缩数据)。然后通过使用经过训练的解码器D,将潜在数据解码回图像。

潜在空间的扩散

将图像编码后,在潜在空间中进行正向扩散和反向扩散过程。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

  • 正向扩散过程→向潜在数据中添加噪声
  • 反向扩散过程→从潜在数据中去除噪声

条件作用/调节

Diffusion 和Stable Diffusion的数学和工作原理详细解释

稳定扩散模型的真正强大之处在于它可以从文本提示生成图像。这是通过修改内部扩散模型来接受条件输入来完成的。

Diffusion 和Stable Diffusion的数学和工作原理详细解释

通过使用交叉注意机制增强其去噪 U-Net,将内部扩散模型转变为条件图像生成器。

上图中的开关用于在不同类型的调节输入之间进行控制:

  • 对于文本输入,首先使用语言模型 𝜏θ(例如 BERT、CLIP)将它们转换为嵌入(向量),然后通过(多头)Attention(Q, K, V) 映射到 U-Net 层。
  • 对于其他空间对齐的输入(例如语义映射、图像、修复),可以使用连接来完成调节。

训练

Diffusion 和Stable Diffusion的数学和工作原理详细解释

训练目标(损失函数)与纯扩散模型中的训练目标非常相似。唯一的变化是:

  • 输入潜在数据zₜ而不是图像xₜ。
  • U-Net增加条件输入𝜏θ(y)。

采样

Diffusion 和Stable Diffusion的数学和工作原理详细解释

由于潜在数据的大小比原始图像小得多,所以去噪过程会快得多。

架构的比较

比较纯扩散模型和稳定扩散模型(潜在扩散模型)的整体架构。

Diffusion Model

Diffusion 和Stable Diffusion的数学和工作原理详细解释

Stable Diffusion (Latent Diffusion Model)

Diffusion 和Stable Diffusion的数学和工作原理详细解释

快速总结一下:

  • 扩散模型分为正向扩散和反向扩散两部分。
  • 正扩散可以用封闭形式的公式计算。
  • 反向扩散可以用训练好的神经网络来完成。
  • 为了近似所需的去噪步骤q,我们只需要使用神经网络εθ近似噪声εₜ。
  • 在简化损失函数上进行训练可以获得更好的样本质量。
  • 稳定扩散(潜扩散模型)是在潜空间中进行扩散过程,因此比纯扩散模型快得多。
  • 纯扩散模型被修改为接受条件输入,如文本、图像、语义等。

引用

[1] K. Roose, “An a.i.-generated picture won an art prize. artists aren’t happy.,” The New York Times, 02-Sep-2022.

[2] J. Ho, A. Jain, and P. Abbeel, “Denoising Diffusion Probabilistic models,” arXiv.org, 16-Dec-2020.

[3] N. A. Sergios Karagiannakos, “How diffusion models work: The math from scratch,” AI Summer, 29-Sep-2022.

[4] L. Weng, “What are diffusion models?,” Lil’Log, 11-Jul-2021.

[5] A. Seff, “What are diffusion models?,” YouTube, 20-Apr-2022.

[6] Outlier, “Diffusion models | paper explanation | math explained,” YouTube, 06-Jun-2022.

[7] R. Rombach, A. Blattmann, D. Lorenz, P. Esser, and B. Ommer, “High-resolution image synthesis with Latent Diffusion Models,” arXiv.org, 13-Apr-2022.

[8] J. Alammar, “The Illustrated Stable Diffusion,” The Illustrated Stable Diffusion — Jay Alammar — Visualizing machine learning one concept at a time.

[9] A. Gordić, “Stable diffusion: High-resolution image synthesis with latent diffusion models | ML coding series,” YouTube, 01-Sep-2022. [Online].

https://avoid.overfit.cn/post/d46c23ece6024970af77acae1c36f8b8

作者:Steins文章来源地址https://www.toymoban.com/news/detail-492255.html

到了这里,关于Diffusion 和Stable Diffusion的数学和工作原理详细解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • AIGC:DALL·E 2, Stable Diffusion和 Midjourney工作原理简介

    在过去的几年里,人工智能(AI)取得了极大的进展,而AI的新产品中有AI图像生成器。这是一种能够将输入的语句转换为图像的工具。文本转图像的AI工具有许多,但最突出的就属DALLE 2、Stable Diffusion和Midjourney了。 DALL-E 2由OpenAI开发,它通过一段文本描述生成图像。其使用超

    2024年02月11日
    浏览(53)
  • 一文读懂Stable Diffusion 论文原理+代码超详细解读

    Stable diffusion是一个基于Latent Diffusion Models(LDMs)实现的的文图生成(text-to-image)模型。 2022年8月,游戏设计师Jason Allen凭借AI绘画作品《太空歌剧院(Théâtre D’opéra Spatial)》获得美国科罗拉多州博览会“数字艺术/数码摄影“竞赛单元一等奖,“AI绘画”引发全球热议。得力

    2024年01月19日
    浏览(57)
  • Fast.ai 的新课来了,给你详细介绍 Stable Diffusion 原理

    最近跟学生们学了个新词儿,叫做「双厨狂喜」。一般形容两个知名创作者合作出来的作品 ------ 例如视频或者直播等 ------ 很受大伙儿欢迎。 这次,告诉你一个好消息,fast.ai 要和 Huggingface, Stability.ai(Stable Diffusion 作者之一)等各方一起创作一门新课程,叫做 From Deep Learn

    2024年02月11日
    浏览(47)
  • BERT模型基本理念、工作原理、配置讲解(图文解释)

    BERT是Birdirectional Encoder Representation from Transformers的缩写,意为多Transformer的双向编码器表示法,它是由谷歌发布的先进的嵌入模型,BERT是自然语言处理领域的一个重大突破,它在许多自然语言处理任务中取得了突出的成果,比如问答任务,文本生成,句子分类等等,BERT成功的

    2023年04月18日
    浏览(42)
  • stable diffusion到底是如何工作的

    stable diffusion简单入门 stable diffusion是一个文生图模型,主要由CompVis、Stability AI和LAION的研究者们创建。这个模型主要是在512X512分辨率的图像上训练的,训练数据集是LAION-5B,该数据集是目前可访问的最大的多模态数据集。 在这篇文章中,我们想展示如何将 Stable Diffusion 与 🧨

    2024年02月03日
    浏览(30)
  • 前端系列第4集-解释下浮动和它的工作原理,清除浮动的方法

    浮动是CSS布局中的一个重要概念,它可以让元素脱离标准文档流,并且可以让其他元素环绕在其周围。通常情况下,浮动用于创建多列布局或者图像与文字混排的效果。比如,我们可以使用浮动来实现一个左侧导航栏、右侧主体内容的页面布局。 浮动的工作原理很简单。当一

    2023年04月08日
    浏览(42)
  • Stable Diffusion的原理

    CSDN-markdown语法之怎样使用LaTeX语法编写数学公式 参考视频:【diffusion】扩散模型详解!原理+代码! 用一颗桃树为你讲清楚 知识点:AI绘图原理 Diffusion扩散模型 Windows深度学习环境搭建:Windows深度学习环境搭建 绘图的过程:逆向降噪的过程 例如将一个掉满花瓣的草地复原成

    2024年02月09日
    浏览(55)
  • Stable Diffusion原理说明

    本文参考:深入浅出讲解Stable Diffusion原理,新手也能看明白 - 知乎 目录 1、Stable Diffusion能做什么? 2、扩散模型(Diffusion model) (1)前向扩散(Forward Diffusion) (2)反向扩散(Reverse Diffusion) (3)如何训练  3、Stable Diffusion Model (1)潜在扩散模型(Latent diffusion model) (

    2024年02月11日
    浏览(41)
  • Stable Diffusion模型原理

    在Stable Diffusion诞生之前,计算机视觉和机器学习方面最重要的突破是 GAN(Generative Adversarial Networks 生成对抗网络)。GAN让超越训练数据已有内容成为可能,从而打开了一个全新领域——现在称之为生成建模。 然而,在经历了一段蓬勃发展后,GAN开始暴露出一些瓶颈和弊病,

    2024年02月03日
    浏览(67)
  • stable diffusion原理

    隐空间是压缩数据的一个表示。数据压缩的目的是学习数据中较重要的信息。以编码器-解码器网络为例,首先使用全卷积神经网(FCN)络学习图片特征,我们将特征提取中对数据的降维看作一种有损压缩。但是由于解码器需要重建(reconstruct)数据,所以模型必须学习如何储存所有

    2024年02月01日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包