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

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]。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TOGAF之架构标准规范-信息系统架构 | 数据架构

TOGAF是工业级的企业架构标准规范,信息系统架构阶段是由数据架构阶段以及应用架构阶段构成,本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示,信息系统架构(Information Systems Architectures)在TOGAF标准规…

自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

代码1实现逻辑回归并保存模型 import torch import numpy as np import torch.nn as nn from torch.utils.data import DataLoader, TensorDatasetdata [[-0.5, 7.7], [1.8, 98.5], [0.9, 57.8], [0.4, 39.2], [-1.4, -15.7], [-1.4, -37.3], [-1.8, -49.1], [1.5, 75.6],[0.…

基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪,使用光强和温度作为影响因素,电压作为输出进行建模。…

【数据结构】 并查集 + 路径压缩与按秩合并 python

目录 前言模板朴素实现路径压缩按秩合并按树高为秩按节点数为秩 总结 前言 并查集的基本实现通常使用森林来表示不同的集合,每个集合用一棵树表示,树的每个节点有一个指向其父节点的指针。 如果一个节点是它自己的父节点,那么它就是该集合的代…

Flutter android debug 编译报错问题。插件编译报错

下面相关内容 都以 Mac 电脑为例子。 一、问题 起因:(更新 Android studio 2024.2.2.13、 Flutter SDK 3.27.2) 最近 2025年 1 月 左右,我更新了 Android studio 和 Flutter SDK 再运行就会出现下面的问题。当然 下面的提示只是其…

CSAPP学习:前言

前言 本书简称CS:APP。 背景知识 一些基础的C语言知识 如何阅读 Do-做系统 在真正的系统上解决具体的问题,或是编写和运行程序。 章节 2025-1-27 个人认为如下章节将会对学习408中的操作系统与计算机组成原理提供帮助,于是先凭借记忆将其简单…

动态规划DP 数字三角型模型 方格取数(题目详解+C++代码实现)

方格取数 原题链接 AcWing 1027. 方格取数 题目描述 设有 NN 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。 如下图所示: 某人从图中的左上角 A 出发,可以向下行走,也可以向右行走&…

【Linux】20.基础IO(2)

文章目录 2. 理解文件系统2.1 inode2.2 如何理解目录2.3 硬链接2.4 软链接2.5 硬链接和软链接的区别 2. 理解文件系统 2.1 inode 我们使用ls -l的时候看到的除了看到文件名,还看到了文件元数据。 ydk_108iZuf68hz06p6s2809gl3i1Z:~/108/lesson20$ ll total 8 drw…

read+write实现:链表放到文件+文件数据放到链表 的功能

思路 一、 定义链表: 1 节点结构(数据int型) 2 链表操作(创建节点、插入节点、释放链表、打印链表)。 二、链表保存到文件 1打开文件 2遍历链表、写文件: 遍历链表,write()将节点数据写入文件。…

图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)

官网编译文档链接: https://doc.percipio.xyz/cam/latest/getstarted/sdk-ros2-compile.html 国内gitee下载SDK链接: https://gitee.com/percipioxyz 国外github下载SDK链接: https://github.com/percipioxyz 1.Camport ROS2 SDK 介绍 1.1 …

C# 添加、替换、提取、或删除Excel中的图片

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…

智能风控 数据分析 groupby、apply、reset_index组合拳

目录 groupby——分组 本例 apply——对每个分组应用一个函数 等价用法 reset_index——重置索引 使用前​编辑 注意事项 groupby必须配合聚合函数、 关于agglist 一些groupby试验 1. groupby对象之后。sum(一个列名) 2. groupby对象…

浅析百度AOI数据与高德AOI数据的差异性

目录 前言 一、AOI属性数据 1、百度AOI数据 2、高德AOI数据 二、AOI矢量边界 1、百度AOI空间范围 2、高德AOI空间范围 三、数据获取频次和难易程度 1、接口限制 2、数据转换成本 四、总结 前言 在当今数字化时代,地理信息数据的精准性和丰富性对于城市规划…

通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)

大家对于智能体代理Agent一定已经非常熟悉,自主代理(Autonomous Agents) 目前在AI行业极其热门并具有巨大的潜力,能够显著提升开发者日常的工作效率、自动化日常琐碎、重复性任务,并生成全新的内容。Agent可以理解用户…

汇编的使用总结

一、汇编的组成 1、汇编指令(指令集) 数据处理指令: 数据搬移指令 数据移位指令 位运算指令 算术运算指令 比较指令 跳转指令 内存读写指令 状态寄存器传送指令 异常产生指令等 2、伪指令 不是汇编指令,但是可以起到指令的作用,伪…

S4 HANA定义税码(FTXP)

本文主要介绍在S4 HANA OP中S4 HANA定义税码相关设置。具体请参照如下内容: 定义税码(FTXP) 以上界面是根据国家的“定价过程”确定的。蓝色的行项目表示目前已经激活的行项目。 不可抵扣进项税一般用于采购业务中,因此用在进项税码中。 消费税和营业…

Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合

读书笔记:卓越强迫症强大恐惧症,在亲子家庭、职场关系里尤其是纵向关系模型里,这两种状态很容易无缝衔接。尤其父母对子女、领导对下属,都有望子成龙、强将无弱兵的期望,然而在你的面前,他们才是永远强大的…

多级缓存(亿级并发解决方案)

多级缓存(亿级流量(并发)的缓存方案) 传统缓存的问题 传统缓存是请求到达tomcat后,先查询redis,如果未命中则查询数据库,问题如下: (1)请求要经过tomcat处…

场景设计学习-积分系统

场景设计-积分系统 1.概念和规则 积分:用户在网站的各种交互行为都可以产生积分,积分值与行为类型有关天梯榜:按照每个用户的总积分排序得到的排行榜,称为天梯榜。排名靠前的有奖励。天梯榜每个自然月为一个赛季,月初…

ML基础3-sklearn中的1个简单的分类器例子

Scikit-learn(通常缩写为sklearn)是一个流行的Python机器学习库,用于数据挖掘和数据分析任务。它建立在NumPy、SciPy和matplotlib等科学计算/可视化库的基础上,提供了丰富的工具和算法,用于处理各种机器学习问题&#…