【NCSN】

一. 前言

-> 2019年Yang Song从score matching with Langevin-Dynamics(SMLD)角度出发发表了NCSN,提出了一种score matching+langevin dynamics(SMLD)的方法,其先加噪声再去噪声的过程与DDPM的思想类似。
-> 2020年6月DDPM发表了声称连接了Diffusion-Original和NCSN。
-> 2020年10月Yang Song将两者统一在SDE框架下(SDE-Framework),DDPM和NCSN的forward分别对应两种SDE,相应的reverse也是SDE,由此引发后续从SDE求解加速的sample加速工作。
-> 之后就是2021年很多方法在DDPM上改进(加快采样,UNet改进结构等)。

  • DDIM(2020-10-Jiaming Song):Denoising Diffusion Implicit Models
  • IDDPM(2021-2-OpenAI):Improved Denoising Diffusion Probabilistic Models
  • Diffusion-Beat-GANs(2021-5-OpenAI):Diffusion Models Beat GANs on Image Synthesis

二. 背景介绍

现有的生成模型可以根据它们如何表示概率分布在很大程度上分为两类:
1.基于似然(显式)的模型(likehood based models):通过(近似)最大似然直接学习分布的概率密度(或质量)函数(PDF/PMF)。典型的基于似然的模型包括自回归模型(auto-agressive)、标准化流模型(normalizing flow model)、基于能量的模型(EBM,energy based models)和变分自编码器(VAE)。

2.隐式生成模型(implict generated models):其中概率分布由其采样过程隐式表示。最突出的例子是生成对抗网络(GAN),其中通过用神经网络转换随机高斯向量来合成来自数据分布的新样本。

然而,基于似然的模型和隐式生成模型都有明显的局限性。
1.(1) 基于似然的模型要么需要对模型架构进行严格限制,使用专门的架构来构建归一化概率模型(例如,自回归模型、流模型),以确保似然计算具有可处理的归一化常数,这里以能量模型为基础:
在这里插入图片描述
其中的 Z θ Z_{\theta } Zθ是一个与模型参数相关的归一化常量,它的作用是使得概率密度函数的积分值为1。本文提出的score matching可以将 Z θ Z_{\theta } Zθ去掉进而简化模型。
在这里插入图片描述
(2)要么必须依靠代理的损失函数来近似最大似然训练。

  1. 对生成过程建模,而不是依赖概率分布,因而完美的绕过了计算归一化常数这个环节,因为GANs不是一个基于概率的模型,因而也很难基于GANs来估计概率。而且训练不稳定,不适合数据上的模型评估和比较

在这篇论文中,作者关键思想是针对对数概率密度函数的梯度进行建模,该函数通常称为得分函数(score function)。这种基于分数的模型不需要有一个可处理的归一化常数,可以直接通过分数匹配(score matching)来学习。

三. Score-based Generative modeling

在这里插入图片描述从位置输出分布的 P d a t a ( x ) Pdata\left(x\right) Pdata(x)采样多个样本。评分网络 sθ : RD → RD 是一个由 θ 参数化的神经网络,它将被训练以近似 pdata(x) 的评分。生成建模的目标是使用数据集来学习从 pdata(x) 生成新样本的模型。基于分数的生成建模框架有两个组成部分:分数匹配和朗之万动力学(score matching+langevin dynamics(SMLD))

(一)Sorce Function

  • 定义对概率密度函数PDF求导为Score Function,反之,对Score Function积分可以得到PDF。因为数学上Score Function具有原始的PDF的主要信息,计算上却更为方便。
  • 承接二.1.(1)传统的方法通过训练经过归一化的PDF的 P θ ( x ) P_{\theta }\left(x\right) Pθ(x)来直接逼近 P d a t a ( x ) Pdata\left(x\right) Pdata(x),而本文利用score function(注意score是一个向量)来逼近PDF的梯度。省略了求归一化常数。为了衡量他们之间的距离,采用fisher divergence,就像通过KL Divergence度度量两个分布的“距离”,Fisher Divergence可以被用来度量两个向量场的距离。

(二)基于分数建模

  • 分数匹配:定义了一个优化问题,其中我们希望学习一个模型 s θ ( x ) s_{\theta }\left(x\right) sθ(x)来逼近给定数据分布 P d a t a ( x ) Pdata\left(x\right) Pdata(x)的得分,而不是直接学习概率密度本身,这样就避免了直接对复杂的数据分布进行建模。
    在这里插入图片描述
    这个等式的目的是最小化得分网络 s θ ( x ) s_{\theta }\left(x\right) sθ(x)与数据概率密度 P d a t a ( x ) Pdata\left(x\right) Pdata(x)的梯度 ∇x​logpdata​(x) 之间差异的期望值。通过最小化这个期望值,可以训练得分网络来估计数据的得分函数,而得分函数是概率密度函数的梯度
  • Fisher Divergence过程可以表示为:将原始梯度向量和score(表示的是梯度,因此score也是向量)进行向量相减,然后求所有差向量的平均,得到一个标量,来度量两个向量场之间的差异。
    在这里插入图片描述
    在这里插入图片描述

(三)分数匹配

  • 切片分数匹配:不直接计算迹运算,而是使用随机向量 v 来进行近似,最小化上述期望值来训练得分网络,以便它能够准确估计未被扰动的原始数据分布的得分。
    简单来说,假设上面两个向量场是很接近的,那么它们在随机的方向的1维投影的标量也应该很接近。这样就将高维数据的维度降低到了1
    在这里插入图片描述- 例如去噪分数匹配,通过引入噪声来简化评分匹配的优化问题,避免了直接计算数据分布的梯度,这在许多情况下是困难或不可计算的。前提是噪声足够小,qσ​(x~) 接近pdata​(x) 时,∇x​logqσ​(x) 与 ∇x​logpdata​(x) 近似相等。(详细计算:去噪分数匹配的详细计算
    在这里插入图片描述

(四)朗之万动力学采样(Langevin dynamics)

  • 它只需利用 ▽ x log ⁡ p ( x ) \bigtriangledown _{x}\log p\left(x\right) xlogp(x)就能从 p ( x ) p\left(x\right) p(x)中进行采样。(勆之万来源)
    在这里插入图片描述
  • 关于为什么需要在每次迭代加上一个随机噪声:理想情况,在Score Function的向量场中随机初始化很多数据点后,随着不断的迭代,这些点都逐渐汇聚到梯度为0的极大值位置。实际上是不可能的,因为所有点不可能都汇聚到一个点,因此,需要在迭代过程中注入随机的布朗运动。()

四. 分数模型的困局

(一)LOSS不收敛

如果使用不加噪声的 score matching 去训练分数模型,loss会不断震荡,幅度较大。
在这里插入图片描述

  • 流形假说(mainfold hypotheis):
    流形假设认为,生活中的真实数据大部分都倾向于分布在低维空间中,这也是“流形学习”(mainfold learning) 的大前提。也就是说,我们的编码空间(通过神经网络等一系列方法)的维度可能很广泛,实际上用一部分维度就足以表示它,说明实质上它仅分布在整个编码空间中的一部分(低维流形),并没有“占满”整个编码空间。

  • 在基于score matching 的方式下,训练分数模型就会出现 loss 震荡而不收敛的原因:
    (1)基于流形假说对真实数据分布的log求导是针对整个编码空间定义的,然而当数据仅分布在编码空间的低维流形时,分数就会出现**“没有定义” (undefined)** 的情况。
    (2)score matching 的训练目标是基于数据“占满”了整个编码空间这个前提下而推出来的。当数据仅分布在低维流形中时,score matching 的方法就不适用了。

  • 解决:NCSN 用了高斯噪声去扰动数据,而高斯噪声是分布在整个编码空间的,因此,扰动后的数据就不会仅“驻扎”在低维流形,而是能够有机会出现在整个编码空间的任意部分,从而避免了分数(score)没有定义(undefined)的情况

(二)分数估计不准
  • 数据主要位于高密度区,但是当数据维度很高时,初始化的样本大概率位于这些梯度不准确的低密度区中,这些不准确的Score从开始就误导朗之万动力学“脱轨”,导致难以生成体现真正数据分布的高质量样本。(参考
    在这里插入图片描述
  • 解决:在扰动数据的时候,尺度较大的噪声会有更多机会将原来的数据“赶”到低概率密度区域,原本很少或没有数据点的区域也会得到数据点的“访问”,这意味着模型现在可以在这些区域获得监督信号,从而学习到更准确的得分估计。
(三)生成结果偏差大
  • 如图,实际的数据分布中(图左部分),右上部分的分布对应的样本比较多,左下部分的比较少;而生成的结果(图右部分)确是两种分布对应的样本一样多,并没有反映出原始各分布之间的关系。此时,数据分布是由两个分布(右上和左下部分其实是两个不同的高斯分布的高概率密度区域)按不同比例混合而成并且由低概率密度区域“隔开”时,生成结果就不能反映出两个分布之间的相对关系
    在这里插入图片描述
  • 这是一位在计算导数的时候会将前面的系数省略掉,假设他们以一定的权重混合
    在这里插入图片描述
    实际的分数计算过程中会省略掉不同分布之间的相对关系
  • 解决:而在加噪扰动后(噪声尺度要稍微大些),在低概率密度区域中,扰动后的分数在这里插入图片描述

更多地由混合比例高的那个分布的分数“演变”而来。这就是说,分数的方向将更多地指向混合比例高的那个分布。

(四)设计多尺度噪声
  • 训练一个容易扩展的神经网络模型,因此将噪声水平作为一个额外的输入维度,即将噪声的方差设置为权重加入到fisher divergence里面。退火朗之万动力学(annealed Langevin dynamics ),指噪声水平按照从L->1的水平逐渐下降
    在这里插入图片描述
  • 具体实现将噪声水平系数权重
    在这里插入图片描述

五. Conclusion

  1. 估计数据分布的对数梯度即score,而不是直接估计概率密度,以规避求归一化常数的问题
  2. 使用Score Matching,因为无法了解真实分布的向量场 P d a t a ( x ) Pdata\left(x\right) Pdata(x),不能衡量与真实分布的向量场之间的代价(Fisher Divergence);
  3. 提出Sliced Score Matching,避免高维度下求Jacobian的计算量大和去噪分数匹配对原分布加噪声以简化训练score function时的loss函数,以近似估计score function
  4. 使用朗之万动力学加入随机noise,避免迭代后所有的初始化样本最终都聚集到一个点
  5. 加入多个噪声水平合理的随机量,权重可以是随步骤变化的
  6. 使用neural network,学习所有的噪声水平对应的Score Function
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值