利用多专家模型解决长尾识别任务

news/2024/5/5 9:10:45/文章来源:https://blog.csdn.net/weixin_42645636/article/details/130065457

来源:投稿 作者:TransforMe
编辑:学姐

贡献

提出了RoutIng Diverse Experts(RIDE),不仅可以减少所有类别的variance,并且还可以减少尾部类的bias。同时提升了头部和尾部的性能。

思路

目前存在的方法都会导致分类器的variance增大,以牺牲头部性能为代价来提升尾部性能。观察到尾部性能低表现为类间混淆度高和分类器variance高。因此提出RIDE可以同时减少分类器的bias和variance

首先使用了偏差-方差分解得到bias和var,下图为4种方法的对比,相对于baseline(CE)而言,红色代表性能下降,绿色代表性能提升。

  • 对于acc指标,之前的三种长尾方法相对于baseline来说都牺牲了Many-shot的性能,增加了Med和Few性能,但是RIDE方法同时提升了所有性能。

  • 对于bias来说,所有方法几乎没有改变Many-shot的值。对于Med和Few shot,RIDE的方法相对于其他方法减少的比例更大。

  • 对于variance,只有RIDE方法减少了,也证明了RIDE方法的稳定性和确定性。

图b展示了最容易混淆类的softmax值,也就是softmax概率中第二大的数(默认分类正确)。可见尾部类的混淆度较高,而且RIDE可以很好的降低各个shot的混淆度,从而增大acc。

方法

提出了一个多专家的方法RIDE:采用多个专家来减少模型方差,并采用额外的分布多样性损失来减少模型偏差

采用两阶段的优化过程,第一阶段使用分布多样性损失联合优化多个专家。第二阶段训练一个专家分配模块,为不确定的样本分配更多的专家

多专家框架

前几层网络作为多个专家的共享层,之后的网络层作为独立的专家。为了降低模型的复杂度,我们把每个专家过滤器的个数缩减为 1/4。在训练过程中,使用分布多样性损失。

分布多样性损失用来惩罚专家之间的相关性,引入了KL散度来实现分布的多样性,并结合对比损失中温度的概念。温度与类样本数有关,因此给予尾类较低的温度,从而在应用KL散度的分布中产生较高的尾类概率,鼓励尾类具有更多的多样性。

所以总体的损失为分类损失加上分布多样性损失

专家分配模块

该模块用来决定是否为测试样本分配新的专家共同决策。

具体方法为:重新构建了一个二分类模型,将当前专家识别错误并且下一个专家识别正确的样本视为正样本,其他视为负样本。

具体流程为:将原始输入正则化并经过几层全连接层,得到的结果和取Top zLogits做拼接,再经过几层全连接得到最终输出,其中z为预先设定的超参数。在测试阶段,我们就可以通过训练好的模型判断是否需要下一个专家参与决策。当多个专家参与时,使用多个专家的几何平均值做最终决策。

实验

在CIFAR-100-LT数据集上,两个专家就可以得到超越前人的效果并且模型复杂度也低于之前的模型,专家越多模型精度越高,并且是全部shot同时提升。

同样在iNaturalist上也获得了同样的效果。

消融实验

分别验证了专家数,分布多样性损失,专家分配模块,蒸馏的作用。结合自蒸馏步骤可以提升0.4%~0.8%的准确率。不知道专家数为4,不使用专家分配模块的效果是否会更好。

测试了专家数为34时,不同shot需要的专家数量。可见样本量越少的shot需要的专家数越多。

总结

对于之前长尾方法以头部性能为代价的看法,有没有可能是因为RIDE的方法总体ACC提升较大,导致了头部也比baseline提升了。并不能说明RIDE没有牺牲头部性能,而且RIDEMedFew shot提升的性能相对于头部要大很多。 多专家分配模块可以有效地减少计算复杂度,但是没有明确说明减少复杂度的同时是否会牺牲性能,从专家数为2的实验中大概能证实这点。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“500”获取300+AI必读高分论文&讲解视频

码字不易,欢迎大家点赞评论收藏!

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyrecovery2023电脑文件数据恢复软件功能介绍

EasyRecovery功能全面,即便是没有经验的小白用户也可以很快上手,让你足不出户即可搞定常见的数据丢失问题。 在使用和操作存储设备期间,数据丢失问题在所难免。比如,误删除某个文件、不小心将有数据的分区格式化、误清空了有重要…

2023“认证杯”数学中国数学建模赛题浅析

2023年认证杯”数学中国数学建模如期开赛,本次比赛与妈杯,泰迪杯时间有点冲突。因此,个人精力有限,有些不可避免地错误欢迎大家指出。为了大家更方便的选题,我将为大家对四道题目进行简要的解析,以方便大家…

【vue3】04-vue基础语法补充及阶段案例

文章目录vue基础语法补充vue的computedvue的watch侦听书籍购物车案例vue基础语法补充 vue的computed computed:用于声明要在组件实例上暴露的计算属性。(官方文档描述) 我们已经知道,在模板中可以直接通过插值语法显示一些data中…

智能网卡相关知识(smart nic 、DPU)

网卡作为穿行在网络与计算之间的桥梁,是可以解决计算瓶颈的关键硬件。 随着CPU 密度和数据中心网络带宽的进一步提升,用户对预期性能的需求,系统运行平稳性都会有更高的要求。云厂商一方面面临巨大的成本压力,另一方面面临巨大的…

新一代异步IO框架 io_uring | 得物技术

1.Linux IO 模型分类 相比于kernel bypass 模式需要结合具体的硬件支撑来讲,native IO是日常工作中接触到比较多的一种,其中同步IO在较长一段时间内被广泛使用,通常我们接触到的IO操作主要分为网络IO和存储IO。在大流量高并发的今天&#xff…

光伏电池片技术N型迭代,机器视觉检测赋能完成产量“弯道超车”

电池片是光伏发电的核心部件,其技术路线和工艺水平直接影响光伏组件的发电效率和使用寿命。随着硅料、硅片技术逐渐接近其升级迭代空间的瓶颈,电池片环节正处于技术变革期,是光伏产业链中迭代最快的部分。P型中PERC电池片是现阶段市场的主流产…

C/C++每日一练(20230413)

目录 1. 与浮点数A最接近的分数B/C 🌟 2. 比较版本号 🌟🌟 3. 无重复字符的最长子串 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每…

Multi-modal Alignment using Representation Codebook

Multi-modal Alignment using Representation Codebook 题目Multi-modal Alignment using Representation Codebook译题使用表示代码集的多模态对齐期刊/会议CVPR 摘要:对齐来自不同模态的信号是视觉语言表征学习(representation learning)的…

Vue2_02_指令

模板语法 — Vue.js (vuejs.org) 指令 (Directives) 是带有 v- 前缀的特殊 attribute 参数 一些指令能够接收一个“参数”&#xff0c;在指令名称之后以冒号表示 <a v-bind:href"url">...</a> 动态参数 可以用方括号括起来的 JavaScript 表达式作为一…

JWT与Token详解

前言&#xff1a;JWT全称“JSON Web Token”&#xff0c;是实现Token的机制。官网&#xff1a;https://jwt.io/ JWT的应用 JWT用于登录身份验证。用户登录成功后&#xff0c;后端通过JWT机制生成一个token&#xff0c;返回给客户端。客户端后续的每次请求都需要携带token&…

常用加密算法

目录 常见的加密算法可以分成三种&#xff1a; 对称加密算法 DES 3DES AES 非对称加密 RSA ECC Hash算法 MD5 SHA1 算法对比 算法选择 常见的加密算法可以分成三种&#xff1a; 对称加密算法&#xff1b;非对称加密算法&#xff1b;Hash算法&#xff1b;接下来我们…

面试手撕堆排序

堆排序代码如下&#xff08;注释见下&#xff09;&#xff1a; 首先将待排序的数组构造成一个大根堆&#xff0c;此时&#xff0c;整个数组的最大值就是堆结构的堆顶 将堆顶的数与末尾的数交换&#xff0c;此时&#xff0c;末尾的数为最大值&#xff0c;剩余待排序数组个数为n…

Linux设备驱动开发 - 块设备驱动ramdisk实例

By: fulinux E-mail: fulinuxsina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅&#xff01; 你的喜欢就是我写作的动力&#xff01; 目录理论来源源码编译测试理论来源 ramdisk驱动&#xff0c;区别在与使用最新的内核版本&#xff0c;比如linux-4.15。…

MySQL数据库:聚合函数、分组查询、约束、默认值设置、自增属性

一、聚合函数 1.聚合函数 在MySQL数据库中预定义好的一些数据统计函数。 2.count(*) 功能&#xff1a;统计结果条数。 3.sum(字段名) 功能&#xff1a;对指定字段的数据求和。 4.avg(字段名) 功能&#xff1a;对指定字段的数据求平均值。 5.max(字段名) 和 min(字段名) …

答疑——20年国赛题(JAVA解法)

题目链接&#xff1a;用户登录https://www.lanqiao.cn/problems/1025/learning/?page3&first_category_id1&sortstudents_count 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序&#xff0c;同学们要依次进入老…

sqoop数据导出、脚本使用

目录 准备表与数据 数据导出 脚本调用 准备表与数据 mysql表 CREATE TABLE user (id int(20),name varchar(20) )ENGINEINNODB DEFAULT CHARSETutf8; hive表 create table users( id bigint, name string ) row format delimited fields terminated by "\t";…

软考初级程序员--学习

1、十进制 转 二进制 十进制87 转换为 二进制为 1010111 2、二进制 转 十进制 二进制1010111 转换为 十进制 3、循环队列 计算长度通用公式&#xff1a; front&#xff1a;表示队首 rear&#xff1a;表示队尾 M&#xff1a;表示队列容量 队列长度 &#xff08;rear - fr…

Verilog | 二进制与格雷码

一、格雷码简介 格雷码是一个叫弗兰克格雷的人在 1953 年发明的&#xff0c;最初用于通信。格雷码是一种循环二进制码或者叫作反射二进制码。格雷码的特点是从一个数变为相邻的一个数时&#xff0c;只有一个数据位发生跳变&#xff0c;由于这种特点&#xff0c;就可以避免二进…

进销存管理系统能为企业带来哪些实际效益?

随着互联网的不断发展&#xff0c;如今的商业世界已经越来越向数字化转型。拥有一套完整的数字化的进销存管理能够极大地提升公司货物进出库存情况的效率和准确性&#xff0c;避免过程中出现不必要的错误和漏洞&#xff0c;从而帮助企业更加稳健地自我发展。那么&#xff0c;一…

3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复

3.7.2数据库系统-数据库控制技术&#xff1a;数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复数据库的安全性数据库备份与恢复技术数据备份数据库故障与恢复数据库的安全性 在做信息系统开发的过程当中&#xff0c;数据库是其中很大的占比&#xff0c;信息…