type
status
date
slug
summary
tags
category
icon
password
介绍DDPM与score-based方法的联系与区别
生成式模型
生成式模型的任务是根据数据样本{x1,x2,x3…},利用参数化模型来估计数据真实分布,注意在机器学习中我们常使用p(x)代表概率密度函数(P.D.F)而不是概率分布函数
典型估计方法
- Likelihood Based Models,这类模型通过最大似然估计(MLE)直接学习数据的概率密度/质量分布(PDF/PMF),比如:变分自编码器(Variational auto-encoders,VAEs), 自回归模型 (autoregressive),normalizing flow models和下文将讨论的基于能量模型(Energy Base Model, EBM);
- 2) Implicit Generated Models: 隐式的将概率分布表达为对模型的随机抽样,对抗生成网络(GANs)是这类模型中最著名的代表,它们通过神经网络将随机高斯向量变换/生成新的样本(Sample)。显然,GAN由于没有估计出PDF,也就无法获得样本分布的密度。
归一化的问题
有3种应对计算归一化常数的方法:
- 近似归一化常数:VAE和EBM使用变分推断(VI) / 马尔可夫链蒙特卡洛(MCMC),缺点是一旦使用这类近似方法,我们就不可能准确的估计概率了,因为概率是通过除以归一化常数得到,而这个值在这里是估计值;
- 限制神经网络模型的种类:通过只使用tractable的神经网络模型,比如:自回归模型 (autoregressive)和normalizing flow models,缺点是选择神经网络的灵活性也受到了限制;
- 使用GANs:因为GANs对生成过程建模,而不是依赖概率分布,因而完美的绕过了计算归一化常数这个环节,因为GANs不是一个基于概率的模型,因而也很难基于GANs来估计概率。而且GANs的训练难度大容易崩也是广为所知的缺点。
基于Score Function的生成模型可以解决上述问题。
Score-based Model
Likelihood-based model直接对PDF或PMF建模,定义为一个基于可学习参数的实数值函数,那么PDF可以定义为:,其中分母为归一化常数。对于大部分参数化模型来说,计算归一化常数都是困难的,尤其是使用神经网络参数化的模型,除了分类网络中使用softmax进行建模,其他参数化方法一般都无法计算归一化常数。
这篇文章最早提出了利用score-match的方法进行PDF估计,其核心思想为估计PDF的梯度来代替,这里的score其实就是PDF的梯度换了个名字
显然优化掉了归一化常数,给定概率密度函数PDF,求导可以得到Score Function,反之,对Score Function积分可以得到PDF。因此,数学上Score Function具有原始的PDF的主要信息,计算上却更为方便。
而score-match的含义,即估计得分与真实得分的匹配,即向量场(梯度场)匹配
计算分布的距离我们常使用KL散度,而计算向量场的匹配程度,我们使用Fisher散度(Fisher Divergence)
假设我们可以对两个向量场进行叠加(下图):
那么就可以计算这些向量对之间的的差异(下图):
然后就可以对所有的差向量进行平均,得到一个标量,来度量两个向量场之间的差异。上面的这种直觉在数学上可以用Fisher Divergence来表达:
但由于未知,所以该式不能直接计算,Hyvarinen通过分部积分法将上述Fisher Divergence问题转化为下面的等价公式:
其中Trace的对象实际是的Jacobian矩阵,实际应用时,我们利用均值代替期望值,得到优化目标:
由于不需要考虑归一化常数,这里的score function可以是任意参数化模型,可以用神经网络来拟合,损失函数即为上式
从Score Function中抽样
当我们训练了一个Score Function近似于实际的数据分布的梯度:,然后我们就可以使用朗之万动力学(Langevin dynamics)从中进行采样了。我们将采样过程视作“梯度上升法”,因为采样的样本最好位于概率密度较大的区域。理想情况,当我们在Score Function的向量场中随机初始化很多数据点后,随着不断的迭代,这些点都逐渐汇聚到梯度为0的极大值位置,实际上是不可能的,因为所有点不可能都汇聚到一个点,因此,需要在迭代过程中注入随机的布朗运动,这就涉及朗之万动力学。
与标准的随机梯度相比,随机梯度朗之万动力学将高斯噪声注入了参数更新,避免陷入局部最优。实际上,这就是退火算法的原理。
低密度问题
对于低密度的区域,Score Function的估计并不够准确,从Score Function的公式来看,我们试图最小化Fish Divergence:
数据主要位于高密度区,但是当数据维度很高时,初始化的样本大概率位于这些梯度不准确的低密度区中,这些不准确的Score从开始就误导朗之万动力学“脱轨”,导致难以生成体现真正数据分布的高质量样本。
Yang Song 博士提出了一个开创性的方法解决这个问题,即利用随机噪声扰动数据样本,将高密度区域扩散到低密度区域
解决上述问题的关键在于,在数据中加入噪声扰动,基于这些加入了噪声的数据训练Score-based Model. 当噪声的幅度足够大时,就可能传播到数据密度低的区域,改善估计的score的准确性。下图显示了,由于低密度数据区域的缩小,所有区域的score都估计的比较准确。
于是,问题就变成了,如何选择噪声的规模,噪声太大会破坏原始数据分布,噪声太小又无法传播到数据密度低的区域。为了能兼得鱼和熊掌,可同时采用多个不同scale的噪声进行扰动。
假设所有噪声都是isotropic,也就是协方差矩阵的对角线上元素都相等,同时均值 =0 。
下图显示了向原始数据中添加标准差逐步增大的3个噪声,产生3个数据集。
问题在于,如果想获得均匀的数据密度,需要加非常大的扰动,破坏原始分布;扰动较小,样本又无法扩散到低密度区域。我们的根本目的是引导郎之万随机采样的路径,让它能顺利到达高密度区域,所以Song 将这个任务分步来完成:逐步向图像中添加噪声,直到变成完全随机的噪声分布,然后预测每一步的得分匹配,也就是说:将引导路径进行拆解。
下图表示:使用不同噪声级别对数据进行扰动
DDPM与Score-based
实际上,DDPM与score-based方法在某种条件下是等价的
《A connection between score matching and denoising autoencoders》(2011)中提出了条件得分匹配的损失函数:
即在目标图像x0作为条件下,对噪声扰动后的分布进行噪声估计的损失函数
可以证明,该损失函数与特定参数化的DDPM是等价的
DDPM损失函数:
SDE损失函数:
- Author:Lfy
- URL:https://lfymay23ustc.xyz/article/10fa89ac-4c2b-805a-bc90-f83eeed6d4e5
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts