摘要
分布外检测(OOD Detection)的研究对于开放世界(open-world)学习非常重要。受大模型(CLIP)启发,部分工作匹配图像特征和提示来实现文本-图像特征之间的相似性。
现有工作难以处理具有与已知类别相似特征的OOD样本,直接的方法是引入负面提示以实现不相似性匹配,通过判断特定特征是否缺失来评估图像是否已知。然而实验结果表明,使用类似"not a photo of a"的负面提示(或者为所有已知类别学习一个共享非本类提示)无法捕捉能够区分OOD的特征,其中原因可能是负面特征的多样性(可能有大量不同的特征均不属于已知类别)
方法:提出为每个类别学习一组负面提示。学习的正面提示(适用于所有类别)和负面提示(针对每个类别)同时用于在特征空间中测量相似性和不相似性,从而更准确地检测OOD样本
Intro.
核心问题:OOD检测任务需要同时处理已知类分类与分布外检测,然而进行ID分类的特征与区分OOD的特征不同。作者认为分类需要学习的特征相对OOD检测更少
一种有效的解决方案涉及利用像CLIP等大模型,CLIP可以为所有类别生成独特的图像特征,包括ID和OOD。***如何利用CLIP提取的特征进行OOD检测?***现有方法通过匹配图像特征与ID类别的文本特征之间的相似性来实现。手工制作或学习的提示,如“a photo of a [class]”输入文本编码器以计算文本特征。这些文本特征与图像特征之间的余弦相似度决定了样本属于“[class]”的可能性。
局限:完全依赖于ID类别的正面特征。当给定的老虎图像输入,而提供“a photo of a cat”作为提示时,CLIP会分配高分,因为老虎与猫有相似的图像特征,如耳朵,但忽略了将老虎与猫区分开来的独特特征。
为解决这一挑战提出构建负面提示,例如“not a photo of a”。直觉是利用“not a photo of a”的负面提示来实现不相似性匹配。例如“not a photo of a cat”,通过这个提示,目标是引导CLIP的注意力转向图像中与猫无关的特征(即负面特征)。**“不是一张猫的照片”的描述对于猫来说是不正确的提示,但对于老虎来说是准确的。**然而,构造有效的负面提示具有一定的挑战性。实验结果表明,简单地将“not a photo of a cat”作为负面提示使用,一张猫的照片的匹配分数要高于一张老虎的照片。
Contributions:
- 提出使用负面提示
- CLIP本身对“not”的理解有限,提升其能力
- 实验验证有效性
Method
由于CLIP对“not”在句中出现的处理相对无效,使用原始的“this is not a photo of”的负面提示并不能产生预期的效果。本方法正面提示被设计为在各个类别之间共享,而负面提示被设计为特定于每个类别。
Negative Classifier
许多OOD检测方法通过分析神经网络在ID样本上的预测属性来识别OOD样本(以传统方式训练的神经网络被称为正分类器)。这些方法的性能在很大程度上依赖于训练好的模型提取特征的质量。提出为每个ID类别学习一个负分类器来挖掘负特征。对于第 c c c 个负分类器,它需要挖掘类别 l c l_c lc 样本没有但所有其他类别的样本都有的一般负特征。因此,第 c c c 个负分类器将对来自类别 l c l_c lc 的样本产生低激活,并对其他类别产生高激活。通过学习额外的负分类器,模型能够基于不同特征从两个方面决策
Negative prompt learning
根据Fig.5的描述,负提示应该满足以下两个属性:
- 类别 l c l_c lc 负提示的表示 V ~ ( l c ) = [ v 1 , v 2 , . . . , v L , w c ] \tilde{\boldsymbol{V}}(l_c)=[\boldsymbol{v}_1, \boldsymbol{v}_2, ..., \boldsymbol{v}_L,\boldsymbol{w}_c] V~(lc)=[v1,v2,...,vL,wc] 应在对应类别的图片上给出低匹配度
- 由于“this is not a photo of a [CLASS]”对非 l c l_c lc 类的图像都是正确描述,因此对除了 l c l_c lc 类的图像都应该产生高匹配度
损失函数的设计参考 CoCoOp:
**正面提示学习中,一个类的大多数正面特征都由类名传递,而学习的正面提示仅用作校准,因此为所有类学习一个统一的正面提示。**然而,在负面提示学习中,一个类的负面特征不能由类名传递,而应包含在学习的负面提示中,并且一个类的负面特征通常是多样的。对于每个类,学习一组负面提示并鼓励学习到的负面提示通过以下语义正交损失具有差异性:
打分函数在最大的正面提示结果与最小的负面提示之间作差: