粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition

2023-05-16

相比于直接对图像进行分类,本文更关注特征提取部分,通过令提取的不同类特征在超球面上尽可能远离,让属于同一类的特征尽可能靠近,来提高模型面对样本不平衡时的分类性能。

这是本文的方法和效果示意图。第一行的KCL是之前的方法,TSC为本文方法。之前的方法在面对极端的样本不平衡时,训练图像多的类会挤占训练图像少的类,让小样本的类之间的特征混在一起,导致分类准确率下降,而本文方法面对极端不平衡时依然可以保持不同类的中心尽可能远离。

上图是流程示意图,模型主要分为两步,第一步,根据类的数量,在超球体上确定多个锚点,锚点数量等于类别数,每个锚点要尽可能远离其他锚点。

作者原本想让每个锚点的分布达到最优,但发现这是个NP问题,于是退而求其次,通过最小化下面这个公式达到近似最优的结果

可以看到,公式基本就是计算每个类和其他类的相似度,log和再求和。之所以两个向量点积就能求相似度,个人理解是如果每一位数字相同时,就是多个数的平方和,即点积结果是a^2+b^2+...

如果数字不同,就可以看作是原来的数字加了个数减了个数相乘,即可以看作是(a+x)(a-x)+(b+y)(b-y),结果当然会变小。虽然在极端情况下,a^2小于(b+x)(b-x)是有可能的,如a=3而b=100,x=1。但本文锚点位于超球体上,且是多个点之间互相计算,所以不用担心最小化这个函数会导致某对点从相隔甚远变得十分靠近。

第二步,得到几个中心后,就要将不同的类分配给不同的中心,如果是简单的随机分配,语义特征相似的类可能会分得特别开,例如猫和狗语义特征相似,但分得的锚点却可能位于超球体两端,这样让模型更加迷茫,不知道如何提取特征。

于是作者在每一轮训练结束后,即每张训练集图片喂给模型完毕后,计算每个类的中心,通过匈牙利算法,将类与锚点进行配对。

分配完毕后,计算下面的损失函数,然后指导模型更新参数。

其中,N为一个batch的大小,V为该batch全部图像,vi为图像xi提取出来的特征,\tilde{V}_{i}是排除了vi后的其他所有图像,\tilde{V_{i,k}^{+}}是除了vi之外其余的与vi为同一类的图像集合,U是所有锚点t的集合,而ci则是vi分得的锚点。

按照前面的理论,两个向量点积越大,就可近乎地看作相似度越高。于是前半段是让同一类的特征尽可能靠近,而后一段则是让每个点尽可能靠近自己分得的锚点,远离其他锚点和其他类的特征。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition 的相关文章

随机推荐

  • openstack介绍及原理

    openstack介绍及原理 文章目录 什么是openstack 云计算模式OpenStack 中有哪些项目 xff1f Openstack创建实例的流程总图openstack项目搭建 xff1a 什么是openstack OpenStac
  • 生产者消费者模型(多-多模型/面向对象思想实现)

    本篇文章将用c 43 43 的面向对象思想 xff0c 实现生产者消费者模型的代码编写 个人感悟 xff1a 1 多生产者多消费者模型的共享竞争关系 xff1a 对缓冲区的共享和竞争 xff1a 生产者和消费者都需要对共享缓冲区进行操作 x
  • openstack报错排查

    openstack各个组件 openstack要保证各个组件能正常启动 否则创建实例等会报错 在启动openstack的时候 要查看各个服务是否正常启动了 xff0c 如果有部分服务没有启动 xff0c 则项目不能正常运行 root 64
  • vim如何批量注释

    1 ctrl 43 v 进入 2 按箭头 选中要注释的首行 3 按下大写 i 进入插入模式 4输入 按esc 就可以看到如下内容
  • vim中的替换

    Vim可以在尾行模式下使用 substitute命令将指定的字符串替换成其他目标字符串 通常我们可以使用该命令的缩写格式 s进行来进行vim字符串替换操作 一 Vim替换字符串命令的语法 Vim替换字符串命令的基本语法是 range s 目
  • docker删除无用的镜像等操作

    提供 prune命令 xff0c 用于移除不使用的镜像 容器 卷 网络 Prune images docker image prune移除没有标签并且没有被容器引用的镜像 xff0c 这种镜像称为 dangling 摇晃的 镜像 示例1 x
  • Python之requests模块-session

    http协议本身是无状态的 xff0c 为了让请求之间保持状态 xff0c 有了session和cookie机制 requests也提供了相应的方法去操纵它们 requests中的session对象能够让我们跨http请求保持某些参数 xf
  • git 对比两个分支差异

    1 显示出branch1和branch2中差异的部分 git diff branch1 branch2 stat 2 显示指定文件的详细差异 git diff branch1 branch2 具体文件路径 3 显示出所有有差异的文件的详细差
  • 操作系统中cpu如何工作

    扩充小知识 xff1a 这些硬件设备在一条总线上链接 xff0c 他们通过这条线进行数据交互 xff0c 里面的带头大哥就是CPU xff0c 拥有最高指挥权 那么它是如何工作的呢 xff1f A 取指单元 xff08 从内存中取得指令 x
  • dev/mapper的解释

    二 dev mapper目录的解释 为了方便叙述 xff0c 假设一台服务器有三块硬盘分别为a xff0c b xff0c c xff0c 每块硬盘的容量为1T 在安装Linux的时候 xff0c 先根据系统及自身的需要建立基本的分区 xf
  • Centos安装python39(其他版本也是一样的流程)

    Centos安装python39 其他版本也是一样的流程 centos安装python39 其他版本也是一样的流程 1 下载python39 可以去官网下载 xff0c 也可以去华为云下载 华为云 xff1a Index of python
  • centos 中如何启动两个rabbitmq 服务

    启动两个rabbitmq 服务 sudo RABBITMQ NODE PORT 61 5672 RABBITMQ DIST PORT 61 15672 RABBITMQ SERVER START ARGS 61 34 rabbitmq ma
  • 【码农本色】用数据解读我的2014

    转眼2014就过去了 xff0c 不禁感叹又老了一岁的同时 xff0c 却发现已经快研究生毕业了 xff0c 趁着这个活动简单总结下2014 1 实习篇 2014年一月份拿到了人生第一个实习offer xff0c 在sony这样的大公司做a
  • 出现Permission denied (publickey)的解决方法

    ssh root 64 10 240 1 161 报错 1 发现问题 在Linux终端使用ssh root 64 server ip来连接到远程服务器时 xff0c 出现Permission denied publickey 提示 2 分析
  • 23年4月开发语言最新排行榜公布

    随着时代的发展 xff0c 编程语言也在不断演化和发展 xff0c 每一种编程语言都有着其独特的特性和适用场景 在这篇博客中 xff0c 我们将来探讨一下各大编程语言的排行榜 xff0c 以及它们各自的优缺点和应用场景 下面是最新的 Tio
  • CommandNotFoundError: No command ‘conda activate‘

    前言 xff0c 在windows下使用coda 虚拟环境时 xff0c 在激活环境 conda activate env name 时 xff0c 报错找不到 conda activate 的命令 浪费了好久的时间 xff0c 找到了合适
  • Spring、SpringMVC常用注解总结

    一 Spring常用注解 64 Component xff1a 标注一个普通的Spring Bean类 64 Controller xff1a 标注一个控制器组件类 64 Service xff1a 标注一个业务层组件类 64 Reposi
  • 关于Ubuntu fix-broken 的使用

    执行命令 xff1a sudo apt fix broken install sudo apt get update sudo apt get upgrade 运行后可以解决由于依赖包缺失或错误引起的无法通过apt get来安装应用
  • java看书规划

    Java编程思想 大话设计模式 重构 改善既有代码的设计 effective java 深入理解Java虚拟机 Java并发编程实战 深入理解计算机系统 xff0c tcp ip详解 卷一 二 三 xff0c 数据结构与算法 xff08 三
  • 粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition

    相比于直接对图像进行分类 xff0c 本文更关注特征提取部分 xff0c 通过令提取的不同类特征在超球面上尽可能远离 xff0c 让属于同一类的特征尽可能靠近 xff0c 来提高模型面对样本不平衡时的分类性能 这是本文的方法和效果示意图 第