粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition

本文主要是介绍粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这是本文的方法和效果示意图。第一行的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分得的锚点。

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

这篇关于粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327011

相关文章

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

long long,_int64使用小结

前言:   在16位环境下,int/unsigned int 占16位,long/unsigned long占32位   在32位环境下,int占32位,unsigned int占16位,long/unsigned long占32位 何时需要使用:   long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647,而unsigned范围是[0,2^32),

《长得太长也是错?——后端 Long 型 ID 精度丢失的“奇妙”修复之旅》

引言 在前后端分离的时代,我们的生活充满了无数的机遇与挑战——包括那些突然冒出来的让人抓狂的 Bug。今天我们要聊的,就是一个让无数开发者哭笑不得的经典问题:后端 Long 类型 ID 过长导致前端精度丢失。说到这个问题,那可真是“万恶之源”啊,谁让 JavaScript 只能安全地处理 Number.MAX_SAFE_INTEGER(也就是 9007199254740991)以内的数值呢?

踩坑记录(Long[]ids)

主要针对Long[] ids 的判空问题 问题代码 public void delYnjC(Long[] ids) {if (CollectionUtils.isEmpty(Collections.singleton(ids))) {throw new NullPointerException("参数不能为空");}naturalYnjCMapper.delYnjC(ids);} 修正

Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测

又是一篇在自编码器框架中研究使用记忆模块的论文,可以看做19年的iccv的论文的衍生,在我的博客中对19年iccv这篇论文也做了简单介绍。韩国人写的,应该是吧,这名字听起来就像。 摘要abstract 我们解决异常检测的问题,即检测视频序列中的异常事件。基于卷积神经网络的异常检测方法通常利用代理任务(如重建输入视频帧)来学习描述正常情况的模型,而在训练时看不到异常样本,并在测试时使用重建误

Learning Temporal Regularity in Video Sequences——视频序列的时间规则性学习

Learning Temporal Regularity in Video Sequences CVPR2016 无监督视频异常事件检测早期工作 摘要 由于对“有意义”的定义不明确以及场景混乱,因此在较长的视频序列中感知有意义的活动是一个具有挑战性的问题。我们通过在非常有限的监督下使用多种来源学习常规运动模式的生成模型(称为规律性)来解决此问题。体来说,我们提出了两种基于自动编码器的方法,以

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和模糊的边界,手动标注像素级的物体非常耗时,例如每张图片可能需要 60 分钟来标注。因此,作者希望通过减少标注负担,提出了一种仅依赖“点标注”的弱