生成模型分类

已有的生成模型大致可以分为两类

  • 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》提出,主要是用于解决概率分布的归一化的问题。在生成模型中,我们常希望使用含参模型 prototyping process model优缺点 process-based model_机器学习 给出的概率密度函数能够拟合真实的概率密度函数 prototyping process model优缺点 process-based model_人工智能_02prototyping process model优缺点 process-based model_机器学习 作为一个概率密度函数须满足归一化性质 prototyping process model优缺点 process-based model_深度学习_04,因此,我们通常使用模型 prototyping process model优缺点 process-based model_机器学习_05 给出一个未归一化的概率密度函数,然后使用归一化项 prototyping process model优缺点 process-based model_归一化_06 来保证 prototyping process model优缺点 process-based model_机器学习 的性质,即

prototyping process model优缺点 process-based model_归一化_08

其中 prototyping process model优缺点 process-based model_归一化_06 为与样本无关的一个常量。由于 prototyping process model优缺点 process-based model_归一化_06 的存在,无论是基于梯度的优化过程还是正向推理都变得很难计算,因此,考虑使 prototyping process model优缺点 process-based model_机器学习 关于输入的梯度逼近 prototyping process model优缺点 process-based model_人工智能_02 关于输入的梯度

prototyping process model优缺点 process-based model_概率密度函数_13


prototyping process model优缺点 process-based model_机器学习_14

形式化地,我们定义分数函数 prototyping process model优缺点 process-based model_归一化_15 如下

prototyping process model优缺点 process-based model_人工智能_16

我们利用MSE损失函数找到最优参数 prototyping process model优缺点 process-based model_概率密度函数_17 的过程称作是 Score Matching,损失函数定义为

prototyping process model优缺点 process-based model_深度学习_18

这种损失函数的表达形式也被称为显式分数匹配 (Explicit Score Matching)

prototyping process model优缺点 process-based model_深度学习_19 进行展开,有
prototyping process model优缺点 process-based model_机器学习_20
对于第二项进行维度展开,有
prototyping process model优缺点 process-based model_人工智能_21
我们考虑 prototyping process model优缺点 process-based model_归一化_22 时的情况,由分部积分公式
prototyping process model优缺点 process-based model_概率密度函数_23
因此,有下式
prototyping process model优缺点 process-based model_深度学习_24
若假定 prototyping process model优缺点 process-based model_机器学习_25,上式可化简如下所示
prototyping process model优缺点 process-based model_归一化_26
将 (3)(4) 式代回到 (2) 式,得到等价的隐式函数优化目标 prototyping process model优缺点 process-based model_归一化_27
prototyping process model优缺点 process-based model_深度学习_28

如果我们得到了一个最优的分数函数 prototyping process model优缺点 process-based model_机器学习_29,那么我们可以引入郎之万动力学方程 (Langevin Dynamics) 进行数据的生成任务,具体来说,给定一个固定的步长 prototyping process model优缺点 process-based model_深度学习_30,初始值 prototyping process model优缺点 process-based model_归一化_31 采样自某先验分布之中,prototyping process model优缺点 process-based model_概率密度函数_32,有如下迭代公式
prototyping process model优缺点 process-based model_人工智能_33
当满足 prototyping process model优缺点 process-based model_概率密度函数_34prototyping process model优缺点 process-based model_归一化_35 时,prototyping process model优缺点 process-based model_人工智能_36 等价于从 prototyping process model优缺点 process-based model_人工智能_02

但以上方法存在以下几个问题

  • 在搭建神经网络时,需要使用反向传播优化模型参数,(5)式中存在关于输出的一阶导数,这表明反向传播需要计算关于输出的二阶导数
  • 对于尺寸较大的输入,以上建模方式并不生效

问题2的一种直观解释:图像分布可以看作是高维空间中的一个流形,因此对于空间中的大多位置都是不存在合理的训练样本进行训练的,对于采样自先验分布的初值 prototyping process model优缺点 process-based model_人工智能_38,会因为不准确的分数函数而移动到某局部最优值上,得到较差的生成结果

Sliced Score Matching

Score Matching 最主要的问题是效率问题,为了避免计算Score函数相对于输入的二阶 Hessian 矩阵,作者提出使用如下式子替换 prototyping process model优缺点 process-based model_概率密度函数_39
prototyping process model优缺点 process-based model_概率密度函数_40
其中 prototyping process model优缺点 process-based model_深度学习_41 是抽样自 prototyping process model优缺点 process-based model_概率密度函数_42 的随机方向向量,满足 prototyping process model优缺点 process-based model_归一化_43 (矩阵是正定的),且 prototyping process model优缺点 process-based model_深度学习_44

对 (6) 式采用类似地推导,可以得到 prototyping process model优缺点 process-based model_归一化_45
prototyping process model优缺点 process-based model_深度学习_46

证明过程如下所示

prototyping process model优缺点 process-based model_概率密度函数_47


prototyping process model优缺点 process-based model_概率密度函数_48


prototyping process model优缺点 process-based model_深度学习_49

如何加速SM:对于prototyping process model优缺点 process-based model_机器学习_50,原本需要计算一个 Hessian 矩阵,现在损失函数只需先计算标量 prototyping process model优缺点 process-based model_概率密度函数_51,然后相对于标量求导 prototyping process model优缺点 process-based model_归一化_52,即可得到损失函数

prototyping process model优缺点 process-based model_深度学习_53

Denoising Score Matching

SSM提供了一个无偏的分数函数拟合方法,但是仍需要较大的计算量进行图像的生成。类比于VAE的思路,如果每个样本不是表示单独的样本点,而是表示一个局部的概率分布,即在训练样本 prototyping process model优缺点 process-based model_归一化_54 上施加一个噪声 prototyping process model优缺点 process-based model_概率密度函数_55,可以有效地缓解Score Matching中的问题2,假定 prototyping process model优缺点 process-based model_机器学习_56 表示噪声的概率分布,其中 prototyping process model优缺点 process-based model_概率密度函数_57 为噪声分布中的参数,那么噪声样本的概率分布为
prototyping process model优缺点 process-based model_人工智能_58
那么,学习的目标即为使用模型拟合该噪声分布的分数函数,例如 prototyping process model优缺点 process-based model_深度学习_19 表示转化为
prototyping process model优缺点 process-based model_深度学习_60
另一方面,定义 prototyping process model优缺点 process-based model_概率密度函数_61
prototyping process model优缺点 process-based model_机器学习_62
下面证明,在Score Matching对 prototyping process model优缺点 process-based model_概率密度函数_17 进行优化的目标下,prototyping process model优缺点 process-based model_概率密度函数_61prototyping process model优缺点 process-based model_深度学习_65 等价
prototyping process model优缺点 process-based model_机器学习_66
其中 prototyping process model优缺点 process-based model_概率密度函数_67 表示不包含 prototyping process model优缺点 process-based model_概率密度函数_17 的部分,而 prototyping process model优缺点 process-based model_深度学习_69 推导如下所示
prototyping process model优缺点 process-based model_概率密度函数_70
prototyping process model优缺点 process-based model_机器学习_71 进行展开,即可得证 prototyping process model优缺点 process-based model_机器学习_71等价于 prototyping process model优缺点 process-based model_人工智能_73,注意到如果施加的噪声为 prototyping process model优缺点 process-based model_深度学习_74,那么有
prototyping process model优缺点 process-based model_概率密度函数_75
因此,优化 prototyping process model优缺点 process-based model_机器学习_71 目标函数如下所示
prototyping process model优缺点 process-based model_机器学习_77
使用噪声的方式可以巧妙地避开了二阶导,提高了训练的效率,观察函数表示,我们发现DSM本质上,在使用分数函数拟合一个降噪器,这种方法存在以下两种弊端

  • 拟合出来的分布是加了噪声之后的分布
  • 噪声的级别 prototyping process model优缺点 process-based model_机器学习_78

NCSN给出的方法是,在推理的不同阶段从大到小给出噪声,即

prototyping process model优缺点 process-based model_机器学习_79