论文研读——《Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition》

这是一篇关于少样本+开集识别的论文。

目录

论文简介:

 名词补充

论文的贡献

负原型生成器

确定动态阈值

共轭训练

补充:元训练过程

共轭训练过程

共轭训练损失

实验设置

总结


论文简介:

Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition

题目:用于少样本开放集识别的任务自适应负面设想

出处:CVPR 2022   CCF A

作者:Shiyuan Huang,Jiawei Ma,Guangxing Han,Shih-Fu Chang

单位:哥伦比亚大学

研究问题: 本文研究少样本开放集识别 (FSOR) 问题,旨在构建一个能够在少量标记样本的情况下快速适应新类别,并拒绝未知负样本的识别系统。

现有方法的局限性: 传统的大规模开放集识别方法由于数据限制,在 FSOR 问题中效果不佳。现有的 FSOR 方法通常将少样本闭集分类器校准为对负样本敏感,以便通过阈值进行拒绝。然而,阈值调整是一个具有挑战性的过程,因为不同的 FSOR 任务可能需要不同的拒绝能力。

本文提出了一种名为 任务自适应负类想象 (TANE) 的方法,将阈值调整集成到学习过程中。具体来说,我们通过从少样本示例生成的额外负原型来增强少样本闭集分类器。通过在负生成过程中包含少样本类相关性,我们能够学习动态拒绝边界,用于 FSOR 任务。

解释:一个任务里设置的阈值边界在当前任务中可以很好的适用,但是放在其它类型的任务中就很难适用了,本文提出了一个动态的拒绝边界,可以适用每一个任务。

 名词补充

少样本学习(FSL):旨在快速适应新的识别任务,只需非常少的标记示例。它通常使用元学习来学习在一系列任务上可迁移的知识。

开放集识别(OR):模型需要能够识别并拒绝来自未知类别的样本。 FSOR :少样本开放集识别,快速适应新类别并拒绝未知样本。

GFSOR:它要求模型能够对多样本和少样本类别进行分类,并拒绝来自未知类别的样本。GFSOR 的目标是学习一个能够适应不同类别数量和比例的开放集识别系统。

元学习(Meta Learning):通常被理解为“学会学习 (Learning-to-Learn)”,指的是在多个学习阶段改进学习算法的过程。

少样本类:只有少量样本的类别;多样本类:有大量样本的类别。

原型:每个类别由一个或多个原型表示,原型是该类别所有支持样本特征的平均值或通过其他方法计算得到的一个特征向量。

负原型:负原型代表了未知类别(即负样本)的特征,它可以用来估计拒绝阈值,判断测试样本是否属于已知类别。 FSOR任务:T = (S, Qf, Qn|Cf),由支持集、正样本、负样本构成。

关于一个任务T中的数据集划分可以表示如下:首先数据集分为已知类和未知类,从已知类中取出几张图片作为支持集去训练模型,已知类中剩下的图片被划为查询集里的正查询,而未知类的图片被划分为负查询,正查询和负查询一起组成查询集。简单点来说,支持集就像是我们已经录入的指纹,而查询集是待识别的一些指纹,查询集里的图片依次跟支持集里的对比,判断当前图片属于哪一类。

论文的贡献

我们的方法已通过针对 FSOR 和 GFSOR 问题的公共基准测试的大量实验得到验证。 总之,我们的贡献如下:

  • 本文针对小样本开集识别问题,提供了一个无阈值的解决方案,扩展了具有计算任务自适应拒绝边界的负原型的分类器。
  • 设计了一个负类原型生成器并通过元学习跨任务学习负性原型,从而使负性原型作为不同FSOR任务的任务自适应拒绝边界。
  • 提出了一种有效的新训练策略——共轭训练,以促进学习过程。

负原型生成器

文中提到的负原型生成器有MLP (多层感知器)、ATT (注意力机制)、ATT-G、SEMAN-G,使用预训练网络提取出每一类的特征并得到每类的原型Pc。

  • MLP (多层感知器): 最简单的生成器,使用单个 MLP 层处理平均类别原型。
  • ATT (注意力机制): 使用 Transformer 注意力块处理类别原型,有效地建模类别间关系。
  • ATT-G (GFSOR 专用): 基于 ATT,但结合了 GFSOR 中的许多样本类别原型,避免对许多样本类别的偏差。
  • SEMAN-G (GFSOR 专用): 基于 ATT-G,但引入了类别语义信息,进一步提升辨别力。
  • 多负原型生成器: 生成多个负原型,每个原型对应一个动态阈值,提高灵活性。

负原型生成器其实就是在普通的softmax分类器的基础上,加了一步,每个正样本类别都得到了一个原型(能代表这一类的特征值),负原型是根据这些正样本的原型推导出来的。

确定动态阈值

该负原型是通过负生成器 gn(·) 从少样本类原型 Pf 计算出来的。 当查询进入时,它能够自动从负原型计算出特定于任务的阈值:

依次比较查询数据与每类原型的相似度,并与阈值比较,如果都比阈值小则负查询 q ∈ Qn 将被拒绝。因此,拒绝边界是根据少样本类 C f 和支持实例 S 动态估计的。

SEMAN-G方法计算了每个类别的负原型,有待查询数据时,查询数据的特征会与每一个负原型计算相似度,并取最大的值作为拒绝阈值。

上述的负原型生成器已经算出了负原型,当有待查询的图片进来对比时,该图片与负原型的余弦相似度就被设置为当前的阈值,如果说跟所有已知类的相似度都小于阈值,说明现在正在对比的图片是更接近负原型的,所以应该拒绝它;如果说跟已知类的相似度大于阈值,则说明当前正在对比的图片是已知类的一种,选最高的相似度作为它的类别。

共轭训练

补充:元训练过程

假设我们有一个包含 10 个基准类别的数据集,每个类别有 1000 张图片。

元训练过程:

任务采样: 从基准数据集中随机选择 5 个类别作为当前 FSOR 任务中的 少样本类别 (Few-Shot Classes)。例如,选择类别 1, 2, 3, 4, 5。

未知来源采样: 从剩余的 5 个基准类别中选择 5 个类别作为 未知来源。例如,选择类别 6, 7, 8, 9, 10。

正查询和负查询采样:

正查询: 从每个少样本类别中随机选择 1 张图片作为支持集,并从剩余的图片中随机选择 15 张图片作为查询集。

负查询: 从每个未知来源类别中随机选择 15 张图片作为负查询集。

模型训练: 使用开放集识别损失函数来训练模型,使其能够区分正查询和负查询,并拒绝来自未知来源的样本。

共轭训练过程

选择共轭任务:两个 FSOR 任务 T1 和 T2 被称为 共轭任务对,如果 T1 中的少样本类别可以作为 T2 中的未知来源,反之亦然。

  • 任务 T1: 少样本类别 {1, 2, 3},未知来源 {4, 5, 6}
  • 任务 T2: 少样本类别 {4, 5, 6},未知来源 {1, 2, 3}

执行共轭训练:

  • 根据共轭训练的定义,选择一对共轭任务 (T1, T2)
  • 分别训练两个任务: 使用标准的 FSOR 元训练方法分别训练 T1 和 T2。
  • 计算损失函数: 使用交叉熵损失函数来计算两个任务的损失,并添加一个正则化项来鼓励模型学习类内一致性。
  • 反向传播和参数更新: 将两个任务的损失函数进行求和,然后进行反向传播和参数更新。直到模型收敛。

共轭训练损失

1. 分类损失 (LCE):优化模型对已知类别和未知类别的识别能力。

对于已知类别 (q ∈ Qf),最小化真实标签 yq 与预测类别之间的交叉熵损失。 对于未知类别 (q ∈ Qn),将真实标签设置为 N+1,并最大化预测分数,从而鼓励模型将未知样本识别为未知类别。

2. 负样本正则化损失 (Lneg):优化模型学习到的负样本原型,使其能够更好地代表未知类别。

对每个正类原型生成的负类原型,计算它与负样本之间的二分类交叉熵损失,并使其尽可能小,从而增加它们之间的相似度。

总损失:L = LT1 + LT2

实验设置

实验数据集:

  • 84×84尺寸 MiniImageNet: 包含 100 个类别,用于元学习的类别划分为 (meta-training, meta validation, meta-testing) = (64, 16, 20)。每个类别有 600 张图片。
  • TieredImageNet: 包含 608 个类别,用于元学习的类别划分为 (meta-training, meta validation, meta-testing) = (351, 97, 160)。基础数据集包含大约 450K 张图片。

实验设置:

  • 使用 ResNet12 作为特征提取器,在基础数据集上进行预训练。
  • 使用元学习策略进行训练,包括标准 FSOR 元训练和作者提出的共轭训练。训练 18k 个任务。
  • 使用交叉熵损失函数进行训练。
  • 使用多种指标评估模型的性能,包括准确率、AUROC、F1-score 等。

实验结果:

  • 与基于阈值的分类器相比,本文的方法在 F1 分数方面取得了显著的提升,证明了无需阈值调整的有效性。
  • 与 SOTA 方法相比,本文的方法在分类准确率和负样本检测方面取得了优异的性能。
  • 通过消融实验,验证了共轭训练策略的有效性。
  • 在 CIFAR-FS 和 FC100 数据集上进行的额外实验进一步证明了本文方法的有效性。

总结

在本研究中,我们展示了基于阈值的方法在少样本开放集识别中的局限性,不同的任务可能需要非常不同的拒绝阈值,因此调整过程可能具有挑战性。为此,我们提出了针对 (G)FSOR 的任务自适应负向设想方法,其中负向原型是根据少样本/多样本类示例计算出来的。我们研究了不同设计的负向生成器,发现基于注意的生成器效果最好;添加类语义可以进一步提高性能。我们还引入了一种新的共轭类训练策略,以更好地促进学习过程。

项目地址 : GitHub - shiyuanh/TANE: Code Repository for "Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition"

原文地址:Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition | IEEE Conference Publication | IEEE Xplore

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

怎么把照片转换成jpg格式?这5种转换方法简单高效

照片是我们记录生活、分享美好的重要方式。然而,不同设备和软件生成的照片格式各异,有时为了兼容性或文件大小的需求,我们需要将照片转换成JPG格式。很多小伙伴不知道怎么转换,下面来给大家分享5种简单高效的转换方法,…

tokenizer简述

知乎:难赋链接:https://zhuanlan.zhihu.com/p/721054525 简述 为了方便计算机处理文本,我们常把文本转化为数值的形式。具体操作是把文本分割成有意义的片段,再把这些片段映射为数组,就能够利用各种深度学习的技术来处…

FastStone Capture屏幕长截图软件注册码

FastStone Capture是一款功能强大的电脑屏幕截图、录像软件,并支持图像编辑、注释及分享等使用功能。FastStone Capture可以免费用30天试用,终身版88元单台电脑终身使用,终身更新。不过网上分享的FastStone Capture注册码似乎也可以正常激活&…

Java开发:文件上传和下载

一、文件上传 使用MultipartFile 类型接收参数; 调用上传有两种方式: 方式一:使用curl命令 curl -F "file/data/filename.txt" http://localhost:8080/upload --verbose方式二:使用html,写一个form表单&…

Mysql基本理解

系列文章目录 Mysql的基础理论知识 目录 系列文章目录 文章目录 一、数据库概述 1.数据库概念 2.数据库的作用 3.什么是关系型数据库? 4.Mysql的优点 5.数据库术语 6.SQL语言分类 二、Mysql安装 三、 Mysql使用 1.登录数据库、退出登录 2.创建、列出数据库 3.选择…

Node.JS有什么用?给谁用?怎么学?通俗易懂,超级详细!

现在,nodejs主要是前端的小伙伴来用的。前端小伙伴也不用说去怎么学node,而是把node当做是一个环境。我们利用这个环境去搭建上层的一些应用,去使用一些工具。就像学习Windows一样,我们没有必要深入了解Windows的每一个细节&#…

【hot100-java】【环形链表 II】

印象题 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode detectCycle(ListNode head) {ListNode fasthea…

建筑工程系列专业职称评审条件大全

我们都知道,职称是分很多系列,今天甘建二主要是从建筑工程系列讲起来,从技术员到初级职称再到中级职称然后到高级职称,各个等级的评审条件给您一一解析,赶紧收藏起来。 ✨技术员1️⃣理工类或建筑工程相关专业大学专科…

视频生成技术分享

文本到视频(T2V)生成是一种技术,它通过将文本描述转换为视频内容,允许用户根据自然语言生成动态视觉媒体。近年来,扩散模型在这一领域取得了显著进展,但现有模型在处理多个对象和复杂场景时,面临…

android 跑了一个网易云信v1.0的app, 编译的过程中报错Entry name ‘assets/sm2/r.jks‘ collided的处理

1、一开始并没有报这个错误,然后直接就不知道注了什么信息以后,就报错,是因为下面的warning: 2、然后编译的时候就直接报下面的错误: 3、然后我们再之前的注解放开: 这样一切就正常了。 4、那么这个究竟是…

【动态规划】(五)动态规划——子序列问题

动态规划——子序列问题 子序列问题☆ 最长递增子序列(离散)最长连续递增序列(连续)最大子序和(连续)最长重复子数组(连续)☆ 最长公共子序列(离散-编辑距离过渡&#xf…

【动态规划】(四)动态规划——打家劫舍与买卖股票

打家劫舍与买卖股票 打家劫舍问题打家劫舍打家劫舍II打家劫舍III 买卖股票问题买卖股票的最佳时机买卖股票的最佳时机II买卖股票的最佳时机III买卖股票的最佳时机IV最佳买卖股票时机含冷冻期买卖股票的最佳时机含手续费 股票问题总结 打家劫舍问题 给定一个数组,相…

day-59 两两交换链表中的节点

思路 只需将链表两两交换节点即可,如果是奇数个节点,最后一个节点则不用交换 解题过程 可以先自定义一个头结点thead,这样更便于思考交换,最后返回thead.next即可 Code /*** Definition for singly-linked list.* public class…

SAM+无监督学习!能发顶会的高端局组合!idea效果绝佳

学过SAM的朋友都知道,SAM需要对训练数据进行全面的手动标记,每张图像都要超过20分钟...效率有待提升。那么如何解决这个短板?我们考虑SAM无监督学习。 这是因为无监督学习具有无需人工标注数据的特点,通过将两者结合,…

【LeetCode】动态规划—删除并获得点数(附完整Python/C++代码)

动态规划—#740. 删除并获得点数 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 给你一个整数数组 n u m s nums nums ,你可以对它进行一…

DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories

目录 DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories文章摘要:文章的主要贡献包括:文章的结构如下:DownShiftDownShift通过以下方式改进了现有的数据放置策略: GROGU(Generating Reliabi…

2024最受欢迎的3款|数据库管理和开发|工具

1.SQLynx(原SQL Studio) 概述: SQLynx是一个原生基于Web的SQL编辑器,由北京麦聪软件有限公司开发。它最初被称为SQL Studio,后改名为SQLynx,支持企业的桌面和Web数据库管理。SQLynx支持所有流行的数据库&a…

工业一体机实现接口与模块选配

在现代工业自动化和智能制造的浪潮中,工业一体机因其集成化、稳定性高和适应性强的特性而逐渐成为企业生产过程中不可或缺的设备。为了满足不同客户的需求,工业一体机的接口与模块选配功能显得尤为重要。 一、工业一体机的基本概念 工业一体机是将计算、…

跟着B战学习JAVA面试八股文

学习链接:https://www.bilibili.com/video/BV1gm411S7EX/?spm_id_from333.337.search-card.all.click&vd_sourceefbaa07876b231ae3225ba8999116807 创建线程的几种方式? 继承Thread类实现Runnable接口实现Callable接口通过线程池来创建线程 为什么…

【官方Mamba库】原理简述和代码解析

目录 1 代码原理简述1.1 原始结构——SSM1.2 结构改进——S4(Structured State Space for Sequences)1.2.1 离散化1.2.2HiPPO 1.3 最终版本——Mamba(又称S6或selective SSMs) 2 代码库目录结构2.1 mamba_simple.py主体结构2.1.1 …