type
status
date
slug
summary
tags
category
icon
password
Website: diffusion-classifier.github.io/
背景
最近,出现了一系列大规模的文生图模型,它们极大地增强了我们通过文字生成图片的能力。这些模型可以根据各种提示生成逼真的图片,展现出惊人的综合创作能力。到目前为止,几乎所有的应用都只关注了模型的生成功能,但实际上,这些模型还能提供条件密度估计,这对于处理图像生成之外的任务也很有用。
本篇文章指出类似
stable diffusion
这样的大规模文本转图像模型所计算出的密度估计,可以被用来进行“零样本分类” (zero-shot classification),而不需要额外的训练。方法大意
diffusion model的背景知识
从前面diffusions系列文章中我们知道,
diffuison model
的去噪过程是一个马尔可夫过程即:
服从正态分布, 其与无关,可记作
当给定条件时,采样过程可以表述为
由于涉及到积分,直接最大化很难求解,因此
diffusion model
的训练采用了最小化对数似然的证据下界(Evidence Lower Bound, ELBO
)。通过推导得出:最大化相当于优化下界【预测噪声和实际添加噪声差异的期望越小越好】。详细过程可参考文献[1]中的式32-45, 86-92如何将diffusion model应用到zero-shot classification
对于一个分类模型,给定输入,模型输出类别的概率向量, 即,为了用
diffusion model
求解,需要用到贝叶斯公式不妨假设各个类别的先验概率相同,有
式5可写作
根据式4,我们知道, 带入上式得
由此我们推导出了基于
diffusion model
的classifier。如何求解
我们看到求式7的关键是不同类别下,预测的噪声和实际噪声差异的期望。这里面有两个随机变量,分别是,其中。可以用蒙特卡诺采样对上述期望进行估计,假定依概率对上述两个随机变量采样次,得到,可将式7转化为
当我们求出每一个类别下的,值最大的就是预测出来的类别。
细心的同学发现了,为了准确的估计期望,需要用蒙特卡诺方法采样较多的样本,一个样本意味着需要用
diffusion model
推理一次得到预测的噪声,当样本量较大时,推理时间会非常大。总的推理次数为 , 为蒙特卡诺的采样的样本数目,
为类别数目,
。在实践中为了减少推理速度,作者修改了对, 这两个随机变量的采样逻辑,也将上面的one-stage分类的范式转化为two-stage。感兴趣的读者可以阅读原文。本文简单介绍核心思路:
对于第一个提速方案:修改采样逻辑。主要基于实验观测,如下图。
(注:横轴表示的采样数目。
Uniform
, 0, 500, 1000
)对于第二个提速方案:作者将划分了成两个集合, 首先在中根据式7估计的类别。保留概率最高的个类别。随后在集合上对前个可能的类别继续用式7计算概率。此时的计算量从变为。
实验
作者对比同为zero-shot classifier的
CLIP
,结果如下。zero-shot的能力以及接近了基于renset50
的CLIP
。但与openCLIP
ViT-H/14
还有较大差距。其它更多的实验对比请见原始论文。参考文献
[1] Luo, Calvin. "Understanding diffusion models: A unified perspective." arXiv preprint arXiv:2208.11970 (2022).
[2] Li, Alexander C., et al. "Your diffusion model is secretly a zero-shot classifier." arXiv preprint arXiv:2303.16203 (2023).
- 作者:莫叶何竹🍀
- 链接:http://www.myhz0606.com/article/diffusion_classifier
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章