论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(五)

news2025/1/31 20:30:49

Understanding Diffusion Models: A Unified Perspective(五)

  • 文章概括
  • 基于得分的生成模型(Score-based Generative Models)

文章概括

引用:

@article{luo2022understanding,
  title={Understanding diffusion models: A unified perspective},
  author={Luo, Calvin},
  journal={arXiv preprint arXiv:2208.11970},
  year={2022}
}
Luo, C., 2022. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970.

原文: https://arxiv.org/abs/2208.11970
代码、数据和视频:https://arxiv.org/abs/2208.11970


系列文章:
请在 《 《 文章 》 》 专栏中查找



基于得分的生成模型(Score-based Generative Models)

我们已经证明,可以通过优化神经网络 s θ ( x t , t ) s_\theta(x_t,t) sθ(xt,t)来预测得分函数 ∇ log ⁡ p ( x t ) \nabla \log p(x_t) logp(xt),从而学习一个变分扩散模型(VDM)。然而,在我们的推导中,得分项是通过应用Tweedie公式得出的;这并没有为我们提供关于得分函数的具体含义或为什么值得建模的深入直观理解。幸运的是,我们可以参考另一类生成模型,即基于得分的生成模型(Score-based Generative Models)[9, 10, 11],以获得这些直觉。事实证明,我们可以证明之前推导的VDM公式与基于得分的生成模型公式是等价的,这使我们能够在这两种解释之间灵活切换。

为了开始理解为什么优化得分函数是有意义的,我们可以绕道回顾一下基于能量的模型(Energy-based Models)[12, 13]。任意灵活的概率分布可以写成以下形式:

p θ ( x ) = 1 Z θ e − f θ ( x ) (152) p_{\theta}(x) = \frac{1}{Z_{\theta}} e^{-f_{\theta}(x)} \tag{152} pθ(x)=Zθ1efθ(x)(152)

其中, f θ ( x ) f_{\theta}(x) fθ(x)是一个可以任意灵活调整的参数化函数,称为能量函数,通常由神经网络建模,而 Z θ Z_{\theta} Zθ是一个归一化常数,用于确保 ∫ p θ ( x ) d x = 1 \int p_{\theta}(x)dx = 1 pθ(x)dx=1。一种学习这种分布的方法是最大似然估计(最大似然估计是什么?);然而,这需要对归一化常数 Z θ = ∫ e − f θ ( x ) d x Z_{\theta} = \int e^{-f_{\theta}(x)}dx Zθ=efθ(x)dx进行可计算的求解,但对于复杂的 f θ ( x ) f_{\theta}(x) fθ(x)函数来说,这可能无法实现。

一种避免计算或建模归一化常数的方法是使用一个神经网络 s θ ( x ) s_{\theta}(x) sθ(x)来学习分布 p ( x ) p(x) p(x)的得分函数 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x)。这一方法的动机来自以下观察:对方程(152)两边的对数取导数,可得:

∇ x log ⁡ p θ ( x ) = ∇ x log ⁡ ( 1 Z θ e − f θ ( x ) ) (153) = ∇ x log ⁡ 1 Z θ + ∇ x log ⁡ e − f θ ( x ) (154) = − ∇ x f θ ( x ) (155) ≈ s θ ( x ) (156) \begin{aligned} \nabla_x \log p_{\theta}(x) &= \nabla_x \log \left( \frac{1}{Z_{\theta}} e^{-f_{\theta}(x)} \right) \quad &\text{(153)} \\ &= \nabla_x \log \frac{1}{Z_{\theta}} + \nabla_x \log e^{-f_{\theta}(x)} \quad &\text{(154)} \\ &= -\nabla_x f_{\theta}(x) \quad &\text{(155)} \\ &\approx s_{\theta}(x) \quad &\text{(156)} \end{aligned} xlogpθ(x)=xlog(Zθ1efθ(x))=xlogZθ1+xlogefθ(x)=xfθ(x)sθ(x)(153)(154)(155)(156)

这可以自由地表示为一个神经网络,而无需涉及任何归一化常数。通过最小化与真实得分函数的Fisher散度,可以优化得分模型:

E p ( x ) [ ∥ s θ ( x ) − ∇ log ⁡ p ( x ) ∥ 2 2 ] (157) \mathbb{E}_{p(x)} \left[ \| s_{\theta}(x) - \nabla \log p(x) \|_2^2 \right] \tag{157} Ep(x)[sθ(x)logp(x)22](157)

得分函数表示什么?对于每一个 x x x,对其对数似然关于 x x x的梯度,实质上描述了在数据空间中需要朝哪个方向移动以进一步增加其似然值。

直观地说,得分函数定义了数据 x x x所在整个空间的一个向量场,指向数据分布的模式(modes)。在图6的右图中对此进行了直观展示。通过学习真实数据分布的得分函数,我们可以通过从同一空间中的任意点开始,反复跟随得分函数指引的方向,直到达到一个模式来生成样本。此采样过程被称为朗之万动力学(Langevin dynamics),其数学描述如下:

x i + 1 ← x i + c ∇ log ⁡ p ( x i ) + 2 c ϵ , i = 0 , 1 , … , K (158) x_{i+1} \leftarrow x_i + c \nabla \log p(x_i) + \sqrt{2c} \epsilon, \quad i = 0, 1, \ldots, K \tag{158} xi+1xi+clogp(xi)+2c ϵ,i=0,1,,K(158)

其中, x 0 x_0 x0是从一个先验分布(例如均匀分布)中随机采样得到的,而 ϵ ∼ N ( ϵ ; 0 , I ) \epsilon \sim \mathcal{N}(\epsilon; 0, I) ϵN(ϵ;0,I)是一个额外的噪声项,用于确保生成的样本不会总是收敛到某个模式上,而是围绕模式徘徊,以增加多样性。此外,由于学习到的评分函数是确定性的,加入噪声项进行采样为生成过程增加了随机性,这可以避免确定性轨迹的问题,特别是在采样从位于多个模式之间的位置开始时。图6中展示了Langevin动力学采样以及噪声项带来的好处的直观描述。


在这里插入图片描述图6:使用Langevin动力学生成的三个随机采样轨迹的可视化,所有轨迹均从同一个初始化点开始,针对一个高斯混合分布进行采样。左图展示了这些采样轨迹在三维等高线图上的分布,而右图则将采样轨迹与真实评分函数进行对比。从相同的初始化点出发,由于Langevin动力学采样过程中引入的随机噪声项,我们能够从不同的模式生成样本;如果没有噪声项,从固定点采样的每次试验都会确定性地沿着评分收敛到相同的模式。


1. 什么是得分函数?

1.1 定义 得分函数定义为概率密度分布 p ( x ) p(x) p(x) 的对数梯度: ∇ x log ⁡ p ( x ) . \nabla_x \log p(x). xlogp(x).

  • 它描述了在数据空间中,如何朝着使概率密度 p ( x ) p(x) p(x) 最大的方向移动。
  • 得分函数实际上是一个向量场,在每个点 x x x 指向分布 p ( x ) p(x) p(x) 增大的方向。

1.2 直观意义

  • 如果把 log ⁡ p ( x ) \log p(x) logp(x) 看作山脉的高度,那么得分函数是山脉的斜率,指向 “爬坡” 的方向。
  • 在图 6 的右图中,得分函数形成了一个向量场,箭头表示每个点的梯度方向。

2. 归一化常数和得分函数

2.1 概率密度的形式 一个概率分布通常可以写成: p θ ( x ) = 1 Z θ e − f θ ( x ) . p_\theta(x) = \frac{1}{Z_\theta} e^{-f_\theta(x)}. pθ(x)=Zθ1efθ(x). 这里:

  • Z θ = ∫ e − f θ ( x ) d x Z_\theta = \int e^{-f_\theta(x)} dx Zθ=efθ(x)dx 是归一化常数,确保 p θ ( x ) p_\theta(x) pθ(x) 满足积分为 1 的条件。
  • f θ ( x ) f_\theta(x) fθ(x) 是未归一化的负对数密度。

2.2 归一化常数的难点

  • 在高维数据中,直接计算 Z θ Z_\theta Zθ 是非常困难的,因为积分 ∫ e − f θ ( x ) d x \int e^{-f_\theta(x)} dx efθ(x)dx 通常无法解析。
  • 为了避免直接计算 Z θ Z_\theta Zθ,我们可以转而学习得分函数 ∇ x log ⁡ p θ ( x ) \nabla_x \log p_\theta(x) xlogpθ(x),因为它不依赖于 Z θ Z_\theta Zθ

2.3 得分函数公式的推导 p θ ( x ) = 1 Z θ e − f θ ( x ) p_\theta(x) = \frac{1}{Z_\theta} e^{-f_\theta(x)} pθ(x)=Zθ1efθ(x) 出发,对其取对数: log ⁡ p θ ( x ) = − f θ ( x ) − log ⁡ Z θ . (153) \log p_\theta(x) = -f_\theta(x) - \log Z_\theta. \tag{153} logpθ(x)=fθ(x)logZθ.(153)

x x x 求梯度: ∇ x log ⁡ p θ ( x ) = ∇ x ( − f θ ( x ) − log ⁡ Z θ ) . \nabla_x \log p_\theta(x) = \nabla_x \left( -f_\theta(x) - \log Z_\theta \right). xlogpθ(x)=x(fθ(x)logZθ).

注意到:

  • log ⁡ Z θ \log Z_\theta logZθ 是一个常数,与 x x x 无关,因此其梯度为 0。
  • 只剩下 − ∇ x f θ ( x ) -\nabla_x f_\theta(x) xfθ(x)

于是: ∇ x log ⁡ p θ ( x ) = − ∇ x f θ ( x ) . (155) \nabla_x \log p_\theta(x) = -\nabla_x f_\theta(x). \tag{155} xlogpθ(x)=xfθ(x).(155)

通过神经网络 s θ ( x ) s_\theta(x) sθ(x) 来近似 − ∇ x f θ ( x ) -\nabla_x f_\theta(x) xfθ(x),因此: ∇ x log ⁡ p θ ( x ) ≈ s θ ( x ) . (156) \nabla_x \log p_\theta(x) \approx s_\theta(x). \tag{156} xlogpθ(x)sθ(x).(156)


3. 优化目标

3.1 如何优化得分函数? 学习得分函数的目标是让模型 s θ ( x ) s_\theta(x) sθ(x) 接近真实得分函数 ∇ x log ⁡ p ( x ) \nabla_x \log p(x) xlogp(x)。我们通过以下损失函数来实现: E p ( x ) [ ∥ s θ ( x ) − ∇ x log ⁡ p ( x ) ∥ 2 2 ] . (157) \mathbb{E}_{p(x)} \left[ \| s_\theta(x) - \nabla_x \log p(x) \|_2^2 \right]. \tag{157} Ep(x)[sθ(x)xlogp(x)22].(157)

3.2 直观理解

  • 我们希望神经网络 s θ ( x ) s_\theta(x) sθ(x) 的输出与真实分布 p ( x ) p(x) p(x) 的得分函数 ∇ x log ⁡ p ( x ) \nabla_x \log p(x) xlogp(x) 尽可能一致。
  • 这一损失函数被称为 Fisher 散度,是得分匹配方法的核心。

4. Langevin 动力学采样

4.1 什么是 Langevin 动力学? Langevin 动力学是一种通过得分函数进行采样的算法。它的核心思想是:从一个随机点出发,沿着得分函数的方向逐步逼近数据分布的模式(modes)。其迭代公式为:
x i + 1 ← x i + c ∇ x log ⁡ p ( x i ) + 2 c ϵ , ϵ ∼ N ( 0 , I ) . (158) x_{i+1} \leftarrow x_i + c \nabla_x \log p(x_i) + \sqrt{2c} \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I}). \tag{158} xi+1xi+cxlogp(xi)+2c ϵ,ϵN(0,I).(158)

4.2 每一项的意义

  • x i + 1 x_{i+1} xi+1:下一步的采样点。
  • x i x_i xi:当前采样点。
  • c ∇ x log ⁡ p ( x i ) c \nabla_x \log p(x_i) cxlogp(xi):沿得分函数方向的梯度更新,使得样本更靠近数据分布的高密度区域。
  • 2 c ϵ \sqrt{2c} \epsilon 2c ϵ:加入随机噪声,增加样本多样性,避免所有样本收敛到同一个模式。

4.3 Langevin 动力学的效果 在图 6 中:

  • 左图展示了多个采样轨迹如何逐步逼近高斯混合分布的高密度区域。
  • 右图展示了得分函数形成的向量场,表明 Langevin 动力学的梯度更新方向。

5. Langevin 动力学的意义

5.1 采样过程 通过 Langevin 动力学,我们可以从随机初始点(例如均匀分布或标准高斯分布)生成样本,这些样本最终将逼近数据分布 p ( x ) p(x) p(x)

5.2 噪声的作用 噪声项 2 c ϵ \sqrt{2c} \epsilon 2c ϵ 的引入是为了:

  1. 避免采样陷入某个模式,保证生成样本的多样性。
  2. 在分布中探索不同的高密度区域。

6. 示例:从二维高斯混合分布采样

  1. 假设数据分布是一个二维高斯混合分布,有两个主要模式。
  2. 初始点 x 0 x_0 x0 从均匀分布中随机采样。
  3. 使用 Langevin 动力学公式迭代:
    • 计算得分函数 ∇ x log ⁡ p ( x i ) \nabla_x \log p(x_i) xlogp(xi),指示向高密度区域移动的方向。
    • 加入噪声项 2 c ϵ \sqrt{2c} \epsilon 2c ϵ,避免收敛到固定点。
  4. 最终,生成的样本分布将匹配数据的高斯混合分布。

总结

  1. 得分函数:描述如何在数据空间中移动以增加概率密度。
  2. 神经网络学习得分函数:避免直接计算归一化常数。
  3. Langevin 动力学:通过得分函数采样,从随机点生成符合数据分布的样本。
  4. 噪声的作用:增加多样性,避免收敛到单一模式。

请注意,公式(157)中的目标依赖于真实的评分函数,而对于建模自然图像等复杂分布,我们无法获得该函数。幸运的是,已经衍生出一些被称为评分匹配的替代技术(如文献[14, 15, 16, 17]),它们无需知道真实评分即可最小化Fisher散度,并能够通过随机梯度下降进行优化。

总体而言,将分布表示为评分函数并通过马尔可夫链蒙特卡洛技术(例如Langevin动力学)使用它来生成样本的过程被称为基于评分的生成建模(Score-based Generative Modeling)[9, 10, 11]。

  1. 公式 (157) 的目标和问题
  2. 评分匹配(Score Matching)的定义和动机
  3. 评分匹配方法如何解决 Fisher 散度问题
  4. 基于评分的生成建模(Score-based Generative Modeling)的关键概念

1. 公式 (157):目标与问题

公式 (157) 是 Fisher 散度的定义,用于最小化模型得分函数与真实得分函数的差异: E p ( x ) [ ∥ s θ ( x ) − ∇ log ⁡ p ( x ) ∥ 2 2 ] . \mathbb{E}_{p(x)} \left[ \| s_\theta(x) - \nabla \log p(x) \|_2^2 \right]. Ep(x)[sθ(x)logp(x)22].

  • 目标:让模型得分函数 s θ ( x ) s_\theta(x) sθ(x) 接近真实得分函数 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x)
  • 真实得分函数的难点:在建模复杂分布(如自然图像)时,无法直接获得真实分布 p ( x ) p(x) p(x) 或其得分函数 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x)
    • 原因:真实数据分布可能未知,或者处于复杂的低维流形上。

2. 评分匹配(Score Matching)逐步加噪评分匹配

2.1 定义
评分匹配(Score Matching)是一种无需直接访问 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x) 的方法,用于最小化 Fisher 散度。通过数学技巧,Fisher 散度可以被重新表达为一个可计算的目标函数,从而绕过对真实得分函数的依赖。

2.2 推导 Fisher 散度的可计算形式

目标函数: E p ( x ) [ ∥ s θ ( x ) − ∇ log ⁡ p ( x ) ∥ 2 2 ] . \mathbb{E}_{p(x)} \left[ \| s_\theta(x) - \nabla \log p(x) \|_2^2 \right]. Ep(x)[sθ(x)logp(x)22]. 展开平方: E p ( x ) [ ∥ s θ ( x ) ∥ 2 2 ] − 2 E p ( x ) [ s θ ( x ) T ∇ log ⁡ p ( x ) ] + E p ( x ) [ ∥ ∇ log ⁡ p ( x ) ∥ 2 2 ] . \mathbb{E}_{p(x)} \left[ \| s_\theta(x) \|_2^2 \right] - 2 \mathbb{E}_{p(x)} \left[ s_\theta(x)^T \nabla \log p(x) \right] + \mathbb{E}_{p(x)} \left[ \| \nabla \log p(x) \|_2^2 \right]. Ep(x)[sθ(x)22]2Ep(x)[sθ(x)Tlogp(x)]+Ep(x)[∥∇logp(x)22].

关键点:

  • 第三项 E p ( x ) [ ∥ ∇ log ⁡ p ( x ) ∥ 2 2 ] \mathbb{E}_{p(x)} \left[ \| \nabla \log p(x) \|_2^2 \right] Ep(x)[∥∇logp(x)22] 是一个常数,与 θ \theta θ 无关。
  • 第二项 E p ( x ) [ s θ ( x ) T ∇ log ⁡ p ( x ) ] \mathbb{E}_{p(x)} \left[ s_\theta(x)^T \nabla \log p(x) \right] Ep(x)[sθ(x)Tlogp(x)] 是核心,需要通过积分技巧消除对 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x) 的显式依赖。

2.3 无需真实评分的技术
在文献 [14, 15, 16, 17] 中,研究者提出了以下两种方法来优化 Fisher 散度:

  1. 直接评分匹配 将目标函数通过积分分部法(Integration by Parts)重写,消除对 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x) 的依赖。

    • 假设数据分布 p ( x ) p(x) p(x) 的支持域是全空间,且 p ( x ) p(x) p(x) 在边界上迅速衰减为零。
    • 将期望项重写为:
      E p ( x ) [ s θ ( x ) T ∇ log ⁡ p ( x ) ] = − E p ( x ) [ div   s θ ( x ) ] , \mathbb{E}_{p(x)} \left[ s_\theta(x)^T \nabla \log p(x) \right] = -\mathbb{E}_{p(x)} \left[ \text{div} \, s_\theta(x) \right], Ep(x)[sθ(x)Tlogp(x)]=Ep(x)[divsθ(x)],
      其中 div   s θ ( x ) \text{div} \, s_\theta(x) divsθ(x) 表示得分函数的散度。
    • 替换后:
      E p ( x ) [ ∥ s θ ( x ) − ∇ log ⁡ p ( x ) ∥ 2 2 ] ∝ E p ( x ) [ ∥ s θ ( x ) ∥ 2 2 + 2 div   s θ ( x ) ] . \mathbb{E}_{p(x)} \left[ \| s_\theta(x) - \nabla \log p(x) \|_2^2 \right] \propto \mathbb{E}_{p(x)} \left[ \| s_\theta(x) \|_2^2 + 2 \text{div} \, s_\theta(x) \right]. Ep(x)[sθ(x)logp(x)22]Ep(x)[sθ(x)22+2divsθ(x)].
  2. 逐步加噪评分匹配 为数据添加逐步递增的高斯噪声,并训练得分函数 s θ ( x , t ) s_\theta(x, t) sθ(x,t)

    • 噪声扰动后的分布:
      p σ t ( x t ) = ∫ p ( x ) N ( x t ; x , σ t 2 I ) d x . p_{\sigma_t}(x_t) = \int p(x) \mathcal{N}(x_t; x, \sigma_t^2 I) dx. pσt(xt)=p(x)N(xt;x,σt2I)dx.
    • 学习目标:
      arg ⁡ min ⁡ θ ∑ t = 1 T λ ( t ) E p σ t ( x t ) [ ∥ s θ ( x , t ) − ∇ log ⁡ p σ t ( x t ) ∥ 2 2 ] . \arg\min_\theta \sum_{t=1}^T \lambda(t) \mathbb{E}_{p_{\sigma_t}(x_t)} \left[ \| s_\theta(x, t) - \nabla \log p_{\sigma_t}(x_t) \|_2^2 \right]. argθmint=1Tλ(t)Epσt(xt)[sθ(x,t)logpσt(xt)22].
    • 优点:通过逐步加噪扩大分布覆盖范围,使得低密度区域的训练信号变得更加丰富。

3. 基于评分的生成建模

3.1 定义 将数据分布 p ( x ) p(x) p(x) 表示为得分函数 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x),并通过马尔可夫链蒙特卡洛(MCMC)技术(如 Langevin 动力学)采样,生成符合数据分布的样本。

3.2 Langevin 动力学 采样公式: x i + 1 = x i + c ∇ log ⁡ p ( x i ) + 2 c ϵ , x_{i+1} = x_i + c \nabla \log p(x_i) + \sqrt{2c} \epsilon, xi+1=xi+clogp(xi)+2c ϵ,

  • c c c:步长。
  • ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ϵN(0,I):随机噪声。

3.3 逐步退火 Langevin 动力学 为了解决原始评分匹配的低效问题,引入逐步加噪的退火 Langevin 动力学:

  1. 初始化:从一个简单的先验分布(如高斯分布)采样初始点 x 0 x_0 x0
  2. 逐步采样:依次降低噪声水平 σ t \sigma_t σt,并在每一步运行 Langevin 动力学。
  3. 最终样本收敛到真实分布 p ( x ) p(x) p(x)

4. 与变分扩散模型的联系

4.1 训练目标的相似性 逐步加噪评分匹配的目标(公式 161)与变分扩散模型(VDM)的训练目标几乎一致:

  • 都是同时学习多个噪声水平下的得分函数。
  • 通过加噪扩展分布的支持域。

4.2 无限时间步的推广 当时间步数 T → ∞ T \to \infty T 时:

  • 逐步加噪过程可以被视为一个连续的随机过程。
  • 对应于一个随机微分方程(SDE):
    • 正向 SDE:描述从数据分布逐步加噪的过程。
    • 逆向 SDE:描述从高斯噪声分布逐步采样生成数据的过程。

5. 示例:二维高斯分布的评分匹配

假设数据分布是一个二维高斯分布: p ( x ) = N ( x ; μ , Σ ) . p(x) = \mathcal{N}(x; \mu, \Sigma). p(x)=N(x;μ,Σ).

5.1 真实得分函数 得分函数为: ∇ log ⁡ p ( x ) = − Σ − 1 ( x − μ ) . \nabla \log p(x) = -\Sigma^{-1}(x - \mu). logp(x)=Σ1(xμ).

5.2 模型得分函数 假设模型的得分函数为 s θ ( x ) = − x + ϵ θ ( x ) s_\theta(x) = -x + \epsilon_\theta(x) sθ(x)=x+ϵθ(x),其中 ϵ θ ( x ) \epsilon_\theta(x) ϵθ(x) 是神经网络的误差项。

5.3 训练目标 Fisher 散度: E p ( x ) [ ∥ s θ ( x ) − ∇ log ⁡ p ( x ) ∥ 2 2 ] = E p ( x ) [ ∥ ϵ θ ( x ) ∥ 2 2 ] . \mathbb{E}_{p(x)} \left[ \| s_\theta(x) - \nabla \log p(x) \|_2^2 \right] = \mathbb{E}_{p(x)} \left[ \| \epsilon_\theta(x) \|_2^2 \right]. Ep(x)[sθ(x)logp(x)22]=Ep(x)[ϵθ(x)22].

通过最小化 ϵ θ ( x ) \epsilon_\theta(x) ϵθ(x) 的期望平方,可以优化得分函数。


总结

  1. 公式 (157) 的问题:依赖于真实得分函数 ∇ log ⁡ p ( x ) \nabla \log p(x) logp(x),但真实分布未知。
  2. 评分匹配方法:通过积分技巧和逐步加噪,绕过了对真实得分函数的显式依赖。
  3. 基于评分的生成建模:利用学习到的得分函数进行采样,生成符合数据分布的样本。
  4. 与扩散模型的联系:两者在训练目标和采样过程中密切相关。

然而,正如Song和Ermon在文献[9]中详细说明的,原始评分匹配存在三个主要问题。首先,当 x x x位于高维空间中的低维流形上时,评分函数定义不明确。从数学上可以看出,这种情况下,低维流形以外的所有点的概率为零,其对数是未定义的。这在试图学习自然图像生成模型时尤为不便,因为自然图像已知位于整个环境空间的低维流形上。

其次,通过原始评分匹配训练的评分函数在低密度区域不够准确。从我们在公式(157)中最小化的目标中可以看出这一点。由于它是 p ( x ) p(x) p(x)上的期望,并且明确地在其样本上训练,模型对于很少见或未见过的样本无法获得准确的学习信号。这是一个问题,因为我们的采样策略涉及从高维空间中的随机位置(最有可能是随机噪声)开始,并根据学习到的评分函数进行移动。由于我们依赖的是噪声或不准确的评分估计,最终生成的样本可能也会表现不佳,或者需要更多迭代才能收敛到准确的输出。

最后,即使Langevin动力学采样使用的是真实评分,其采样过程也可能无法混合。假设真实数据分布是两个不相交分布的混合体:

p ( x ) = c 1 p 1 ( x ) + c 2 p 2 ( x ) (159) p(x)=c_1p_1(x)+c_2p_2(x) \tag{159} p(x)=c1p1(x)+c2p2(x)(159)

然后,当计算分数时,这些混合系数会丢失,因为对数操作将系数与分布分离,而梯度操作会将其清零。为了形象化这一点,请注意右图6中显示的真实分数函数无法区分三个分布之间的不同权重;从图示的初始化点进行Langevin动力学采样时,抵达每个模式的概率大致相等,尽管在实际的高斯混合分布中,右下角的模式权重更高。

事实证明,这三个缺点可以通过向数据添加多个层级的高斯噪声同时解决。首先,由于高斯噪声分布的支持范围是整个空间,因此被扰动的数据样本不再局限于低维流形。其次,添加大幅度的高斯噪声会增加数据分布中每个模式覆盖的区域,从而在低密度区域提供更多的训练信号。最后,添加具有递增方差的多层级高斯噪声将导致尊重真实混合系数的中间分布。

正式地,我们可以选择一个正的噪声水平序列 { σ t } t = 1 T \{\sigma_t\}_{t=1}^T {σt}t=1T,并定义一系列逐步扰动的数据分布:

p σ t ( x t ) = ∫ p ( x ) N ( x t ; x , σ t 2 I ) d x (160) p_{\sigma_t}(x_t) = \int p(x)\mathcal{N}(x_t;x,\sigma_t^2I)dx \tag{160} pσt(xt)=p(x)N(xt;x,σt2I)dx(160)

然后,通过使用得分匹配(score matching)训练一个神经网络 s θ ( x , t ) s_\theta(x,t) sθ(x,t),以同时学习所有噪声水平的得分函数:

arg ⁡ min ⁡ θ ∑ t = 1 T λ ( t ) E p σ t ( x t ) [ ∥ s θ ( x , t ) − ∇ log ⁡ p σ t ( x t ) ∥ 2 2 ] (161) \arg\min_{\theta} \sum_{t=1}^{T} \lambda(t) \mathbb{E}_{p_{\sigma_t}(x_t)} \left[ \left\| s_\theta(x, t) - \nabla \log p_{\sigma_t}(x_t) \right\|_2^2 \right] \tag{161} argθmint=1Tλ(t)Epσt(xt)[sθ(x,t)logpσt(xt)22](161)

其中, λ ( t ) \lambda(t) λ(t)是一个依赖于噪声水平 t t t的正权重函数。需要注意的是,该目标函数与在公式148中为训练变分扩散模型推导出的目标几乎完全一致。此外,作者提出了退火Langevin动力学采样作为一种生成程序,其中通过依次对 t = T , T − 1 , … , 2 , 1 t=T,T-1,\ldots,2,1 t=T,T1,,2,1运行Langevin动力学来生成样本。初始化选择某个固定的先验分布(如均匀分布),而每个后续的采样步骤都从前一次模拟的最终样本开始。由于噪声水平随着时间步 t t t逐渐减小,同时步长也随时间减少,样本最终会收敛到一个真实的模式。这与变分扩散模型的马尔科夫HVAE解释中所执行的采样过程直接类似,在该过程中,一个随机初始化的数据向量通过降低噪声水平被逐步优化。

因此,我们已经在训练目标和采样程序中明确建立了变分扩散模型与基于分数的生成模型之间的联系。

一个问题是如何将扩散模型自然地推广到无限数量的时间步。在马尔科夫HVAE视角下,这可以被解释为将层级数量扩展到无穷,即 T → ∞ T \to \infty T。从等价的基于分数的生成模型的视角来看,这一点更加清晰;在无限数量的噪声尺度下,图像在连续时间上的扰动可以表示为一个随机过程,因此可以用随机微分方程(SDE)(什么是随机微分方程(SDE))来描述。采样则通过逆向SDE进行,这自然需要估计每个连续值噪声水平下的分数函数[10]。SDE的不同参数化本质上描述了不同的时间扰动方案,从而能够灵活地对加噪过程进行建模[6]。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2288049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThinkPHP 8模型与数据的插入、更新、删除

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

项目升级Sass版本或升级Element Plus版本遇到的问题

项目升级Sass版本或升级Element Plus版本遇到的问题 如果项目有需求需要用到高版本的Element Plus组件,则需要升级相对应的sass版本,Element 文档中有提示,2.8.5及以后得版本,sass最低支持的版本为1.79.0,所升级sass、…

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID : TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的,范围是 0 to 0xFFFE,0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级,ID越大&#…

Three.js 后期处理(Post-Processing)详解

目录 前言 一、什么是后期处理? 二、Three.js 后期处理的工作流程 2.1 创建 EffectComposer 2.2 添加渲染通道(Render Pass) 2.3 应用最终渲染 三、后期处理实现示例 3.1 基础代码 四、常见的后期处理效果 4.1 辉光效果&#xf…

HTML特殊符号的使用示例

目录 一、基本特殊符号的使用 1、空格符号: 2、小于号 和 大于号: 3、引号: 二、版权、注册商标符号的使用 1、版权符号:© 2、注册商标符号: 三、数学符号的使用 四、箭头符号的使用 五、货币符号的使用…

JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 038 ,文末自助获取源码 \color{red}{T038,文末自助获取源码} T038,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

快速分析LabVIEW主要特征进行判断

在LabVIEW中,快速分析程序特征进行判断是提升开发效率和减少调试时间的重要技巧。本文将介绍如何高效地识别和分析程序的关键特征,从而帮助开发者在编写和优化程序时做出及时的判断,避免不必要的错误。 ​ 数据流和并行性分析 LabVIEW的图形…

UE学习日志#15 C++笔记#1 基础复习

1.C20的import 看看梦开始的地方&#xff1a; import <iostream>;int main() {std::cout << "Hello World!\n"; } 经过不仔细观察发现梦开始的好像不太一样&#xff0c;这个import是C20的模块特性 如果是在VS里编写的话&#xff0c;要用这个功能需要新…

Deep Seek R1本地化部署

目录 说明 一、下载ollama 二、在ollama官网下载模型 三、使用 后记 说明 操作系统&#xff1a;win10 使用工具&#xff1a;ollama 一、下载ollama 从官网下载ollama&#xff1a; ollama默认安装在C盘&#xff0c;具体位置为C:\Users\用户名\AppData\Local\Programs\O…

C# Winform制作一个登录系统

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 登录 {p…

动态规划DP 最长上升子序列模型 总览

最长上升子序列模型 1. 最长上升子序列 1.1 怪盗基德的滑翔伞 1.1.1 登山 1.1.2 合唱队形 1.2 友好城市 1.3 最长上升子序列和 1.4 导弹拦截

怎样在PPT中启用演讲者视图功能?

怎样在PPT中启用演讲者视图功能&#xff1f; 如果你曾经参加过重要的会议或者演讲&#xff0c;你就会知道&#xff0c;演讲者视图&#xff08;Presenter View&#xff09;对PPT展示至关重要。它不仅能帮助演讲者更好地掌控演讲节奏&#xff0c;还能提供额外的提示和支持&#…

论文阅读(七):贝叶斯因果表型网络解释遗传变异和生物学知识

1.论文链接&#xff1a;Bayesian Causal Phenotype Network Incorporating Genetic Variation and Biological Knowledge 摘要&#xff1a; 在分离群体中&#xff0c;数量性状基因座&#xff08;QTL&#xff09;定位可以确定对表型有因果效应的QTL。这些方法的一个共同特点是Q…

1.27补题 回训练营

E 智乃的小球 题目描述 在一条无限长的水平直线上&#xff0c;有 n 个小球&#xff0c;每个小球的质量相同&#xff0c;体积可以忽略不计。这些小球初始时位于直线上的不同位置&#xff0c;并且每个小球有一个初始速度&#xff0c;速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示…

INCOSE需求编写指南-附录 B: 首字母缩略词和缩写

附录 Appendix B: 首字母缩略词和缩写ACRONYMS AND ABBREVIATIONS AD 难易程度的进阶 Advancement Degree of Difficulty AI 人工智能 Artificial Intelligence CM 配置管理 Configuration Management ConOps 运作理念 Concept of Operations COTS 商业现货 Comme…

B站吴恩达机器学习笔记

机器学习视频地址&#xff1a; 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 损失函数学习地址&#xff1a; 损失函数选择 选凸函数的话&#xff0c;会收敛到全局最小值。证明凸函数用Hessian矩阵。凸函数定义&#xff1a;两点连线比线上所有点都大。 batch理解&#xff1…

Vscode编辑器下 Markdown无法显示图片

1.问题 在vscode 编辑器中无法预览 markdon 文件中的图片 2.解决方案 大部分出现这种情况是因为新版本的vscode会阻拦有风险的资源显示&#xff0c;将安全等级调低即可。 方式一&#xff1a; 1.打开任意 MD 文件&#xff0c;ctrl&#xff0c;调出设置 2. 输入 markdown.ch…

mysql重学(一)mysql语句执行流程

思考 一条查询语句如何执行&#xff1f;mysql语句中若列不存在&#xff0c;则在哪个阶段报错一条更新语句如何执行&#xff1f;redolog和binlog的区别&#xff1f;为什么要引入WAL什么是Changbuf&#xff1f;如何工作写缓冲一定好吗&#xff1f;什么情况会引发刷脏页删除语句会…

国产650V碳化硅MOSFET在通信电源应用中全面取代超结MOSFET

在通信电源应用中&#xff0c;国产650V碳化硅&#xff08;SiC&#xff09;MOSFET全面取代超结MOSFET&#xff08;如硅基CoolMOS&#xff09;&#xff0c;是技术迭代、政策推动、市场需求和国产产业链成熟共同作用的结果。倾佳电子杨茜从以下多个维度解析这一趋势&#xff1a; 倾…

【ComfyUI专栏】通过软件获取PNG图片中的工作流信息

自从AI生成图片技术发展之后,你会发现很有意思的情况就是所有的图片中开始包含利用AI生成的工作流。有的时候你直接将图片拖到ComfyUI来获取图片中的工作流。下面的图片中的信息很意外的没有包含工作流,但那时我们可以看到的Parameters里面包含了设置之外,也有工作流节点内容…