图片速览 OOD用于零样本 OOD 检测的 CLIPN:教 CLIP 说不

PAPERCODE
https://arxiv.org/pdf/2308.12213v2.pdfhttps://github.com/xmed-lab/clipn

文章创新 以往由CLIP驱动的零样本OOD检测方法,只需要ID的类名,受到的关注较少。 本文提出了一种新的方法,即CLIP说“不”(CLIPN),它赋予了CLIP中说“不”的逻辑。

主要动机 我们的主要动机是使 CLIP 能够使用积极语义提示和否定语义提示来区分 OOD 和 ID 样本。

实现方法 具体来说,我们设计了一种新颖的可学习的“不”提示和“不”文本编码器,以捕获图像中的否定语义。随后,我们引入了两个损失函数:图像文本二进制相反的损失和文本语义相反的损失,我们用它来教导 CLIPN 将图像与“否”提示相关联,从而使其能够识别未知样本。此外,我们提出了两种无阈值推理算法,利用来自“no”提示和文本编码器的否定语义来执行 OOD 检测。

实验结果 在9个基准数据集(3个ID数据集和6个OOD数据集)上用于OOD检测任务的实验结果表明,基于ViT-B-16的CLIPN在ImageNet-1K上零样本OOD检测方面,在AUROC和FPR95方面比7种常用算法至少高出2.34%和11.64%。

        标准OOD检测算法和所提出的CLIPN之间的特征空间的玩具比较图。我们的方法涉及一个“否”逻辑,它提供了一个新的特征空间(黄色区域)来直接识别 OOD 样本。定性实验可视化如图所示。

在这里插入图片描述

        用于确定原始 CLIP 缺少“否”逻辑的示例插图。如图(a)所示,给定一个狗图像和一个猫图像,我们设计了四组提示。两组包含带有(with,of,having)狗(或猫)的照片的类提示,而另外两组使用“no()”提示的照片。我们在 CLIP 上进行了一项实验,将图像与四个提示相匹配。不幸的是,结果显示 CLIP 无法准确匹配图像,这意味着它缺乏“无”逻辑;

在这里插入图片描述

        CLIPN 的推理流水线。它由三个网络组成:图像编码器、文本编码器和带有可学习的“no”提示 ρ 的“no”文本编码器。在推理阶段,使用两个文本编码器共同确定结果。这里的 ID 类是牛、猫、鱼,OOD 类是狗。

        (1)图像编码器 φ φ φ: CLIPN 的图像编码器φ与预训练 CLIP 的图像编码器保持相同的结构和参数。(2)文本编码器 ψ ψ ψ: CLIPN的文本编码器ψ与预训练的CLIP的文本编码器保持相同的结构和参数。(3)“no”文本编码器 ψ " n o " ψ^{"no"} ψ"no": 由预训练的CLIP的文本编码器初始化。但与ψ的区别在于我们设置了 ψ " n o " ψ^{"no"} ψ"no"可学习。

在这里插入图片描述

在这里插入图片描述

        匹配 x 和 t " n o " t^{"no"} t"no" 的图示。绿色和粉红色框分别表示标准文本 t 和“否”文本 t " n o " t^{"no"} t"no" m ( x i , t j " n o " ) = 1 m(x_i, t_j^{"no"}) = 1 m(xitj"no")=1 表示它们匹配但不相关(即,“no”文本不是错误的描述,但在语义上无关紧要)。 m ( x i , t j " n o " ) = 0 m(x_i, t_j^{"no"}) =0 m(xitj"no")=0 表示它们是反向匹配的(即,“no”文本与图像具有相反的语义)。

在这里插入图片描述
Image-Text Binary-Opposite Loss (ITBO) 此损失函数可帮助模型将图像特征与正确的“否”文本特征进行匹配。第 i 个图像和第 j 个“no”文本之间的匹配度可以定义如下:

在这里插入图片描述
        其中 m(x, t) = 0 表示它们反向匹配,m(x, t) = 1 表示它们匹配但不相关。然后我们驱动CLIPN 来匹配图像和no文本,以匹配性为指导。损失表述为:

在这里插入图片描述
Text Semantic-Opposite Loss (TSO) 在特征空间中,g也应该彼此相距较远:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nlohmann json:通过json_pointer读取设置object/array

通过json_pointer可以不必一层一层的读取或设置json值,可以直接完成。 其实json类似一个树,可以通过从根节点/开始,指定每一个节点及叶子节点的名字,然后直接访问json数据: #include <iostream> #include <nlohmann/json.hpp> using namespace std; using j…

计算机基础,以及实施运维工程师介绍

目录 一.实施&#xff0c;运维工程师介绍 1.什么是实施工程师&#xff1f; 实施工程师职责 2.什么是运维工程师&#xff1f; 运维工程师职责 3.实施运维需要的技术 数据库 操作系统 网络 服务器 软件 硬件 网络 二.计算机介绍 CPU 存储器 io 总线 主板 三.操…

x3::forward_ast

在 Boost Spirit X3 中&#xff0c;x3::forward_ast 是一个转换器&#xff08;transformer&#xff09;&#xff0c;用于将解析器&#xff08;parser&#xff09;的结果转发给用户自定义的结构。 在 Spirit X3 中&#xff0c;解析器&#xff08;parser&#xff09;可以生成一个…

linux dd命令,快速占用服务器磁盘

dd 是一个在 Linux 系统中用于复制文件和设备的命令。它可以用于创建镜像、备份和恢复数据、磁盘克隆等任务。dd 命令非常强大&#xff0c;但也需要小心使用&#xff0c;因为它可以对磁盘进行直接读写操作&#xff0c;如果使用不当可能导致数据丢失。 下面是一些常见的 dd 命令…

计算机毕业设计—基于Koa+vue的高校宿舍管理系统宿舍可视化系统

项目介绍 项目背景 随着科技的发展&#xff0c;智能化管理越来越重要。大学生在宿舍的时间超过了1/3&#xff0c;因此良好的宿舍管理对学生的生活和学习极为关键。学生宿舍管理系统能够合理安排新生分配宿舍&#xff0c;不浪费公共资源&#xff0c;减轻学校管理压力&#xff…

“image.save(image_path)“和“cv2.imwrite(image_path , image)”的区别

两者是保存图像的两种不同方式&#xff0c;分别适用于不同的图像库。 image.save(image_path)是PIL&#xff08;Python Imaging Library&#xff09;库中用于保存图像的方法。它需要将图像对象&#xff08;Image对象&#xff09;保存到指定的文件路径中。PIL库支持多种图像格式…

SQL中 WITH AS 的使用方法

一&#xff0e;WITH AS的含义 WITH AS短语&#xff0c;也叫做子查询部分&#xff08;subquery factoring&#xff09;&#xff0c;可以定义一个SQL片断&#xff0c;该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高&#xff0c;也可以在UNION ALL的不同部分&#xff…

你了解Redis中的跳跃表吗?

跳跃表的基本内容&#xff1a; 对于一个有序序列&#xff0c;链表相对于数组来说&#xff0c;删除和插入的效率要快很多&#xff0c;只需要改变指针的指向&#xff0c;但是在查找的时候&#xff0c;数组就要更占优势一些&#xff0c;可以随机访问&#xff0c;然而链表需要从头…

第51次中国互联网络发展状况统计报告

3月2日&#xff0c;中国互联网络信息中心&#xff08;CNNIC&#xff09;在京发布第51次《中国互联网络发展状况统计报告》&#xff08;以下简称&#xff1a;《报告》&#xff09;。《报告》显示&#xff0c;截至2022年12月&#xff0c;我国网民规模达10.67亿&#xff0c;较2021…

SGML .HTML 、XML和XHTML的区别?

SGML&#xff08;Standard Generalized Markup Language&#xff09;是一种标记语言的元语言&#xff0c;它定义了用于创建其他标记语言的规范。 HTML&#xff08;Hypertext Markup Language&#xff09;是基于SGML的标记语言&#xff0c;用于创建网页。 XML&#xff08;eXte…

oracle与gbase8s迁移数据类型对照

声明&#xff1a;以下为笔者阅读gbase官方文档和oracle官方文档的理解&#xff0c;如有错误&#xff0c;敬请指正。oracle与gbase8s迁移数据类型对照及举例说明 最终结论&#xff1a;oracle与gbase8s数据类型对应关系关于单精度与双精度的区别关于定点与浮点定义的区别精度的定…

动态规划 - 1137.第N个泰波那契数(C#和C实现)

动态规划 - 1137.第N个泰波那契数(C#和C实现) 题目描述 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1&#xff0c;且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2。给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入&#xff1a;n 4 输出…

[报错已解决]得到一个不期待的值added_cond_kwargs,图生图和文生图的pipline是不同的

报错内容 得到一个不期待的值added_cond_kwargs 问题原因 对照下图&#xff0c;做测试unet_2d_condition.py里面UNet2dConditionModel类的forward输入 而StableDiffusionPipline&#xff08;文生图t2i&#xff09;的self.unet输入里面多了一个added_cond_kwargs需要写 从下图可…

函数torch.bincount( )的用法

torch.bincount()函数是PyTorch中的一个函数&#xff0c;用于计算一维整数张量中每个非负整数值出现的频次 函数的用法 &#xff1a; torch.bincount(input, weightsNone, minlength0) → Tensor 参数&#xff1a; input&#xff1a;输入的一维整数张量weights&#xff08;…

JsonNode、ObjectNode和ArrayNode

我个人不喜欢fastjson&#xff0c;但是项目中很多地方用到json字符串转换对象但又不想创建pojo 所以使用jackson的JsonNode、ObjectNode和ArrayNode就非常好用&#xff0c;万能对象&#xff0c;这三 个对象是非常全面的&#xff0c;感兴趣的可以看下源码 JsonNode 只读&#x…

机器学习——支持向量机

目录 一、基于最大间隔分隔数据 二、寻找最大间隔 1. 最大间隔 2. 拉格朗日乘子法 3. 对偶问题 三、SMO高效优化算法 四、软间隔 五、SMO算法实现 1. 简化版SMO算法 2. 完整版SMO算法 3. 可视化决策结果 六、核函数 1. 线性不可分——高维可分 2. 核函数 …

【大数据面试】MapReduce常见问题与答案

目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…

Autosar通信实战系列08-Com模块相关开发问题总结

本文框架 前言1. Com模块重要接口回顾2. 如何让通过Com模块配置改善发送报文周期不准问题?3. UDS 0x28服务关闭或打开APP报文与Com模块的交互?4. 如何在Com层实现接收报文的超时,ARC及信号有效性监控?4.1 信号超时监控的配置4.2 报文ARC校验4.3 报文信号值有效性校验前言 …

linux命令绕过

WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux&#xff1a; && || & | ; # &&绕过 [rootlocalhost ~]# echo 123&& cat /etc/passwd 123 root:…

拾壹[11],缩放形状匹配,函数CreateScaledShapeModel/FindScaledShapeModel

函数CreateScaledShapeModel 函数功能 创建可缩放比例的形状匹配模板 C形式 LIntExport void CreateScaledShapeModel( const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& …