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两个针对高维大数据的改进方法。

Denoising score matching

Denoising score matching首先用噪声扰动数据,然后用score matching算法估计被扰动数据的分数,优化的目标如下:
1 2 E q σ ( x ~ ∣ x ) p d a t a ( x ) [ ∣ ∣ s θ ( x ~ ) − ∇ x ~ log ⁡ q σ ( x ~ ∣ x ) ∣ ∣ 2 2 ] (2) \frac{1}{2}\mathbb{E}_{q_\sigma({\mathbf{\tilde{x}}| \mathbf{x}}) p_{\mathrm{data}}(\mathbf{x})} \bigg[ \left|\left| \mathbf{s}_{\theta}(\mathbf{\tilde{x}}) - \nabla_{\mathbf{\tilde{x}}} \log {q_{\sigma}(\mathbf{\tilde{x}} | \mathbf{x})} \right|\right|_2^2 \bigg] \tag{2} 21Eqσ(x~x)pdata(x)[sθ(x~)x~logqσ(x~x)22](2)当噪声足够小的时候, ∇ x log ⁡ q σ ( x ) ≈ ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log q_\sigma(\mathbf{x}) \approx \nabla_\mathbf{x}\log p_{\mathrm{data}}(\mathbf{x}) xlogqσ(x)xlogpdata(x)

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。使用条件实例归一化(conditional instance normalization)使得 s θ ( x , σ ) s_\theta(\mathbf{x},\sigma) sθ(x,σ)在预测分数时基于条件 σ \sigma σ。具体参见论文附录A。

对于噪声条件分数网络的训练,作者使用denoising score matching算法学习分数。作者选择的噪声分布是 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),导数是 ∇ x ~ log ⁡ q σ ( x ~ ∣ x ) = − 1 σ 2 ( x ~ − x ) \nabla_{\mathbf{\tilde{x}}} \log q_\sigma( \tilde{\mathbf{x}} |\mathbf{x}) = - \frac{1}{\sigma^2} (\mathbf{\tilde{x}} - \mathbf{x}) x~logqσ(x~x)=σ21(x~x)
带入公式(2),得到对于一个给定的噪声 σ \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]注意,这里的 s θ ( x ~ , σ ) s_\theta(\tilde{\mathbf{x}},\sigma) sθ(x~,σ)可以看做是学习从噪声样本到真实样本的单位向量。
将所有的噪声融合在一个式子中有:
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》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>