论文:Classifier-Free Diffusion Guidance
代码:暂无
出处:NIPS 2021 workshop(短版本论文)
一、背景
在此之前,classifier guidance (diffusion model beats GAN)模型使用类别引导的方法在 FID score 上首次超越了 BigGAN-deep 和 VQ-VAE-2。类别引导的方法就是使用额外训练的分类器来提升扩散模型生成样本的质量,在使用类别引导扩散模型生成之前,扩散模型很难生成类似于 BigGAN 或 Glow 生成的那种 low temperature 的样本,这里 low temperature 就是和训练数据的分布非常接近的样本,更清晰且逼真。而且,如果不使用分类器指导,而是仅仅减少在扩散模型中加入的高斯噪声,并不能很好的解决这个问题。
分类器引导是一种混合了扩散模型分数估计与分类器概率输入梯度的方法。通过改变分类器梯度的强度,可以在 Inception 得分和 FID 得分(两种评价生成模型性能的指标)之间进行权衡,就像调整 BigGAN 中截断参数一样。
然而,作者想要探索是否可以在不使用任何分类器的情况下实现类似效果。因为,使用分类器引导会使扩散模型训练流程复杂化,它需要额外训练一个用于处理噪声数据的分类器,并且在采样过程中将分数估计与该分类器梯度混合。
所以作者提出了无需任何依赖于特定目标或者任务设定的 classifier-free guidance 方法。
二、方法
Classifier Guidance:
- 不需要重新训练 diffusion 模型,需要训练加噪图片的分类模型,可以控制生成图片的类别,分类图片有多少类,就能控制这个扩散模型生成多少类
Classifier Guidance 可以通过score function直观地解释,用贝叶斯定理将条件生成概率进行对数分解:
从上式可以看到,Classifier Guidance 条件生成只需额外添加一个classifier的梯度来引导。从成本上看,Classifier Guidance 需要训练噪声数据版本的classifier网络,推理时每一步都需要额外计算classifier的梯度。
Classifier Guidance 的问题:
- 需要额外训练一个噪声版本的图像分类器
- 分类器的质量会影响按类别生成的效果
- 通过梯度更新图像会导致对抗攻击效应,生成图像可能会通过人眼不可察觉的细节欺骗分类器,实际上并没有按条件生成。
classifier-free guidance:
- 需要重新训练 diffusion 模型,不需要训练分类模型,不受限于类别,直接用条件控制即可
为了避免上面的这些问题,OPENAI 提出了 可以通过调节引导权重,控制生成图像的逼真性和多样性的平衡的 classifier-free guidance,思想是通过一个隐式分类器来替代显示分类器,而无需直接计算显式分类器及其梯度
分类器的梯度如下
把这个分类器带入 classifier guidance 梯度中,得到如下:
Classifier-Free Guidance需要训练两个模型,一个是无条件生成模型,另一个是条件生成模型。但这两个模型可以用同一个模型表示,训练时只需要以一定概率将条件置空即可。
推理时,最终结果可以由条件生成和无条件生成的线性外推获得,生成效果可以引导系数可以调节,控制生成样本的逼真性和多样性的平衡。
“无分类器引导”(Classifier-free guidance)是一种在扩散模型中使用的方法,它可以在不需要分类器的情况下提供与分类器引导相同的效果。具体来说,这种方法涉及训练两个模型:一个无条件的去噪扩散模型 pθ(z),和一个有条件模型 pθ(z|c)。
-
无条件去噪扩散模型:这个模型通过评分估计器 θ(zλ) 进行参数化。对于该模型,我们可以简单地为类标识符 c 输入一个空标记∅来预测得分,即 θ(zλ) = θ(zλ, c = ∅)。
-
有条件模型:这个模型通过θ(zλ, c)进行参数化。
这两个模型都用同一神经网络进行参数化,并且同时训练。共同训练是通过随机将 c 设置为具有某些概率 puncond 的无条件类标识符∅实现的。虽然也可以选择独立训练每个单独的模型,但联合训练更简单、不会复杂化训练流程,并且不会增加总体参数数量。
采样过程则使用了有条件和无条件得分估计值之间的线性组合,w 是权重,这意味着生成新数据时会考虑到两者之间平衡关系。