大数跨境
0
0

用于零样本 OOD 检测的 CLIPN:教会CLIP说“不”,识别未知样本不在话下!

用于零样本 OOD 检测的 CLIPN:教会CLIP说“不”,识别未知样本不在话下! 极市平台
2023-09-01
2
↑ 点击蓝字 关注极市平台
作者丨米格
编辑丨极市平台
本文首发于极市平台,转载须经授权并注明来源插入公众号名片。

极市导读

 

作者提出了一种新颖的CLIP架构,名为CLIPN,通过可学习的“否定”提示和“否定”文本编码器,为CLIP增加了“否定”的逻辑。并且提出了图像-文本二元相反损失和文本语义相反损失,教会CLIPN将图像与“否定”提示进行匹配,从而学会识别未知样本 >>关注公众号,后台回复「极市干货」即可获取最新整理CV知识内容合集

论文链接:https://arxiv.org/pdf/2308.12213v2.pdf

简介

分布外泛化(Out-of-distribution,OOD)检测指的是在内分布(in-distribution,ID)数据集上训练模型,以此来判断输入图像是否来自未知类。多年来人们设计了各种基于CNN或transformers的OOD检测方法。然而作者意识到强大的文本图像预训练模型可以很好的胜任这个任务。

作者提出了一种新颖的方法,作者将其命名为 CLIP saying “no”(CLIPN),它赋予了CLIP谨慎回答的能力。作者的动机是希望通过给CLIP提供积极的语义提示和否定的语义提示,以此让CLIP拥有区分OOD和ID样本的能力。具体来说,作者设计了一个可学习的"否定"提示及一个针对"否定"的文本编码器,以捕捉图像中的否定语义。然后,作者提出了两种损失函数:image-text binary opposite losstext semantic-opposite loss,利用它们训练CLIPN将图像与"否定"提示联系起来,从而识别未知样本。

此外,作者还提出了两种不需要阈值的推理算法,利用"否定"提示和文本编码器中的否定语义进行OOD检测。CLIPN在9个基准数据集(3个ID数据集和6个OOD数据集)上进行了OOD检测任务实验。结果显示,基于ViT-B-16的CLIPN在零样本OOD检测上的AUROC和FPR95效果比7种常用算法至少好2.34%和11.64%。作者的CLIPN可以作为有效利用CLIP在下游OOD任务中的坚实基础。

Introduction

众所周知,大部分深度学习模型都是在完全封闭的条件下进行训练的,也就是说,所有遇到的类别都属于内部分布(ID)类别。然而,当这些模型在实际应用中部署时,往往会出现泛化能力差和性能不理想的问题。这种现象部分原因是因为现实世界中存在大量的未见类别,由于在训练阶段并没有明确地看到过它们,因此很难检测和识别。

针对此,人们提出了分布外泛化(Out-of-Distribution,OOD)检测任务,并迅速引起了研究人员的广泛关注。简单来说,OOD检测任务旨在使模型能够区分输入图像是否来自未知类别。主流的OOD检测方法之一是学习特定于内部分布的特征和分类器,然后设计得分函数,衡量输入数据与内部分布类别的相似程度,即通过ID程度(或OOD程度,相反的情况)来衡量。例如,MSP、MaxLogit、energy-based和gradient-based等方法都广泛应用于衡量ID分数。

总结起来,这些方法的关键思想就是向模型传授ID知识,然后通过模型的回答(得分)来检测不匹配的情况。而作者分析了上述方法在下图的情况中有可能受到很大影响:下图中,绿色星星代表一些容易区分的OOD样本,因为它们与所有ID类别相对较远,自然具有高熵、均匀概率、低logit、低能量等特点。但是难以区分的OOD样本(如下图中的棕色星星)更常见且更加困难。这些样本相对接近某个ID类别,但与其他类别相距较远,导致ID程度较高。因此,现有的方法如上所述无法准确识别这类样本。

最近,一些方法通过利用由CLIP学习到的可泛化表示来解决难以区分的OOD样本问题,CLIP是一个基于大规模数据集进行训练的开放世界语言-视觉模型。而这个任务自然地扩展到了零样本OOD检测(Zero-Shot OOD Detection),它利用语言-视觉模型在没有在内部分布数据集上进行训练的情况下来检测OOD数据。ZOC使用额外的文本编码器生成一些不包含在内部分布类别中的候选OOD类别。然而,当面对包含大量内部分布类别的数据集(如ImageNet-1K)时,它变得不灵活且不可靠,难以扩展。MCM利用CLIP的文本编码器组件和ID类别提示来获得更具代表性和信息丰富的ID分类器,从而提高ID程度估计的准确性。然而,该方法仍未解决处理难以区分的OOD样本的挑战,并且性能有限。

不同于ZOC和MCM等方法,作者尝试利用CLIP中的“开放世界”知识,直接辨别一些难以区分的OOD样本,即使它们的ID程度很高。如下图(a)中的玩具示例所示,给定一张狗的图像和一张猫的图像,作者设计了四组提示。其中两组包含有关狗或猫的照片的类别提示,而另外两组使用“否定”提示:一张没有狗或猫的照片。作者在CLIP上进行了实验,将图像与四个提示进行匹配。不幸的是,结果表明CLIP无法准确匹配图像,这意味着它缺乏“否定”的逻辑;如下图(b)所示。

为了在CLIP中增强“否定”的逻辑,作者提出了一种新的CLIP架构,称为CLIP saying “no”(CLIPN)。它从OOD检测方面对CLIP进行了三方面的升级。

(1)架构:作者向CLIP中添加了新的“否定”提示和一个“否定”文本编码器。作者的可学习“否定”提示在提示中融合了否定语义,补充了原始CLIP的提示。此外,作者的“否定”文本编码器捕捉图像的相应否定语义,使得CLIP能够表达“否定”的含义。

(2)训练损失:作者进一步提出了两种损失函数。第一种是图像-文本二元相反损失,使得图像特征与正确的“否定”提示特征匹配。换句话说,它可以教会CLIP何时说“no”。第二种是文本语义相反损失,使得标准提示和“否定”提示在嵌入空间中相互远离。换句话说,它可以教会CLIP理解“否定”提示的含义。

(3)无阈值推理算法:在对CLIPN进行训练后,作者设计了两种无阈值算法:竞争获胜和Agreeing-to-differ。竞争获胜的目标是从标准和“否定”文本编码器中选择最可信的概率作为最终预测结果,而Agreeing-to-differ会通过考虑标准和“否定”文本编码器的预测来生成OOD类别的额外概率。对9个基准数据集(3个ID数据集和6个OOD数据集)进行的实验结果表明,作者的CLIPN在大规模和小规模OOD检测任务上均优于现有方法。

总而言之,作者的贡献有四个方面:

  • 作者提出了一种新颖的CLIP架构,名为CLIPN,通过可学习的“否定”提示和“否定”文本编码器,为CLIP增加了“否定”的逻辑。
  • 作者提出了图像-文本二元相反损失和文本语义相反损失,教会CLIPN将图像与“否定”提示进行匹配,从而学会识别未知样本。
  • 作者提出了两种新颖的无阈值推理算法(竞争获胜和Agreeing-to-differ),通过使用否定语义进行OOD检测。
  • 实验结果表明作者的CLIPN在大规模和小规模OOD检测任务中优于大多数现有的OOD检测算法。

Method

1. Preliminary

借助大量的训练数据和大型模型,CLIP在零样本的超出分布分类任务中展现了出色的性能。因此,探索CLIP在零样本的超出分布检测任务上的潜力是值得的。参考现有的基于CLIP的零样本任务,作者简要回顾如何执行零样本超出分布检测。CLIP的图像编码器用于提取图像特征。虽然CLIP中没有分类器,但作者可以使用ID类别的名称构建文本输入(例如”一张狗的照片“)。然后,从文本编码器获取文本特征作为类别权重,其功能上类似于分类器。最后,以最大softmax概率(MSP)算法为例,可以根据图像特征和类别权重计算MSP。如果MSP小于预定义的阈值,则将图像视为超出分布,反之亦然。

2. Overview of CLIPN

在本文中,作者定制了一种新的CLIP架构,名为CLIP saying no(CLIPN),以挖掘原始CLIP中超出分布检测的潜力。

架构:如下图所示,作者的CLIPN基于预训练的CLIP构建,由三个模块组成:

(1)图像编码器 : CLIPN的图像编码器 与预训练的CLIP的图像编码器具有相同的结构和参数。在本文中,作者分别使用ViT-B和ViT-L来实例化 。默认情况下, 的参数是冻结的。

(2)文本编码器 : CLIPN的文本编码器 与预训练的CLIP的文本编码器具有相同的结构和参数。 的输入也保持不变,即描述一张图像的标准文本(例如,“一张带有/关于/...的照片”)。

(3)“否定”文本编码器 : 它是通过预训练的CLIP的文本编码器进行初始化的。但与 的区别在于,作者将 设置为可学习的。 的输入是描述具有相反语义的一张图像的否定文本。

此外,作者从OpenCLIP中获取了预训练的CLIP。在本文中,作者使用了两个预训练模型,分别是基于ViT-B和ViT-L的CLIP,它们是使用Laion-2B数据集进行预训练的。

Pre-training CLIPN:显然, 的输入文本在某个输入图像的语义上是相反的,就像ID和OOD的相反属性一样。为了教导CLIPN区分哪种语义与图像正确匹配,作者首先设计了一种新颖的“否定”提示策略,将具有负逻辑的文本描述引入到 中。基于上述相反语义的思想,作者提出了图像-文本二元相反损失和文本语义相反损失,让CLIPN能够明确学习如何在两种文本之间何时以及如何与图像对齐。

推理阶段:在推理阶段,作者进一步提出了两种新颖的无阈值算法来确定输入图像是否为OOD。第一种算法被称为Competing-to-win算法。其总结如下:作者首先使用标准文本和输入图像来预测ID类别的ID概率。然后使用具有最高概率的类别的“no”文本来确定ID预测是否正确。第二种算法被称为一致而不同算法。作者使用“no”文本来缩小ID概率,并生成OOD类别的新概率。如果OOD概率最高,则判断输入图像为OOD。

3. Prompt Design

作者在无监督预训练阶段提出了一种新的提示策略:可学习的“否定”提示集合。在原始的CLIP中,图像以正向逻辑进行描述,即文本的内容在语义上与图像的内容一致。作者尝试增加一种负向逻辑,即文本的内容在语义上与图像的内容相反。为此,作者定义了一系列“否定”提示来补充原始文本。假设对于一张图像 ,其文本描述为 ,作者将“否定”提示集合定义为 = a photo without { }'', a photo not appearing { }'', ..., a photo not containing { }'' , 其中有 人工设计的“否定”提示。这个手工设计的“否定”提示集合是基于Clip-adapter构建的,并通过添加负面关键词进行修改。在训练过程中,给定输入文本 ,作者随机从 中选择一个“否定”提示来生成带有“否定”逻辑的文本 。接下来,作者使用一个令牌嵌入层 将“否定”文本嵌入为一组令牌特征向量 ,这些特征向量将作为“否定”文本编码器的输入令牌。此外,作者设计了可学习的“否定”提示。作者用一些可学习的参数 替换了负面关键词(例如“一张没有...”),这些参数表示负面语义的令牌特征,并与 的令牌特征在特征空间中进行组合。

4. Training Loss Design

在训练阶段,作者将 个输入对定义为一个小批量 ,其中 是第 个输入对,包括一张图像、一个标准文本和一个“否定”文本。 是用于预训练CLIPN的数据集,例如CC12M。然后可以计算图像特征 ,文本特征 和“否定”文本特征 ,如下所示:

其中 是特征维度。所有特征都通过 归一化进行标准化操作。

作者通过两个损失函数来训练CLIPN。

图像-文本二分类相反损失(ITBO)

该损失函数帮助模型将图像特征与正确的“否定”文本特征进行匹配。具体而言,作者定义了图像和“否定”文本之间的两种关系:(1)匹配但不相关(即“否定”文本不是错误描述,但与图像在语义上不相关);(2)相反匹配(即“否定”文本与图像在语义上相反),如图所示。因此,第 张图像和第 个“否定”文本之间的匹配度 可以定义如下:

其中 表示它们是相反匹配, 表示它们是匹配但不相关的。然后,作者通过匹配度引导CLIPN在特征空间中匹配图像和“否定”文本。损失函数 的公式如下:

其中 表示第 张图像和第 个“否定”文本之间的匹配概率,计算公式如下:

其中 表示两个向量的内积, 是一个可学习的温度参数。

文本语义相反损失(TSO)

显然,“否定”提示使得 语义上相反。因此,在特征空间中, 也应该相距较远。为此,定义文本语义相反损失 如下:

其中 距离函数。当所有的 对在特征空间中嵌入到相反方向时, 将减小到

一个小批量中的总损失通过将上述两个损失值相加来计算:

5. Inference algorithm of CLIPN

当将CLIPN部署到测试数据集 上执行零样本OOD检测任务时,作者只需要所有类别的名称。对于 个ID类别的任务,如下图所示,将每个类别的名称输入标准文本和“no”文本,然后输入到 中。采用提示集成策略,通过将所有提示的文本特征相加来生成文本特征。然后,ID类别的概率可以表示为:

其中 是类别的数量, 表示输入图像 属于第 个类别的预测概率。接下来,作者提出了两种新颖的无阈值算法来确定 是否为OOD。

Competing-to-win算法(CTW) 第一个算法名为Competing-to-win(CTW)。受到最大化分数原则(MSP)的启发,作者找到具有最大ID概率的类别。然后,作者比较 (即 )的值,以确定 是否为OOD(或ID)。上述过程可以表示如下:

其中 表示具有最高ID概率的类别, 是ID-ness, 是一个指示器,当它等于1时表示 是一个ID图像,否则是OOD。

Agreeing-to-differ算法(ATD) 然而,上述策略稍显激进。在某些难以区分的情况下会失败(例如,最大ID概率与其他概率之间的差异不显著)。为了使决策更加灵活,作者提出了另一个算法,称为Agreeing-to-differ(ATD),它考虑了所有ID概率和 。它可以将 类概率重新定义为 类概率。将创建一个未知类别,并将其概率定义为:

OOD样本可以检测为:

如果未知类别 的概率大于所有ID概率,则将输入图像检测为OOD。否则,确定为ID。

讨论

在这项工作中,作者提出了一种名为CLIPN的新框架,通过教CLIP表达“no”来进行OOD检测。关键的洞察力是通过积极语义提示和否定语义提示,赋予CLIP区分OOD和ID样本的能力。具体而言,作者提出了新的“no”提示和文本编码器。此外,作者提出了两种训练损失:图像-文本二元对立损失和文本语义对立损失。这些损失使CLIP能够识别应该以“no”回应的场景,并理解“no”的含义。此外,作者提出了两种无阈值推理算法:Competing-to-win和Agreeing-to-differ。广泛的实验结果证明了作者方法的有效性。作者方法的一个局限性是缺乏对其在OOD分割或检测任务中扩展性的明确证明。作者方法的另一个局限性是对其在医学和卫星图像等专业数据集中进行OOD分类的有效性存在不确定性。这主要是因为作者的模型基于CLIP,其在专业数据集中的有效性尚未充分探索。

公众号后台回复“数据集”获取100+深度学习各方向资源整理

极市干货

技术专栏:多模态大模型超详细解读专栏搞懂Tranformer系列ICCV2023论文解读极市直播
极视角动态欢迎高校师生申报极视角2023年教育部产学合作协同育人项目新视野+智慧脑,「无人机+AI」成为道路智能巡检好帮手!
技术综述:四万字详解Neural ODE:用神经网络去刻画非离散的状态变化transformer的细节到底是怎么样的?Transformer 连环18问!

极市平台签约作者#

米格

武汉大学计算机学院本科生

研究领域:少样本,零样本学习,以及开放世界中的视觉问题。



投稿方式:
添加小编微信Fengcall(微信号:fengcall19),备注:姓名-投稿
△长按添加极市平台小编


点击阅读原文进入CV社区

收获更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读919
粉丝0
内容8.2k