对长尾识别任务中解耦方法的改进

news2024/11/26 22:37:32

来源:投稿 作者:TransforMe

编辑:学姐

贡献

在长尾识别任务上,解耦(二阶段)的方法取得了巨大的进步,详情参考https://blog.csdn.net/weixin_41246832/article/details/115718084。本文详细分析了解耦的方法, 针对存在的两个问题进行改进,提出了Mixup Shifted Label-Aware Smoothing model (MiSLAS),该方法包括标签平滑和迁移BN两种方案。

问题

Confidence calibration

实验观察到网络在长尾数据集会产生校准错误和过度自信问题。如图所示,在CIFAR100-LT数据集上统计的可靠性图。

横坐标表示置信度,纵坐标表示准确率。其中ECE表示准确率和置信度的差异。具体公式为:

可靠性图可以较好的评估模型得到的概率是否合理,理论上最好的模型ECE为0。图中可见,网络在长尾数据集上都有较高的ECE,其中解耦的方法cRT和LWS也存在同样的问题。

Domain shift

另一个问题在于使用解耦方法训练网络时,由于两阶段的数据采样方式不同,导致两个阶段的数据集分布不同。本文通过改变BN层解决这个问题。

方法

前人研究表明mixup技术可以很好地增强网络的对齐能力(减少ECE)。因此,在解耦方法中验证mixup的作用。

可以发现:

  • 在第一阶段使用mixup对CE的精度无影响,ECE略有下降。

  • 在第一阶段使用mixup对解耦的方法精度有所提升,ECE也减少了。

  • 在第二阶段使用mixup对模型的精度无影响,对cRT来说ECE下降了,但LWS的ECE却上升了。

    综上,可以得出结论:mixup确实促进了模型的表示学习,但是对分类器的学习无用。

进一步,我们观察mixup对分类器范数的影响。

图中类别按照样本数降序排列,可见使用mixup时尾部类的范数更大,mixup对尾部类别分类更友好。

Label-aware Smoothing

由于头部类别有大量的样本,在使用CE训练时分类器更倾向于头部类,导致头部的分类器权值范数更大。如图3上方浅蓝色所示,头部类的概率都接近1,而尾部类概率最小,因此我们提出标签平滑来解决交叉熵过度自信和预测概率分布变化的问题。如图3下方深蓝色所示,使用标签平滑后头部的预测概率明显下降,而且尾部预测概率有所提升。

具体来说,我们在计算CE时,对真实标签加上一个很小的平滑系数,这样可以降低过度头部类的自信,并提升尾部类的概率。

如公式1所示,ε表示为一个很小的数,当分类正确时的值接近但不等于1。当分类错误时,的值接近但大于0。同时本文设计了三种可变的ε(),可以使得ε的值与样本数正相关,即样本数越大惩罚越大。

从分类器角度出发,我们提出了一个更通用的分类器学习框架。

当且时,公式等同于cRT方法。当且时,公式等同于LWS方法。本实验将和设置为可学习参数,固定,相当于结合了cRT和LWS两种方法,既可以改变原表征学习参数,又可以同时成比例放大或缩小参数。

Shift Learning on Batch Normalization

由于两阶段的数据分布不同,我们更新一个batch的均值µ和方差σ,并固定了可学习的线性转换参数α和β,以便在阶段2中更好地规范化。

实验

SOTA

如图所示,MiSLAS方法在五个数据集上都取得了sota的效果,并且大多有较小的ECE。

消融实验

  • MU 代表Mixup;

  • SL 代表BN的迁移(shift learning on BN);

  • LAS 代表标签平滑,上下两块分别代表ACC和ECE。

消融实验证明了每个模块都能提升性能并减少ECE。

总结

在第一阶段使用mixup并平滑标签以得到更好的特征表示,在第二阶段在表征模型中仅改变BN的均值和方差,以此提升模型的性能。

方法简单有效,从ECE的角度切入,实验充分,并做了大量的实验验证各个模块的有效性,包含各种类型的图表且行文通顺易读。

220+篇论文解读免费领👇👇👇点击卡片关注

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

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

相关文章

Android实现SSH Client

本文实现的是如何使用JSCH在Android上实现一个简易版本的ssh client,来远程执行ssh命令。 1、启动ssh服务,本文以mac为例。 打开设置-->共享-->选择远程登录 2、检验ssh server是否开启成功。 打开shell ssh dongxuliip 输入dongxuli账户的密码&…

P3884 [JLOI2009]二叉树问题——树化图Floyd+dfs

[JLOI2009]二叉树问题 题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:444宽度:444结点 8 和 6 之间的距离:888结点 7 和 6 之间的距离:333 其中宽度表示二叉树上同一层最多的结点个数&…

[附源码]Python计算机毕业设计Django高校体育场馆管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

web前端期末大作业——基于HTML+CSS+JavaScript蓝色的远程监控设备系统后台管理界面模板

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

6-1和6-2矩阵键盘

江科大自动化单片机学习记录使用到的设备以及软件今天的学习内容弱上拉和强下拉代码LCD1602.cMatrixKey.c生成.h文件调用主函数main总结记录学习单片机的过程学习内容的视频链接:江科大自化协:51单片机入门教程-2020版,程序全程纯手打 使用到的设备以及软件 普中科技的嵌入式…

DC-2靶机教程

masscan -p1-65535 192.168.250.180 --rate10000nmap -sC -sV -p- -A -T4 192.168.250.180扫描看到80需要添加解析 C:\Windows\System32\drivers\etc添加记录:192.168.250.180 dc-2 同时我们也可以用cmseek扫描到用户名和相关的漏洞 或者使用 wpscan --url htt…

【图像处理OpenCV(C++版)】——2.3 灰度/彩色图像数字化

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

基于无人机的移动边缘计算网络(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 空中无人机(UAV)长期以来一直被用作移动网络中的网络处理器,但它们现在被用作移动边缘计算…

29-Vue之ECharts-散点图

ECharts-散点图前言散点图特点散点图实现步骤散点图常见效果气泡效果涟漪动画效果完整代码前言 本篇来学习散点图的实现 散点图特点 散点图可以帮助我们推断出不同维度数据之间的相关性, 比如:看得出身高和体重是正相关, 身 高越高, 体重越重散点图也经常用在地图…

解决 AssertionError Torch not compiled with CUDA enabled

最近在矩池云的的Tesla K80机子上跑MMYOLO,跟着MMYOLO官方文档《自定义数据集 标注训练测试部署 全流程 》操作到 “2.1.1 软件或者算法辅助”时,利用预训练模型官方脚本去辅助标注时,一按下回车就报错: 报错信息 AssertionError…

技巧分享:你知道视频转文字怎么操作?

随着科技的发展,很多东西都开通了“线上”这个渠道,例如线上教学、线上问诊等等。而我们也越来越习惯“线上”,因为它不仅方便,还更节省时间。例如我,学习一些知识或技能时,我会在网上寻找教学视频或报线上…

flink单机部署和简单使用

flink单机部署 Java版本:1.8.0_45 flink下载:https://archive.apache.org/dist/flink/flink-1.7.2/flink-1.7.2-bin-scala_2.11.tgz 解压安装包: [rootvm-9f-mysteel-dc-ebc-test03 opt]# tar -zxvf flink-1.7.2-bin-scala_2.11.tgz flin…

莽荒纪人物出场数据统计

今天继续给大家介绍Python相关知识,本文主要内容莽荒纪人物出场数据统计。 一、中文文本词频统计思路 在上文Python英文词频统计(哈姆雷特)程序示例中,我们进行了英文单词的统计。今天,我们进行中文人物出场频率统计…

java服装经销系统服装进销系统

简介 Ssm服装经销系统,主要分为6个角色:管理员、资料员、采购员、仓库员、售卖员、财务。采购员进行采购入库;仓库员进行采购入库、退货入库、提货出库、折损出库等库存管理;售卖员进行填单的创建,然后去仓库那里提货…

Score Matching

目录简介Score Function求解方法emm参考简介 score matching算法是一种求解概率密度函数的参数的算法。 在很多情况下,概率密度函数可以表示为: p(ξ;θ)1Z(θ)q(ξ;θ)p(\xi;\theta)\frac{1}{Z(\theta)}q(\xi;\theta) p(ξ;θ)Z(θ)1​q(ξ;θ) 假设我…

[Java] 什么是锁?什么是并发控制?线程安全又是什么?锁的本质是什么?如何实现一个锁?

文章目录前言并发控制并发访问控制是什么?如何实现并发访问控制?并发访问控制 与 线程安全锁是什么?1. 加锁操作2. 解锁操作锁状态是什么?如何实现一个锁?笔者相关博客连接结语前言 多线程编程中,锁是最重要…

oracle (+)学习

最近工作需要将oracle的存储过程转化为hive的sql脚本。遇到很多不一样的地方,例如oracle连接中有()号的用法。 借鉴这篇文章,但是这个排版比较烂。。。 oracle ()的,Oracle中()的作用_大雪菜的博客-CSDN博客 先建表和插入数据 --生成部门表CREATE TA…

2014年蓝桥杯Java C组——猜年龄

2014年蓝桥杯Java C组——猜年龄 标题:猜年龄 小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“ 我们俩的年龄之积是年龄之和的6倍”。 小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。” 请你写出:小明的较小的…

状态模式

文章目录状态模式1.状态模式的本质2.何时选用状态模式3.优缺点4.状态模式的结构5.实现上下文中维护状态及转换状态上下文中维护状态处理类中转换状态状态模式 状态模式说白了就是不同的状态,执行不同的行为,也就是状态和行为分离 1.状态模式的本质 状态模…

Eclipse+Java+Swing+Mysql实现自助存取款机(ATM)系统

EclipseJavaSwingMysql实现自助存取款机ATM系统一、系统介绍1.系统功能2.环境配置3.数据库4.工程截图二、系统展示1.登录页1.1登录成功2.注册系统3.取款3.1取款成功4.存款4.1 存款成功5.转账6.余额查询7.退出系统三、部分代码DBUtil.javaLoginFrame.javaAccount.java四、其他获…