图片速览 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,一经查实,立即删除!

相关文章

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

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

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

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

你了解Redis中的跳跃表吗?

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

oracle与gbase8s迁移数据类型对照

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

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

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

函数torch.bincount( )的用法

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

机器学习——支持向量机

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

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。 工作原…

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi

清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时&#xff0c;可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令&#xff0c;若可乐近在眼前&#xff0c;下意识的反应会是迅速去拿&#xff1b;而当没看到可乐时&#xff0c;人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的…

软件测试人才稀缺!揭秘为什么你找不到软件测试工作?

最近后台很多粉丝给我留言&#xff1a; 2023年软件测试已经崩盘了吗&#xff0c;为什么都找不到工作了&#xff1f; 确实&#xff0c;今年经济大环境不好&#xff0c;企业也都在降本增效&#xff0c;如果技术能力还在被应届生竞争岗位的阶段&#xff0c;只会越来越难。 找不…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 在二维和三维空间中,我们可以采用四叉树(Quad tree)和八叉树(Octree)这两种特定的数据结构来处理空间分割。这些树形结构可以看作是K-d树在不同维度下的扩展。…

SpringBoot的多环境开发

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

JS - 闭包(Closure)

目录 1&#xff0c;什么是闭包2&#xff0c;创建闭包3&#xff0c;如何销毁闭包2.1&#xff0c;自动创建的闭包2.2&#xff0c;手动创建的闭包 4&#xff0c;闭包的特点和使用场景3.1&#xff0c;特点3.2&#xff0c;使用场景避免全局变量污染函数柯里化 5&#xff0c;闭包经典…

【高级网络程序设计】Block1总结

这一个Block分为四个部分&#xff0c;第一部分是Introduction to Threads and Concurrency &#xff0c;第二部分是Interruptting and Terminating a Thread&#xff0c;第三部分是Keep Threads safety&#xff1a;the volatile variable and locks&#xff0c;第四部分是Beyon…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

提升研究效率,尽在EndNote 21 forMac/win!

在科研领域&#xff0c;文献管理是一项至关重要的任务。研究人员需要快速而准确地收集、整理和引用大量的文献资料&#xff0c;以支持他们的研究工作。而EndNote 21作为一款功能强大的文献管理软件&#xff0c;能够帮助研究人员高效地管理文献资源&#xff0c;提升研究工作的效…

【Linux基础】1. Linux 启动过程

文章目录 【 1. 内核的引导 】【 2. 运行init 】 运行级别 【 3. 系统初始化 】【 4. 建立终端 】【 5. 用户登录系统 】【 6. 图形模式与文字模式的切换方式 】【 7. Linux关机 】 Linux系统的启动过程分为 5个阶段&#xff1a; &#xff08;1&#xff09;内核的引导。 &#…

Java中线程状态的描述

多线程-基础方法的认识 截止目前线程的复习 Thread 类 创建Thread类的方法 继承Thread类,重写run方法实现Runnable接口,重写run方法使用匿名内部类继承Thread类,重写run方法使用匿名内部类实现Runnable接口,重写run方法使用Lambda表达式 run方法中的所有的代码是当前线程对…