Generative Modeling by Estimating Gradients of the Data Distribution阅读笔记

概述

论文提出了一种生成模型,并将其用于图像生成任务。
论文先介绍了传统score-based generative modeling方法,然后分析传统score-based generative modeling存在的问题,最后提出解决问题的算法noise conditional score network。

传统score-based generative modeling介绍

假设数据集中的数据服从 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)分布。
generative modeling的目标是学习一个生成模型来生成服从 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)分布的新样本。
定义score function为对概率密度函数 p ( x ) p(\mathbf{x}) p(x)求导 ∇ x log ⁡ p ( x ) \nabla_\mathbf{x}\log p(\mathbf{x}) xlogp(x)
定义score network是一个参数为 θ \theta θ的神经网络 s θ s_\theta sθ,其试图近似score function。
score-based generative modeling通过学习score function,加上Langevin dynamics采样,来生成符合分布的新样本,步骤如下图所示:
在这里插入图片描述

score matching

使用score matching算法,我们可以直接训练一个分数网络 s θ ( x ) s_\theta(\mathbf{x}) sθ(x)来估计 ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x)而无需训练模型估计 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)。好处是可以避免概率密度函数中的归一化常数,详见score matching算法介绍
score matching算法的优化目标如下:
1 2 E p d a t a [ ∥ s θ ( x ) − ∇ x log ⁡ p d a t a ( x ) ∥ 2 2 ] \frac{1}{2}\mathbb{E}_{p_{data}}[\|\mathbf{s}_\theta(\mathbf{x})-\nabla_\mathbf{x}\log p_{data}(\mathbf{x})\|^2_2] 21Epdata[sθ(x)xlogpdata(x)22]上面的公式需要计算 ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x),这是一个非参数估计问题,并不好计算。值得高兴的是,上面的公式在相差常数上等价为 E p d a t a [ tr ( ∇ x s θ ( x ) ) + 1 2 ∥ s θ ( x ) ∥ 2 2 ] \mathbb{E}_{p_{data}}[\text{tr}(\nabla_\mathbf{x}\mathbf{s}_\theta(\mathbf{x}))+\frac{1}{2}\|\mathbf{s}_\theta(\mathbf{x})\|^2_2] Epdata[tr(xsθ(x))+21sθ(x)22]最小化上面的公式可以求出 s θ ( x ) \mathbf{s}_\theta(\mathbf{x}) sθ(x)。在现实中,期望可以用样本的平均代替。
但是,高维数据计算 tr ( ∇ x s θ ( x ) ) \text{tr}(\nabla_\mathbf{x}\mathbf{s}_\theta(\mathbf{x})) tr(xsθ(x))复杂度很高。Denoising score matching和Sliced score matching是针对高维大数据的两种常用的改进方法。

Langevin dynamics

Langevin dynamics是一种只需要score function ∇ x log ⁡ p ( x ) \nabla_\mathbf{x}\log p(\mathbf{x}) xlogp(x)就可以从概率密度函数 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)中采样的方法,它是一种Markov chain Monte Carlo (MCMC)方法。
给一个初始分布 x ~ 0 ∼ π ( x ) \tilde{\mathbf{x}}_0\sim \pi(\mathbf{x}) x~0π(x),和固定的步长 ϵ > 0 \epsilon>0 ϵ>0,Langevin方法循环地重复下面的步骤:
x ~ t = x ~ t − 1 + ϵ 2 ∇ x log ⁡ p ( x ~ t − 1 ) + ϵ z t \tilde{\mathbf{x}}_t=\tilde{\mathbf{x}}_{t-1}+\frac{\epsilon}{2}\nabla_\mathbf{x}\log p(\tilde{\mathbf{x}}_{t-1})+\sqrt{\epsilon}\mathbf{z}_t x~t=x~t1+2ϵxlogp(x~t1)+ϵ zt其中 z t ∼ N ( 0 , I ) \mathbf{z}_t\sim\mathcal{N}(0,\mathbf{I}) ztN(0,I)。当 ϵ → 0 \epsilon\rightarrow0 ϵ0 T → ∞ T\rightarrow\infin T时, x ~ T \tilde{\mathbf{x}}_T x~T的分布是 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)

传统score-based generative modeling存在的问题

流形假设上的问题

流形(manifold)假设指出,现实世界中的数据倾向于集中在嵌入高维空间(也称为环境空间)中的低维流形上。

The manifold hypothesis states that data in the real world tend to concentrate on low dimensional manifolds embedded in a high dimensional space (a.k.a., the ambient space).

在流形假设下,score-based generative models存在两个问题:

  1. ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x)在低维流形上没有定义。
  2. 只有在数据分布是整个空间时,score估计量才具有一致性(consistent)。

低密度区域的问题

在这里插入图片描述

  1. 在数据的低密度区域,并没有足够的数据样本去准确地学习score function。
  2. 当数据分布的两个峰(mode)被低密度区域分隔时,Langevin dynamics将无法在合理的时间内正确恢复这两个峰的相对权重,并且可能不会收敛到真实分布。例如,假设 p d a t a ( x ) = π p 1 ( x ) + ( 1 − π ) p 2 ( x ) p_{data}(\mathbf{x})=\pi p_{1}(\mathbf{x})+(1-\pi)p_{2}(\mathbf{x}) pdata(x)=πp1(x)+(1π)p2(x),并且 p 1 p_{1} p1 p 2 p_{2} p2没有相交的支撑集,在求导后,权重 π \pi π将不会影响score function。

Noise Conditional Score Network

为了解决上面的问题,作者对传统score-based generative modeling进行了改进。
作者提出通过 1) 使用各种噪声水平来扰动数据;2)用一个条件分数网络(conditional score network)同时估计所有噪声水平对应的分数。
在条件分数网络训练结束后,使用Langevin dynamics来生成样本时,最开始使用高噪声对应的分数,然后逐渐降低噪音。 这有助于将高噪声的好处平稳地转移到低噪声。而低噪声干扰的数据与原始数据几乎无法区分。

原理如下图,通过加入噪声,可以使数据填充低数据密度区域以提高估计分数的准确性。
较大的噪声显然可以覆盖更多的低密度区域以获得更好的分数估计,但它会过度破坏数据并显着改变原始分布。另一方面,较小的噪声会导致原始数据分布的损坏较少,但不会像我们希望的那样覆盖低密度区域。所以作者提出了使用多尺度的噪声干扰。
在这里插入图片描述

噪声条件分数网络(Noise Conditional Score Networks)

{ σ i } i = 1 L \{\sigma_i\}_{i=1}^L { σi}i=1L是一系列噪声水平,满足条件 σ 1 σ 2 = ⋯ = σ L − 1 σ L > 1 \frac{\sigma_{1}}{\sigma_{2}}=\cdots=\frac{\sigma_{L-1}}{\sigma_{L}}>1 σ2σ1==σLσL1>1 q σ ( x ) ≜ ∫ p d a t a ( t ) N ( x ∣ t , σ 2 I ) d t q_\sigma(\mathbf{x})\triangleq\int p_{data}(\mathbf{t})\mathcal{N}(\mathbf{x} | \mathbf{t}, \sigma^2\mathbf{I})d\mathbf{t} qσ(x)pdata(t)N(xt,σ2I)dt是噪声扰动后的数据分布。我们要学习一个噪声条件分数网络 s θ ( x , σ ) s_\theta(\mathbf{x},\sigma) sθ(x,σ)来估计噪声数据的分数,也就是 s θ ( x , σ ) ≈ ∇ x log ⁡ q σ ( x ) s_\theta(\mathbf{x},\sigma)\approx\nabla_\mathbf{x}\log q_\sigma(\mathbf{x}) sθ(x,σ)xlogqσ(x)。注意这里的分数网络是条件分数网络,输入相较于传统的 s θ ( x ) s_\theta(\mathbf{x}) sθ(x)多了一个 σ \sigma σ
作者考虑的是图像生成的问题,所以 s θ ( x , σ ) s_\theta(\mathbf{x},\sigma) sθ(x,σ)的结构作者选择的是U-Net。

对于噪声条件分数网络的训练,作者选择的噪声分布是
q σ ( x ~ ∣ x ) = N ( x ~ ∣ x , σ 2 I ) q_\sigma( \tilde{\mathbf{x}} |\mathbf{x})=\mathcal{N}( \tilde{\mathbf{x}} |\mathbf{x}, \sigma^{2}\mathbf{I}) qσ(x~x)=N(x~x,σ2I)
对于一个给定的噪声 σ \sigma σ,优化的目标是:
l ( θ , σ ) = 1 2 E p d a t a E x ~ ∼ N ( x , σ 2 I ) [ ∥ s θ ( x ~ , σ ) + x ~ − x σ 2 ∥ 2 2 ] \mathcal{l}(\theta,\sigma)=\frac{1}{2}\mathbb{E}_{p_{data}}\mathbb{E}_{\tilde{\mathbf{x}} \sim \mathcal{N}(x, \sigma^{2}\mathbf{I})}[\| s_\theta(\tilde{\mathbf{x}},\sigma) + \frac{\tilde{\mathbf{x}}-\mathbf{x}}{\sigma^2} \|_2^2] l(θ,σ)=21EpdataEx~N(x,σ2I)[sθ(x~,σ)+σ2x~x22]将所有的噪声融合在一个式子中有:
L ( θ ; { σ i } i = 1 L ) ≜ 1 L ∑ i = 1 L λ ( σ i ) l ( θ , σ i ) \mathcal{L}(\theta;\{\sigma_i\}_{i=1}^L)\triangleq\frac{1}{L}\sum_{i=1}^L\lambda(\sigma_i)\mathcal{l}(\theta,\sigma_i) L(θ;{ σi}i=1L)L1i=1Lλ(σi)l(θ,σi)其中 λ ( σ i ) \lambda(\sigma_i) λ(σi)是权重。

annealed Langevin dynamics

在噪声条件分数网络 s θ ( x ; σ ) s_\theta(\mathbf{x};\sigma) sθ(x;σ)训练完成之后,作者提出annealed Langevin dynamics算法来生成样本, 如算法1所示。先使用高噪声对应的分数,然后逐渐降低噪音。
在这里插入图片描述

参考

Yang Song’s blog《Generative Modeling by Estimating Gradients of the Data Distribution》
NIPS 2019《Generative Modeling by Estimating Gradients of the Data Distribution》

猜你喜欢

转载自blog.csdn.net/icylling/article/details/128320524