生成模型分类
已有的生成模型大致可以分为两类
- likelihood-based model:以 VAE 和 normalizing flow model 为主,直接拟合数据分布,但通常对网络模型的结构设计提出了较大限制
- implicit generative model:以 GAN 为主,使用判别器间接判断输出的数据是否符合数据分布,存在训练困难,容易训练失败以及模式崩塌等问题
Score Matching & Non-Normalized Distribution
Score Matching 最早在 2005 年《Estimation of Non-Normalized Statistical Models by Score Matching》提出,主要是用于解决概率分布的归一化的问题。在生成模型中,我们常希望使用含参模型 给出的概率密度函数能够拟合真实的概率密度函数 , 作为一个概率密度函数须满足归一化性质 ,因此,我们通常使用模型 给出一个未归一化的概率密度函数,然后使用归一化项 来保证 的性质,即
其中 为与样本无关的一个常量。由于 的存在,无论是基于梯度的优化过程还是正向推理都变得很难计算,因此,考虑使 关于输入的梯度逼近 关于输入的梯度
形式化地,我们定义分数函数 如下
我们利用MSE损失函数找到最优参数 的过程称作是 Score Matching,损失函数定义为
这种损失函数的表达形式也被称为显式分数匹配 (Explicit Score Matching)
对 进行展开,有
对于第二项进行维度展开,有
我们考虑 时的情况,由分部积分公式
因此,有下式
若假定 ,上式可化简如下所示
将 (3)(4) 式代回到 (2) 式,得到等价的隐式函数优化目标
如果我们得到了一个最优的分数函数 ,那么我们可以引入郎之万动力学方程 (Langevin Dynamics) 进行数据的生成任务,具体来说,给定一个固定的步长 ,初始值 采样自某先验分布之中,,有如下迭代公式
当满足 和 时, 等价于从
但以上方法存在以下几个问题
- 在搭建神经网络时,需要使用反向传播优化模型参数,(5)式中存在关于输出的一阶导数,这表明反向传播需要计算关于输出的二阶导数
- 对于尺寸较大的输入,以上建模方式并不生效
问题2的一种直观解释:图像分布可以看作是高维空间中的一个流形,因此对于空间中的大多位置都是不存在合理的训练样本进行训练的,对于采样自先验分布的初值 ,会因为不准确的分数函数而移动到某局部最优值上,得到较差的生成结果
Sliced Score Matching
Score Matching 最主要的问题是效率问题,为了避免计算Score函数相对于输入的二阶 Hessian 矩阵,作者提出使用如下式子替换
其中 是抽样自 的随机方向向量,满足 (矩阵是正定的),且
对 (6) 式采用类似地推导,可以得到
证明过程如下所示
如何加速SM:对于,原本需要计算一个 Hessian 矩阵,现在损失函数只需先计算标量 ,然后相对于标量求导 ,即可得到损失函数
Denoising Score Matching
SSM提供了一个无偏的分数函数拟合方法,但是仍需要较大的计算量进行图像的生成。类比于VAE的思路,如果每个样本不是表示单独的样本点,而是表示一个局部的概率分布,即在训练样本 上施加一个噪声 ,可以有效地缓解Score Matching中的问题2,假定 表示噪声的概率分布,其中 为噪声分布中的参数,那么噪声样本的概率分布为
那么,学习的目标即为使用模型拟合该噪声分布的分数函数,例如 表示转化为
另一方面,定义
下面证明,在Score Matching对 进行优化的目标下, 与 等价
其中 表示不包含 的部分,而 推导如下所示
对 进行展开,即可得证 等价于 ,注意到如果施加的噪声为 ,那么有
因此,优化 目标函数如下所示
使用噪声的方式可以巧妙地避开了二阶导,提高了训练的效率,观察函数表示,我们发现DSM本质上,在使用分数函数拟合一个降噪器,这种方法存在以下两种弊端
- 拟合出来的分布是加了噪声之后的分布
- 噪声的级别
NCSN给出的方法是,在推理的不同阶段从大到小给出噪声,即