自学内容网 自学内容网

【论文阅读】03-Diffusion Models and Representation Learning: A Survey

Abstract(摘要)

在这里插入图片描述

  • 扩散模型是各种视觉任务中流行的生成建模方法,引起了人们的广泛关注
  • 它们可以被认为是 自监督学习方法【通过数据本身的结构和特征来训练模型,而不是依赖外部标签】 的一个独特实例,因为它们独立于标签注释
  • 本研究探讨了扩散模型与表征学习之间的相互作用
  • 它提供了扩散模型的基本方面的概述,包括数学基础,流行的去噪网络架构和指导方法
  • 详细介绍了与扩散模型和表征学习相关的各种方法
  • 其中包括利用从预训练扩散模型中学习到的表征来完成后续识别任务的框架,以及利用表征和自我监督学习的进步来增强扩散模型的方法
  • 本研究旨在全面概述扩散模型和表示学习之间的分类,确定现有关注和潜在探索的关键领域。Github链接如上

1 Introduction(引言)

在这里插入图片描述

  • 扩散模型[68,151,154] 最近作为最先进的生成模型出现,在 图像合成[43,67,68,141]其他模式(包括自然语言[9,70,77,101],计算化学[6,71]和音频合成[80,92,109]) 中显示出显著的结果。
  • 扩散模型显著的生成能力表明,扩散模型可以学习其输入数据的低级和高级特征,这可能使它们非常适合于一般表征学习。
  • 生成对抗网络(GANs)[22,53,84]变分自编码器(VAEs)[88,137] 等其他生成模型不同,扩散模型不包含捕获数据表示的固定架构组件[124]
  • 这使得基于扩散模型的表示学习具有挑战性
  • 然而,利用扩散模型进行表示学习的方法越来越受到关注,同时受到扩散模型训练和采样技术进步的推动

在这里插入图片描述

  • 目前最先进的 自监督表示学习方法[8,24,33,55] 已经证明了很大的可扩展性
  • 因此,扩散模型很可能表现出类似的缩放特性[159]。
  • 用于获得最先进生成结果的 分类器制导[43]无分类器制导[67] 等受控生成方法依赖于带注释的数据,这是扩展扩散模型的瓶颈
  • 分类器制导(Classifier-Guided):
    • 在目标检测或识别任务中,利用一个分类器来指导目标的定位和识别过程。具体来说,分类器会预测目标的类别,并根据这些类别信息来指导目标检测或识别的过程。
  • 无分类器制导(Non-classifier-Guided):
    • 在目标检测或识别任务中,不使用分类器来指导目标的定位和识别过程。相反,模型会自行学习目标的特征和位置信息,而不依赖外部的分类器。
    • 无分类器制导的方法通常会要求模型在没有类别标签的情况下进行目标检测或识别,这需要模型具有更强的特征学习和定位能力。
  • 利用表示学习的指导方法提供了一个解决方案,因此无需注释,可能使扩散模型在更大的,无注释的数据集上训练模型

在这里插入图片描述

  • 本文旨在阐明扩散模型与表征学习之间的关系和相互作用。
  • 我们强调了两个中心观点:使用扩散模型本身进行表征学习和使用表征学习来改进扩散模型
  • 我们介绍了当前方法的分类法,并推导出展示当前方法之间共性的广义框架
  • Ho等人[68]、SohlDickstein等人[151]、Song等人[154] 提出扩散模型以来,探索扩散模型的表示学习能力的兴趣不断增长

在这里插入图片描述

  • 如图1所示,我们预计这一趋势今年将继续下去。
  • 关于扩散模型和表示学习的出版作品数量的增加使得研究人员更难以确定最先进的方法并保持当前的发展
  • 这可能会阻碍该领域的进展,这就是为什么我们认为需要进行全面的概述和分类
    在这里插入图片描述

图1所示,展示了关于扩散模型和表示学习的已发表和预印本论文的年度数量。对于2024年,绿色条表示截至2024年6月(含2024年6月)收集的论文数量,灰色虚线表示全年的预测数量

在这里插入图片描述

  • 表征学习和扩散模型的研究还处于起步阶段。
  • 许多当前的方法依赖于使用扩散模型,仅训练生成合成用于表示学习
  • 因此,我们假设未来在这一领域有进一步发展的重要机会,并且扩散模型可以越来越多地挑战当前表征学习的最新技术。
  • 图2 显示了现有方法的定性结果。我们希望这项调查能够通过澄清当前方法之间的共性和差异,为基于扩散的表征学习的进步做出贡献。
  • 综上所述,本文的主要贡献如下:
    • 全面概述:对扩散模型和表征学习之间的相互作用进行了全面的调查,明确了扩散模型如何用于表示学习,反之亦然
    • 方法分类:我们介绍了目前基于扩散的表征学习方法的分类,并强调了它们之间的共性和差异。
    • 广义框架:本文推导了扩散模型特征提取和基于分配的指导的广义框架,对扩散模型和表征学习的大量工作提供了结构化的视图
    • 未来方向:我们确定了该领域进一步发展的关键机会,鼓励将扩散模型和流动匹配作为表征学习的新技术进行探索

在这里插入图片描述

图2所示。左图:显示使用自监督制导信号条件反射的扩散模型的定性生成结果。右图:显示下游图像任务的定性结果,这些任务利用了在训练扩散模型中学习到的表征。改编自Li等人[100],Hu等人[73],Pan等人[130],Baranchuk等人[15],Yang和Wang[173]

2 BACKGROUND(背景)

在这里插入图片描述

  • 下一节概述了扩散模型所需的数学基础。
  • 我们还重点介绍了扩散模型的当前架构骨干,并简要概述了采样方法和条件生成方法

2.1 Mathematical Foundations(数学基础)

在这里插入图片描述

  • 考虑从潜在概率分布 p ( x ) p(x) p(x)中提取的一组训练示例。
  • 生成扩散模型背后的思想是学习一种去噪过程,将随机噪声的样本映射到从p(x)中采样的新图像[133]
  • 为了达到这个目的,图像被逐渐添加不同程度的高斯噪声破坏
  • 给定一个 未损坏的训练样本 x 0 x_{0} x0~ p ( x ) p(x) p(x),其中索引 0 0 0 表示样本未损坏,则损坏的样本 x 1 , x 2 … , x T x_1, x_2…, x_T x1x2xT 是根据马尔可夫过程生成的
  • 转换内核 p ( x t ∣ x t − 1 ) p(x_t|x_{t−1}) pxtxt1的一个常见选择如下

在这里插入图片描述
1式

  • T T T 为扩散时间步数, β t β_t βt 为随时间变化的方差表, I I I为维数为 x 0 x_0 x0的单位矩阵[37]。
  • 注意,转换核 p ( x t ∣ x t − 1 ) p(x_t|x_{t−1}) p(xtxt1) 的其他参数化也以同样的方式适用[87,188]

公式1详解:

  • 这个公式描述了扩散过程中的一步,从状态 x t − 1 x_{t−1} xt1 转移到 x t x_t xt的概率
  • X t X_t Xt是第t步的图像,里面左边部分就是他的均值,右半部分是他的方差, I I I是单位矩阵,表示独立的噪声
  • β t β_t βt是扩散的过程时间步长 依赖的噪声参数,随着t增大,使得噪声逐渐增加 的概率分布

类比:

  • 可以将图像看作是一个点球的颜色,随着时间 𝑡 的推移,球的颜色逐渐变模糊,直到最后完全变成噪声(一个随机的颜色点)。
  • 公式 (1) 就是描述如何根据上一时刻 𝑥 𝑡 − 1 𝑥_{𝑡 − 1} xt1的图像,再加上一些噪声,生成下一时刻 𝑥 𝑡 𝑥_𝑡 xt 的图像。

在这里插入图片描述

  • 我们继续讨论ddpm[68] 中使用的参数化,以简化后续的讨论。
  • 在重参数化技巧的帮助下,可以直接从 X 0 X_0 X0采样噪声图像 X t [ 151 ] X_t[151] Xt[151],方法如式子2
  • α t : = 1 − β t , α ¯ t α_t:= 1−β_t, α¯_t αt:=1βt,α¯t:= ∏ i = 1 t α i \prod_{i=1}^t α_i i=1tαi
  • 给定原始输入图像 x 0 x_0 x0,我们现在可以通过对高斯向量 ϵ t ϵ_t ϵt ~ N ( 0 , I ) N(0, I) N(0I)采样并应用以下方法一步获得 x t x_t xt式子3
  • 我们可以从一个维度等于数据的纯噪声图像 x T x_T xT ~ π ( x T ) = N ( 0 , I ) π(x_T) = N(0, I) π(xT)=N(0I)开始,从 p ( x 0 ) p(x_0) p(x0) 生成新的样本,并对其进行顺序去噪
  • 使得在每一步, p θ ( X t − 1 ∣ X t ) = N ( X t − 1 ; µ θ ( X t , t ) , Σ θ ( X t , t ) ) p_θ(X_{t−1}| X_t) =N (X_{t−1};µ_θ(X_t, t), Σ_θ(X_t, t)) pθ(Xt1Xt)=N(Xt1;µθ(Xt,t)Σθ(Xt,t))

公式2解释

  • 这个公式可以直接从最初的无噪声图像 X 0 X_0 X0 (训练数据中的原始图像)生成第 𝑡 步的图像 X 𝑡 X_𝑡 Xt
    𝛼ˉ𝑡是从 𝑡=1到 𝑡 的一系列 𝛼𝑡的累积乘积,用来控制噪声的总量
  • 同样,根号部分表示均值,后面部分表示方差这意味着 X t X_t Xt X 0 X_0 X0的带噪版本,噪声的程度取决于 𝑡

类比

  • 在 t=0 时有一张非常清晰的照片,然后在经过 t个时间步之后,这张照片会变得模糊,
  • 增加了随机噪声,这个过程可以通过公式 (2) 直接一步计算出来

公式3解释

  • 这是一个具体的采样公式,它告诉我们如何从原始图像 X 0 X_0 X0生成 X t X_t Xt,并且加入了噪声 ϵ t ϵ_t ϵt​ ,其中Font metrics not found for font: .表示标准正态分布的随机噪声。
  • 你可以将这个公式看作是将原始图像 X 0 X_0 X0和噪声 ϵ t ϵ_t ϵt按照一定的比例结合,生成带噪声的图像 X t X_t Xt

类比:

  • 假设有一张清晰的图像 ,通过公式 (3),将一部分图像内容保留原始内容(即式子左半部分),同时加入一部分随机噪声(式子右半部分),生成一个带噪声的中间图像 x t x _t xt
  • 可以想象一下后面的部分,希望能在我给了一张纯噪声的图片下,我需要把它还原成 X 0 X_0 X0,注意这个部分最后概率公式 p θ ( X t − 1 ∣ X t ) p_θ(X_{t−1}| X_t) pθ(Xt1Xt) ,和式子1是完全相反的。式子1是 p ( X t ∣ X t − 1 ) p(X_t|X_{t−1}) p(XtXt1)
    式子1是增加噪声,这个部分是去除噪声

在这里插入图片描述

  • 在实践中,这需要训练一个神经网络 p θ ( X t − 1 ∣ X t ) p_θ(X_{t−1}|X_t) pθ(Xt1Xt) ,该网络在给定扩散时间步长t和噪声输入图像 x t x_t xt 的情况下预测平均值 µ 0 ( X t , t ) µ_0(X_t, t) µ0(Xt,t)和协方差 Σ θ ( X t , t ) [ 172 ] Σ_θ(X_t, t)[172] Σθ(Xt,t)[172]
  • 用最大似然目标训练这种神经网络是很棘手的[37],因此将目标修改为最小化负对数似然的变分下界[68,151]式子4
  • 其中 D K L DKL DKL是KL散度。这一目标确保了当条件为 x 0 x_0 x0时,神经网络被训练成最小化 p θ ( X t − 1 ∣ X t ) p_θ(X_{t−1}|X_t) pθ(Xt1Xt) 与前向过程的真实后验之间的距离
  • 降噪网络一般用于参数化逆跃迁 p θ ( X t − 1 ∣ X t ) p_θ(X_{t−1}|X_t) pθ(Xt1Xt) 分布的逆均值 µ θ ( X , t ) µ_θ(X, t) µθ(X,t):= N ( X t − 1 ; µ θ ( X t , t ) , Σ θ ( X t , t ) ) [ 27 ] N (X_{t−1};µ_θ(X_t, t), Σ_θ(X_t, t))[27] N(Xt1µθ(Xt,t)Σθ(Xt,t))[27]

公式4解释:

  • 首先这个是损失函数,用来训练生成扩散模型中的神经网络 P θ ( X t − 1 ∣ X t ) P_θ(X_{t−1}|X_t) Pθ(Xt1Xt),使其能够有效地逆向去噪,生成目标图像
  • 为什么要这么做?是在写代码pytorch等框架当中,就必须要需要这些套路。可以理解为必要步骤:1、搭建网络模型->2、加载数据集->3、训练数据->4、计算损失函数->5、优化器优化->6、反向传播
  • 该损失函数有三个部分组成,
    • 第一部分:直接最大化预测 X 0 X_0 X0的对数概率。这确保网络能够生成逼近真实图像 x 0 x_0 x0的结果
    • 第二部分: 用来度量模型在 T T T步时生成的噪声图像 X T X_T XT与标准高斯噪声 π ( X T ) π(X_T) π(XT)的距离。通过最小化这个散度,网络学会生成噪声 x T ​ x _T​ xT是从高斯分布中采样的(确保噪声是在一定范围之内的)
    • 第三部分: 这个项是模型在每一步去噪过程中的损失,网络学习如何从 x t x_t xt恢复 x t − 1 x_{t−1} xt1并让这个过程与原始扩散过程保持一致(去除噪声和增加噪声的方式也要维持在一定范围之内)

类比

  • 这个损失函数理解为一个多步“修复”任务,即你每一步都有一个模糊的照片 x t x_t xt
  • 你希望通过学习逆向过程,逐步恢复这张照片,直到恢复到最初的清晰照片 x 0 x_0 x0
  • 损失函数中的每一项都确保神经网络能够在不同层面上逐步优化这个修复过程

在这里插入图片描述

  • 反向均值的真实值是 X 0 X_0 X0的函数,它在反向过程中是未知的,因此必须使用输入时间步长t和噪声数据 X t X_t Xt来估计
  • 具体来说,反向均值的公式式子5
    • 其中原始数据 X 0 X_0 X0在反向过程中不可用,因此必须进行估计。
    • 我们将去噪网络对原始数据的预测表示为 X ^ 0 \widehat{X}_0 X 0
    • 这个预测 X ^ 0 \widehat{X}_0 X 0可以用公式5得到 µ θ ( X t , t ) µ_θ(X_t, t) µθ(Xt,t)
    • 在采样开始时直接使用 X ^ 0 \widehat{X}_0 X 0进行参数化是有益的,因为直接预测 X ^ 0 \widehat{X}_0 X 0有助于去噪网络学习更高层次的结构特征[115]。

公式5解释:

  • 定义了在去噪过程中,从 X t X_t Xt生成 X t − 1 X_{t−1} Xt1时的均值 µ θ ( X t , t ) µ_θ(X_t, t) µθ(Xt,t)它描述了在每一步中,如何估计 X t − 1 X_{t−1} Xt1(也就是“更干净”的图像)
  • 在这个公式中: X t X_t Xt是当前时间步t的带噪图像。两个𝛼𝑡 是用于控制噪声大小的参数,它们随着时间步长 t t t改变。
    通过从当前图像 x t x_t xt 减去一些噪声部分(和 x 0 x_0 x0相关的部分),模型能够预测出较少噪声的图像 X t − 1 X_{t−1} Xt1

类比:

  • 其实每个图片也好,数据也好,其本质就是一个分布(用 X t X_t Xt表示),由 µ µ µ均值还有方差决定,可以把它看成减法公式
  • 公式5就是是一个被减项,可以理解为 X t X_t Xt 减去某一项 = X t − 1 X_{t−1} Xt1。这个某一项实际上就是一个均值,因为 X t X_t Xt X t − 1 X_{t−1} Xt1是由 µ µ µ均值还有方差组成
  • 公式 (5) 就是在计算每一步如何减去噪声,从而逐步恢复到清晰图像。我们要的就是被减项

在这里插入图片描述

  • [68]建议将协方差 Σ θ ( x t , t ) Σθ(x_t, t) Σθ(xt,t)固定为一个恒定值,这样可以将参数化的逆均值重写为添加噪声的函数,而不是 X 0 X_0 X0
  • 这种重新参数化允许推导出目标 L v l b L_{vlb} Lvlb的简化,我们表示 L s i m p l e L_{simple} Lsimple,它测量预测噪声 ϵ θ ( x t , t ) ϵ_θ(x_t, t) ϵθ(xt,t)与实际噪声 ϵ t ϵ_t ϵt之间的距离,如式子7
  • 代替直接预测均值和协方差,网络现在被参数化来预测扩散时间步和噪声图像输入的附加噪声。
  • 逆均值由式6求得,协方差固定。
  • 噪声预测网络的优点是能够通过预测零噪声在最后的采样阶段从 X t X_t Xt中恢复 X t − 1 X_{t−1} Xt1[79]
  • 这对于 X ^ 0 \widehat{X}_0 X 0的直接参数化是比较困难的。
  • 因此,两者之间存在权衡,其中直接参数化对于初始采样阶段的非常嘈杂的输入可能更有利,而噪声预测参数化在后期采样阶段可能更有利[27]
  • 这一段解释如何通过重新参数化,简化原始的生成扩散模型,对公式4进行了简化

  • 通过这种简化,模型不再直接预测均值 μ θ ( x t , t ) μ_θ (x_t,t) μθ(xt,t)和协方差 Σ θ ( x t , t ) Σ_θ(x_t ,t) Σθ(xt,t),而是直接预测加入的噪声 ϵ θ ( x t , t ) ϵ_θ (x_t ,t) ϵθ(xt,t)

  • 公式6理解:

    • 对之前公式 (5) 中的反向均值 μ θ ​ ( x t ​ , t ) μ_θ ​(x_t ​,t) μθ(xt,t)的重新参数化表示
    • 现在,均值的表达不再依赖于 x 0 x_0 x0​(初始未带噪声的图像),而是依赖于预测的噪声 ϵ θ ( x t ​ , t ) ϵ_θ(x_t ​,t) ϵθ(xt,t)
    • 这样做的目的是为了简化计算,让神经网络直接预测噪声 ϵ θ ϵ_θ ϵθ ​ 而非均值 μ θ μ_θ μθ,从而更容易优化模型
    • x t x_t xt 是时间步 t t t时的带噪图像。两个𝛼𝑡 是控制噪声和图像混合的系数,表示噪声注入过程的不同时间步
    • ϵ θ ( x t ​ , t ) ϵ_θ(x_t ​,t) ϵθ(xt,t) 是神经网络预测的噪声,这个噪声代表了生成图像时所需要去除的噪声
  • 类比

    • 假设你有一张带噪声的照片 x t x_t xt,现在你要通过去除某种特定的噪声来恢复它。
    • 公式 (6) 告诉你如何根据当前带噪图像 x t x_t xt和网络预测的噪声 ϵ θ ( x t ​ , t ) ϵ_θ(x_t ​,t) ϵθ(xt,t)去计算更清晰的图像 x t − 1 x_{t−1} xt1
    • 这里网络学会了如何直接去预测噪声的大小,而不是依赖于原始图像 x 0 x_0 x0

公式7解释:

  • 这是一个简化的损失函数 L s i m p l e L_{simple} Lsimple ,用来替代之前的复杂的变分下界 L v l b L_{vlb} Lvlb
  • 损失函数的目标是让神经网络预测出的噪声 ϵ θ ( x t , t ) ϵ_θ(x_t,t) ϵθ(xt,t)和实际的噪声 ϵ 𝑡 ϵ_𝑡 ϵt尽可能接近,即最小化它们的差距
  • ϵ t ϵ_t ϵt N ( 0 , I ) N(0,I) N(0,I):真实的噪声是从标准正态分布中采样得到的。
  • ϵ θ ( x t ​ , t ) ϵ_θ (x t ​ ,t) ϵθ(xt,t):这是神经网络预测出的噪声
  • 模型希望通过学习,让预测噪声尽可能接近真实噪声

有两个例子可以区分一下公式4、5
在这里插入图片描述
公式6、7
在这里插入图片描述

在这里插入图片描述

  • 为了提高采样效率,Salimans和Ho[143] 引入了速度预测作为另一种参数化方法。
  • 速度是去噪输入和附加噪声的线性组合,通常定义为式子8
  • 这种参数化结合了数据参数化和噪声参数化的优点,使去噪网络能够灵活地学习噪声预测以及基于信噪比的重建动态。
  • 这种参数化导致扩散蒸馏方法的结果稳定[143],并且可以加速生成[19]。
  • 最近,一些研究[32,133,153,154] 进一步提出从连续的角度来考虑噪声,而不是离散角度

在这里插入图片描述

  • 这里,扩散过程表示为一个连续的随时间变化的函数σ(t)。
  • 当样本x随时间向前移动时,噪声逐渐增加,当图像沿反向轨迹移动时,噪声逐渐去除
  • 更具体地说,扩散过程可以用随机微分方程(SDE)来表示[83],其中在实现扩散模型时需要选择
    • 向量值漂移系数 f ( ⋅ , t ) f(·,t) f(t) R d \mathbb{R^d} Rd R d \mathbb{R^d} Rd【描述图像在时间上的平均变化趋势】
    • 标量值扩散系数 g ( ⋅ ) g(·) g() R \mathbb{R} R R \mathbb{R} R【扩散系数,控制噪声注入的强度】
  • 式子9其中 w w w是标准维纳过程【高斯噪声,它负责引入随机性,增加图像的噪声】
  • 用于模拟扩散过程的SDE公式 有两种广泛使用的选择。
    • 第一种是保方差 ( V P ) S D E (VP) SDE VPSDE ,用于Ho等人[68] 的工作中,它由 f ( x , t ) f(x, t) f(x,t) g ( t ) g(t) g(t) 给出,其中 β ( t ) = β t β(t) = β_t β(t)=βt当t趋于无穷
    • 【注意,这相当于公式1中DDPM参数化的连续式】
    • 第二种是方差爆炸 ( V E ) S D E [ 153 ] (VE) SDE[153] VESDE[153] ,由选择 f ( x , t ) = 0 f(x, t) = 0 f(x,t)=0 g ( t ) g(t) g(t)产生
  • 这一段讨论了生成扩散模型中的一种 连续时间参数化方法,并用随机微分方程来表示扩散过程,目的是通过这种方式更好地控制扩散过程中的噪声演变,从而提高采样效率和生成质量
  • 公式8解释:
    • 这里的 v v v表示的是 “速度”,它是噪声 ϵ ϵ ϵ和带噪图像 X t X_t Xt的线性组合。
    • 参数化公式将噪声预测(ϵ)和图像信息( X t X_t Xt)结合在一起,用于生成过程中的预测。
    • 如果单纯依赖噪声预测或图像信息预测都不够全面,速度 v v v的定义实际上是结合了这两者的优点,网络可以在生成的过程中更加精准地去噪,生成清晰的图片。
  • 公式9理解:
    • 假设制作一张带噪图片,每隔一段时间会在原图片上加一些噪声( 𝑔(𝑡) 作用)
    • 但每次加入噪声时,还会有一个平均变化趋势( 𝑓 ( 𝑥 , 𝑡 )),比如图片可能会逐渐变模糊或变清晰。
    • 整个过程由这个公式控制,描述了图像的变化规律

在这里插入图片描述

  • VE SDE因其方差随 t t t的增加而不断增大而得名,而VP SDE的方差是有界的[154]。
  • Anderson[7] 推导出一种逆转扩散过程的SDE,将其应用于方差爆炸SDE时,结果如下式子10
  • ∇ x l o g p ( x ; σ ( t ) ) ∇_x logp (x;σ(t)) xlogp(xσ(t)) 称为分数函数。这个分数函数通常是未知的,所以需要使用神经网络来近似。
  • 神经网络 D ( x ; σ ) D(x;σ) D(xσ)可以用来提取分数函数,因为 ∇ x l o g p ( x ; σ ( t ) ∇_xlog p(x;σ(t) xlogp(xσ(t) 打不出来看上面
  • 这种想法被称为去噪分数匹配[161]
  • 公式10理解:
    • 漂移项,用来逐步逼近清晰的图像。通过梯度∇𝑥操作,公式会朝着真实图像的概率分布 𝑝 ( 𝑥 ) 方向进行调整,逐步去除噪声
    • 扩散项,表示注入的随机噪声,但随着时间𝑡的变化,噪声的强度也会逐渐减小,直到完全去除噪声

2.2 Backbone Architectures(骨干架构)

在这里插入图片描述

  • 我们在2.1节中概述了扩散模型的数学基础。
  • 由于去噪预测网络通常由参数 θ θ θ参数化,我们将在下一节中讨论用几种神经网络结构来表示 θ θ θ
  • 所有这些网络架构都从相同的输入空间映射到相同的输出空间
  • Ho等人[68] 使用类似于未屏蔽的 PixelCNN++[144]U-Net骨干 来近似分数函数。
  • 这种U-Net 架构最初用于语义分割方法[30,31,113,140],它基于Wide ResNet[182],将带有噪声的图像和扩散时间步长t作为输入,将图像编码为低维表示,并输出该图像和噪声水平的噪声预测
  • U-Net由一个编码器和一个解码器组成,在块之间有剩余的连接,可以保留梯度流,并帮助恢复压缩表示中丢失的细粒度细节
    • 编码器一系列残差和自关注块组成,并将输入图像下采样到低维表示
    • 解码器反映了这种结构,逐渐对低维表示进行上采样以匹配输入维数
  • 扩散时间步t是通过在每个残差块中添加正弦位置嵌入来指定的[68],该位置嵌入缩放和移位输入特征,增强网络捕获时间依赖性的能力

在这里插入图片描述

  • DDMPs在像素空间中操作,使得它们的训练和推理在计算上非常昂贵。
  • Rombach等人[138] 通过提出 潜在扩散模型(LDMs) 来解决这个问题,该模型在预训练的变分自编码器的潜在空间中运行
  • 扩散过程应用于生成的表示而不是直接应用于图像,从而在不牺牲生成质量的情况下获得计算效益
  • 虽然作者引入了额外的交叉注意机制来允许更灵活的条件生成,但去噪网络骨干网仍然非常接近DDPM U-Net架构
  • 最近在视觉任务(如ViT)中使用变压器架构的进展[45] 导致了基于变压器的扩散模型架构的采用。
  • Peebles和Xie[132] 提出了扩散变压器(DiT),这是一种主要受ViTs启发的扩散模型主干架构,当与LDM框架结合使用时,它在ImageNet上展示了最先进的生成性能
    在这里插入图片描述
  • ViT之后,DiTs通过将输入图像转换成一系列补丁来工作,这些补丁被转换使用“patchify”层的令牌序列
  • 在向所有输入标记添加了ViT样式的位置嵌入之后,这些标记将通过一系列转换器块进行馈送。
  • 这些块相当于标准的ViT块,这些块接受附加的条件信息,如 扩散时间步长t和调节信号c 作为输入
  • 其结构的详细概述如图3
  • U-ViTs[12]U-NetViT骨干网合并成一个统一的骨干网。
  • U-ViTs在标记时间、条件和图像输入方面遵循变压器的设计方法,但另外在浅层和深层之间采用长跳过连接
  • 这些跳过连接为底层特征提供了捷径,从而稳定了去噪网络的训练[12]。
  • 利用 基于U-ViTs的骨干网的工作[13,72] 取得了与 基于U-Net CNN 的架构相当的结果,证明了它们作为其他去噪网络骨干网的可行替代方案的潜力

总结:

  • U-Net
    • 特点是使用编码器-解码器结构,通过残差连接帮助保持梯度流,从而保留图像中的细节信息。
    • Wide ResNet 被引入进去,使其在处理较复杂的噪声情况下表现得更好
    • 其核心设计思想就是编码器:将带噪声的图像 X t X_t Xt压缩到一个低维度;解码器:将低维度的图恢复成不带噪声的图片 X 0 X_0 X0
  • LDM
    • 常规DDPMs直接在像素空间操作,计算量比较大。在LDM中引入潜在空间的概念,模型在一个低纬度中间中进行扩散。这样极大的提升了计算效率
    • 打比方将 1024x1024 像素的图像先压缩到 128x128 的潜在表示中,然后在这个较小的空间进行噪声的去除和扩散操作,这样可以显著降低生成的计算量,而不影响最终生成的高分辨率图像质量
  • Transformer类型
    • ViT:一种基于 Transformer 的图像处理架构,最早用于图像分类任务。提升图像生成质量
    • DiT:基于ViT的扩散模型,通过将图像切块然后将这些序列输入 Transformer 模块,结合扩散时间步 t 和条件信号进行处理
      • 打比方,使用一张图片图片会首先被切分成若干小块(patch),每个小块被看作一个 token。然后这些 tokens 会被输入 Transformer 模型,Transformer 会根据图像的全局结构(而不仅仅是局部的)来进行建模和去噪。
    • U-ViT:结合U-Net和ViT, 既保留 U-Net 中强大的跨层连接机制,又利用了 ViT 对时序性信息的处理能力

在这里插入图片描述

图3所示。

  • 左图:U-Net架构的可视化示例[140]。由一个编码器和一个解码器组成,具有保留梯度流和低级输入细节的剩余连接。改编自[135]。
  • 右图:DiT架构的可视化示例。显示了高级体系结构,以及adaLN-Zero
    DiT块的分解。改编自皮布尔斯和谢[132]。

2.3 Diffusion Model Guidance(扩散模型指导)

在这里插入图片描述

  • 最近图像生成结果的改进在很大程度上是由改进的制导方法驱动的。
  • 通过传递用户定义的条件来控制生成的能力是生成模型的一个重要特性,而引导描述了模型内调节信号强度的调制
  • 条件反射信号可以具有广泛的模式,从类标签到文本嵌入到其他图像
  • 将空间条件反射信号传递给扩散模型的一种简单方法是将条件反射信号与去噪目标简单连接,然后通过去噪网络传递[12,75]
  • 另一种有效的方法是使用交叉注意机制,其中一个条件反射信号c被编码器预处理为中间投影E©,然后使用交叉注意注入去噪网络的中间层[76,142]
  • 后面内容主要讨论是如何通过不同的策略来控制生成结果的质量。
  • 通过这些方法能够控制最终生成的结果,使得最终的结果能够更加的多样性并且提升质量

Cross-Attention机制:

  • 一种更复杂的方法是通过 交叉注意力机制将条件信号引入模型。条件信号 c 可以先经过编码器处理成一个中间投影 E( c ),然后再通过交叉注意力机制注入到扩散网络的中间层。
  • 这种方式允许模型更灵活地处理条件信息,比如生成特定类别的图像。
  • 举例:
    • 在这种方法中,我们的条件信号(狗的类别)会先经过一个编码器处理,生成一个中间特征表示
    • 这些表示会通过交叉注意力机制,被注入到扩散模型的中间层,使模型能够更细致地处理条件信息。
    • 这种方式让模型能更精准地生成符合条件的图像

在这里插入图片描述

  • 这些条件反射方法本身并没有留下可能性去调节模型内调节信号的强度
  • 扩散模型指导是最近出现的一种更精确地权衡发生质量和多样性的方法
  • Dhariwal和Nichol[42] 使用分类器引导,这是一种利用预训练的噪声抑制分类器来提高样本质量的高效计算方法
  • 分类器引导是基于这样的观察,即预训练的扩散模型可以使用由 ϕ ϕ ϕ输出 p ϕ ( c ∣ x t , t ) p_ϕ(c|x_t, t) pϕ(cxt,t)参数化的分类器的梯度来调节
  • 该分类器 ∇ x t l o g p φ ( c ∣ x t , t ) ∇_{x_t} log pφ (c|x_t, t) xtlog(cxt,t)的对数似然梯度可以用来引导扩散过程生成属于类别标签y的图像。
  • p(x|c)的分数估计器可以写成式子11
  • 利用贝叶斯定理,可以将噪声预测网络改写为式子12
  • 其中参数 w w w调制调节信号的强度
  • 分类器指导是一种提高样本质量的通用方法,但它严重依赖于噪声鲁棒预训练分类器的可用性,这反过来又依赖于注释数据的可用性,而这在许多应用程序中是不可用的

Classifier Guidance(分类器引导):

  • 该方法通过预训练的噪声鲁棒分类器的梯度来指导生成过程,计算效率较高。
  • 分类器的梯度引导扩散过程生成特定类别的图像。例如,给定条件信号 y(比如“猫”这个标签),模型通过分类器的梯度 ∇ x t l o g p φ ( c ∣ x t , t ) ∇_{x_t} log pφ (c|x_t, t) xtlog(cxt,t)引导扩散过程,生成符合该类别的图像(符合猫的特点)
  • 通过贝叶斯公式,公式(11)和(12)展示了如何结合分类器的梯度和去噪网络的预测来估计噪声,从而生成特定类别的图像。
  • 举例:
    • 使用一个预先训练好的分类器,来告诉模型“这是一只狗”的信息。模型通过该分类器的梯度(也就是狗这个标签的概率梯度)来引导生成,确保生成的图片更符合“狗”这个类别。
    • 分类器可能会分析生成的图片,并给出该图片是狗的概率。如果概率太低,梯度会推动模型修改图片,增加生成狗的特征,直到模型输出符合我们希望的“狗”的样子。

在这里插入图片描述

  • 为了解决这一限制,无分类器指导(CFG)[67] 消除了对预训练分类器的需要。
  • CFG的工作原理是训练一个参数为 ϵ θ ( X t , t , ϕ ) ϵ_θ(X_t, t, ϕ) ϵθ(Xt,t,ϕ) 的无条件扩散模型和一个参数为 ϵ θ ( X t , t , c ) ϵ_θ(X_t, t,c) ϵθ(Xt,t,c) 的条件模型。
  • 对于无条件模型,使用一个空的输入令牌 ϕ ϕ ϕ作为条件信号 c c c
  • 网络通过随机剔除条件信号的方式进行训练。
  • 然后使用条件和无条件分数估计的加权组合进行抽样式子13
  • 这种采样方法不依赖于预训练分类器的梯度,但仍然需要一个带注释的数据集来训练条件去噪网络
  • 尽管最近使用扩散模型表示进行自监督引导的工作显示出希望,但完全无条件方法尚未与无分类器引导相匹配[73,100]
  • 这些方法不需要带注释的数据,允许使用更大的未标记数据集

Classifier-free Guidance(无分类器引导):

  • 是一种不用预训练分类器的方法,它直接训练一个同时处理条件和无条件扩散的模型
  • 在训练时,随机丢弃条件信号 c 以使模型同时学习如何在有条件和无条件下生成图像
  • 在采样过程中,条件和无条件的估计会按照权重 w 进行加权组合,见公式(13),这样就不需要预先训练好的分类器
  • 举例:
    • 训练模型的时候,随机丢弃狗这个标签,让模型同时学会生成有条件和无条件的图像。
    • 这样在生成时,我们可以直接通过控制模型内部的权重 w
    • 调整生成的图片更符合“狗”的特征,而不依赖于分类器的帮助
  • 表1显示了当前引导方法的要求。
  • 虽然分类器和无分类器指导可以改善生成结果,但它们需要带注释的训练数据。
  • 自我指导和在线指导是完全自我监督的替代方案,无需注释即可实现竞争性性能。
  • 分类器和无分类器引导是依赖于条件训练的受控生成方法。
  • 无训练方法通过结合 多个扩散过程[14] 或使用 与时间无关的能量函数[179] 来修改预训练模型的生成过程。
  • 其他控制生成方法采用变分视角[54,119,146,164],将控制生成视为源点优化问题[17]

在这里插入图片描述

  • 目标是找到一个最小化损失函数 L ( x ) L(x) L(x)的样本 x x x,并且可能在模型的分布 p p p
  • 优化表示为 m i n X 0 L ( x ) min_{X0} L(x) minX0L(x),其中 X 0 X_0 X0为源噪声点。
  • 对于条件采样,可以修改损失函数 L ( x ) L(x) L(x),生成属于特定类 y y y的样本

在这里插入图片描述

不同扩散模型引导方法的概述。自我指导[75]和[73]都不需要分类器和注释,在线指导有助于在线学习

3 METHODS (方法)

在这里插入图片描述

  • 在介绍了扩散模型的主要基础知识之后,我们将在下一节中概述一系列与扩散模型和表示学习相关的方法。
  • 在第3.1节中,我们描述和分类了当前的框架,利用预训练扩散模型学习到的表征进行下游识别任务
  • 在第3.2节中,我们描述了利用表征学习的进步来改进扩散模型本身的方法

3.1 Diffusion Models for Representation Learning(表示学习的扩散模型)

在这里插入图片描述

  • 学习有用的表示是设计VAEs[88,89]和GANs[22,84] 等架构的主要动机之一
  • 对比学习方法的目标是学习相似图像的表示非常接近的特征空间,反之亦然(例如SimCLR [34], MoCo[60]),这也导致了表征学习的重大进展。
  • 然而,这些对比方法并不是完全自我监督的,因为它们需要以保留图像原始内容的增强形式进行监督
  • 扩散模型为这些方法提供了一个有希望的替代方案
  • 虽然扩散模型主要是为生成任务设计的,但去噪过程鼓励学习语义图像表示[15],可用于下游识别任务
  • 扩散模型的学习过程类似于去噪自编码器(DAE)的学习过程[18,162],它们被训练用来重建被添加噪声损坏的图像
  • 主要区别在于扩散模型还将扩散时间步长 t t t作为输入,因此可以将其视为具有不同噪声尺度的多级DAEs[169]
  • 由于DAEs在压缩的潜在空间中学习有意义的表示,因此扩散模型表现出类似的表示学习能力是很直观的
  • 我们将在下一节中概述和讨论当前的方法

3.1.1 Leveraging intermediate activations(利用中间激活)

在这里插入图片描述
在这里插入图片描述

  • Baranchuk等人[15] 研究了 U-Net网络的中间激活 ,该网络近似于DDPMs中反向扩散过程的马尔可夫步长[42]
  • 他们表明,对于某些扩散时间步长,这些中间激活捕获可用于下游语义分割的语义信息。
  • 作者采用在LSUNHorse[177]和FFHQ-256[84]数据集上训练的噪声预测网络 ϵ θ ( X t , t ) ϵ_θ(X_t, t) ϵθ(Xt,t),提取由网络的18个解码器块之一产生的特征映射,用于标签高效的下游分割任务。
  • 选择理想的扩散时间步长和解码器块激活来提取是非常重要的。
  • 为了了解不同解码器块的像素级表示的有效性,作者训练了一个多层感知器(MLP) 来预测语义标签,根据不同解码器块在特定扩散步骤t上产生的特征
  • 来自预训练U-Net解码器的一组固定块B和更高扩散时间步长的表示使用双线性插值和连接将其上采样到图像大小
  • 然后使用获得的特征向量来训练独立的MLP集合,这些MLP预测每个像素的语义标签。最终的预测是通过多数投票获得的
  • 这种方法,称为DDPM-Seg,优于利用替代生成模型的基线,并获得与MAE竞争的分割结果[61],说明中间去噪网络激活包含语义图像特征。

在这里插入图片描述

  • Xiang等人[169]将这种方法扩展到CIFAR-10和TinyImageNet上的进一步架构和图像识别。
  • 他们研究了不同框架(DDPM和EDM[85])下不同主干(U-Net和DiT[132])提取的特征的判别效果。
  • 通过网格搜索评估特征质量和层噪声组合之间的关系,其中使用线性探测确定特征表示的质量。
  • 表现最好的特征位于上采样的中间,使用相对较小的噪声水平,这与DDPM-Seg[15] 得出的结论一致。
    在这里插入图片描述
  • CIFAR-10和Tiny-ImageNet[41] 上与HybViT[174]和SBGC[190]
  • 基于扩散的方法进行基准比较表明,基**于EDM的去噪扩散自编码器(DDAEs)**在生成和识别方面都优于之前基于监督和无监督扩散的方法,尤其是在微调之后
  • 对比学习方法的基准测试表明,考虑到模型大小,基于EDM的DDAESim-CLRs相当,并且在CIFAR-10和Tiny-ImageNet上优于具有可比参数的SimCLRs
  • ODISE[170]是一种相关的方法,它将文本-图像扩散模型与判别模型结合起来进行全视分割[90,91],这是一种将实例和语义分割统一到一个通用框架中的分割方法,用于全面的场景理解
  • ODISE提取预先训练的文本到图像扩散模型的内部特征
  • 这些特征被输入到在带注释的掩码上训练的掩码生成器中
  • 掩码分类模块通过将预测掩码的扩散特征与对象类别名称的文本嵌入相关联,将每个生成的二进制掩码分类到开放词汇类别中
    在这里插入图片描述
  • 作者使用稳定扩散U-Net DDPM骨干,通过计算单个前向通道和提取中间激活 f = U N e t ( X t , τ ( s ) , t ) f= UNet(X_t, τ (s), t) f=UNet(Xt,τ(s),t) 来提取特征
  • 其中τ (s)是利用预训练的文本编码器 τ τ τ获得的图像标题 s s s的编码表示
  • 有趣的是,作者使用t = 0获得了最好的结果,而以前的方法使用更高的扩散时间步长获得了更好的结果
  • 为了克服对可用图像标题的依赖,Xu等人[170] 另外训练一个基于MLP的隐式标题器,该标题器从图像本身计算隐式文本嵌入。
  • ODISE在开放词汇分割中建立了新的技术,是通过去噪扩散模型学习丰富语义表示的又一个例子

在这里插入图片描述

  • Mukhopadhyay等人[125] 也提出利用无条件ADM U-Net架构[42] 中的中间激活来进行ImageNet分类
  • 层和时间步选择的方法与以前的方法相似
  • 此外,还评估了不同大小对特征映射池的影响,并使用了几种不同的轻量级分类架构(包括线性、MLP、CNN和基于注意力的分类头
  • 发现特征质量对池化大小不敏感,并且主要依赖于时间步长和选择的块数
  • 他们的方法,我们称之为引导扩散分类(GDC),与其他统一模型,即BigBiGAN[44]和MAGE[99] 相比,具有竞争力。
  • 基于注意力的分类头在ImageNet-50上表现最好,但在细粒度视觉分类数据集上表现不佳,这表明它们依赖于大量可用数据。
    在这里插入图片描述
  • 在他们之前工作的延续中,Mukhopadhyay等人[126] 通过引入两种更细粒度的块和去噪时间步选择方法扩展了这种方法。
  • 第一个是DifFormer[126]
    • 这是一种注意机制,用基于注意的特征融合头取代了[125] 中的固定池化和线性分类头。
    • 该融合头旨在用可学习的池化机制取代GDC方法中使用的U-Net CNN生成矢量特征表示所需的固定平坦化和池化操作
  • 第二种机制是DifFeed[126]
    • 一种动态反馈机制,将特征提取过程解耦为两个正向通道
    • 在第一次向前传递中,只存储选定的解码器特征映射
    • 这些被馈送到辅助反馈网络,该网络学习将解码器特征映射到适合将它们添加到相应块的编码器块的特征空间
  • 在第二次前向传递中,将反馈特征添加到编码器特征中,并且在第二次前向传递特征之上使用DifFeed注意头。
  • 这些额外的改进进一步提高了学习表征的质量,提高了ImageNet和细粒度视觉分类性能

在这里插入图片描述

  • 先前描述的扩散表示学习方法侧重于分割和分类,这只是下游识别任务的一个子集
  • 对应任务是另一个子集,通常涉及识别和匹配不同图像之间的点或特征
  • 问题设置如下:
    • 考虑两个图像 I 1 I1 I1 I 2 I2 I2以及 I 1 中的像素位置 p 1 I1中的像素位置p1 I1中的像素位置p1
    • 对应任务包括在 I 2 中找到相应的像素位置 p 2 I2中找到相应的像素位置p2 I2中找到相应的像素位置p2

在这里插入图片描述

  • p1和p2之间的关系可以是语义的(包含相似语义的像素)、几何的(包含对象的不同视图的像素)或时间的(包含同一对象的像素随着时间的推移而变形)
  • DIFT (Diffusion Features)[157] 是一种利用预先训练的扩散模型表示来处理通信任务的方法。DIFT还依赖于扩散模型特征的提取
  • 与以前的方法类似,用于提取的扩散时间步长和网络层数是重要的考虑因素。
  • 作者在大扩散时间步长和早期网络层组合中观察到更多语义上有意义的特征,而在较小的扩散时间步长和较晚的去噪网络层中捕获较低级别的特征
  • DIFT在一系列通信任务中表现优于其他自监督和弱监督方法,特别是在语义通信方面表现出与最先进的方法相当的性能
    在这里插入图片描述
  • Zhang等人[183] 评估了学习到的扩散特征如何在多个图像之间相互关联,而不是专注于单个图像的下游任务。
  • 为了研究这一点,他们还使用了稳定扩散特征来进行语义对应。
  • 作者观察到,稳定扩散特征具有很强的空间布局感,但有时会提供不准确的语义匹配
  • DINOv2[128] 是一种使用知识蒸馏和视觉变换的自监督表示学习方法,它产生了更多的稀疏特征,提供了更准确的匹配
  • 因此,Zhang等人[183] 提出将这两个特征结合起来,并在结合的特征上使用最近邻搜索的零射击评估,从而在几个语义对应数据集(如SPair-71k和TSS)上实现最先进的性能

原文地址:https://blog.csdn.net/Mr_GYF/article/details/142911411

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!