0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Logit调整的长尾学习

倩倩 来源:GiantPandaCV 作者:GiantPandaCV 2022-09-05 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 论文信息

标题:Long-Tail Learning via Logit Adjustment

作者:Aditya Krishna Menon, Sadeep Jayasumana, Ankit Singh Rawat, Himanshu Jain, Andreas Veit, Sanjiv Kumar (Google Research)

原文链接:https://arxiv.org/abs/2007.07314

代码链接:https://github.com/google-research/google-research/tree/master/logit_adjustment

2. 介绍

在传统的分类和识别任务中,训练数据的分布往往都受到了人工的均衡,即不同类别的样本数量无明显差异,如最有影响力的ImageNet,每种类别的样本数量就保持在1300张左右。

aece2de2-2cd9-11ed-ba43-dac502259ad0.jpg

在实际的视觉相关任务中,数据都存在如上图所示的长尾分布,少量类别占据了绝大多少样本,如图中Head部分,大量的类别仅有少量的样本,如图中Tail部分。解决长尾问题的方案一般分为4种:

重采样 (Re-sampling):采样过程中采样不同的策略,如对tail中的类别样本进行过采样,或者对head类别样本进行欠采样。

重加权 (Re-weighting):在训练过程中给与每种样本不同的权重,对tail类别loss设置更大的权重,这样有限样本数量。

新的学习策略 (Learning strategy):有专门为解决少样本问题涉及的学习方法可以借鉴,如:meta-learning、transfer learning。另外,还可以调整训练策略,将训练过程分为两步:第一步不区分head样本和tail样本,对模型正常训练;第二步,设置小的学习率,对第一步的模型使用各种样本平衡的策略进行finetune。

其实就笔者喜欢的风格而言,我对重加权这一方向的工作更为喜欢,因为通过各种统计学上的结论,来设计很好的loss改进来解决长尾/不均衡分布问题,我喜欢这类研究的原因是,他们(大部分)实现简单,往往只需几行代码修改下loss,就可以取得非常有竞争力的结果,因为简单所以很容易运用到一些复杂的任务中。

而从“奥卡姆剃刀”来看,我觉得各种迁移模型的理念虽然非常好,从头部常见类中学习通用知识,然后迁移到尾部少样本类别中,但是往往会需要设计复杂的模块,有增加参数实现过拟合的嫌疑,我认为这其实是把简单问题复杂化。我觉得从统计方面来设计更加优美,因此本文来介绍一篇我非常喜欢的从统计角度出发的工作。这篇论文来自Google Research,他们提供了一种logit的调整方法来应对长尾分布的问题。由于研究风格更偏向 machine learning, 所以论文风格更偏向统计类。

本文首先总结了对于logit的调整方法:

聚焦于测试阶段:对学习完的logit输出进行处理(post-hoc normalization),根据一些先验假设进行调整。

聚焦于训练阶段:在学习中调整loss函数,相对平衡数据集来说,调整优化的方向。

aeddeafc-2cd9-11ed-ba43-dac502259ad0.png

如上图,这两种方法都有许多较为优秀的工作,但是文中描述了这两种方法的几种限制:

weight normalization非常依赖于weight的模长会因为class的data数量稀少而变小,然而这种假设非常依赖于优化器的选择

直接修改loss进行重加权,也会影响模型的表征学习,从而导致优化过程不稳定,同时模型可能对尾部类过拟合,伤害了模型表征学习能力。

论文的motivation就是克服这些缺点,让不同类(head and tail classed)之间的logit能有一个相对较大的margin,设以一个consistent的loss,来让模型的性能更好。

3. 问题设定和过往方法回顾

3.1 Problem Settings

论文先从统计学的角度定义了一下这个problem settings,其实就是训练一个映射,让这个scorer的误分类损失最小:

但是类别不平衡的学习的setting导致P(y)分布是存在高度地skewed,使得许多尾部类别标签出现的概率很低。在这里,错误分类的比例就不是一个合适的metric: 因为模型似乎把所有的尾部类别都分类成头部类别也更够取得比较好的效果。所为了解决这个问题,一个自然的选择是平衡误差,平均每个类的错误率,从而让测试计算出的metric不是有偏的。

论文总结出了一个比较general的loss形式:

这里 是类别 yy 的权重;是另一个超参, 用来控制 margin 的大小。

3.2Post-hoc weight normalization

由于头部类别多,容易过拟合,自然会对头部类别overconfidence,所以我们需要通过一定的映射来调整logit。具体到调整的策略,自然是让大类置信度低一点,小类置信度高一点。

for , where and . Intuitively, either choice of upweights the contribution of rare labels through weight normalisation. The choice is motivated by the observations that tends to correlate with . Further to the above, one may enforce during training.

这里引用了一些其他做long-tail learning的论文,可以参考以便更好地对这一块进行理解。

3.3 Loss modification

至于对于loss的修改,就是很直接了在前面加一个权重,对于的取值,自然就是各个工作重点关注和改进的地方。

af02f478-2cd9-11ed-ba43-dac502259ad0.png

论文给予原有的各种方法各种比较全面的总结。

4. 方法

首先进行Post-hoc logit adjustment:

其实等号左边就是一个根据类别的样本数进行re-weighting。但是为了在exp的线性变换加上temperature时候不影响排序问题,所以把等号右边变成上式,通过这种方式放缩不会导致原本的排序出现问题。从而使得重加权仍能够给尾部类更高的权重。

af2dc766-2cd9-11ed-ba43-dac502259ad0.png

把loss改写成易于理解的方式就如下:

下面这个更为直接的loss被成为为pairwise margin loss,它可以把 y 与 y' 之间的margin拉大。

然后就是实现结合:

af47e862-2cd9-11ed-ba43-dac502259ad0.png

通过一些特殊的取值和另外的trick,可以实现两者的结合。

5. 实验结果

af5f3152-2cd9-11ed-ba43-dac502259ad0.png

这张图非常有意思,可以看出两个设计理念非常有效果。

af842f0c-2cd9-11ed-ba43-dac502259ad0.png

afa47d2a-2cd9-11ed-ba43-dac502259ad0.png

可以发现该方法在头部类和尾部类的性能都有所提升。

6. 结论

摘要:这篇写得很好的论文重新审视了logit调整的想法,以解决长尾问题。本文首先建立了一个统计框架,并以此为基础提出了两种有效实现对数平差的方法。他们通过在合成和自然长尾数据集上使用几个相关基线对其进行测试,进一步证明了这种方法的潜力。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 线性
    +关注

    关注

    0

    文章

    218

    浏览量

    26141
  • 模型
    +关注

    关注

    1

    文章

    3649

    浏览量

    51716
  • 数据集
    +关注

    关注

    4

    文章

    1230

    浏览量

    26047
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何测试DC-DC电源模块的负载调整率?

    DC-DC 电源模块的负载调整率测试,其实就是在固定的输入电压条件下,通过改变负载电流(从空载到满载),测量输出电压的变化幅度,最终计算出电压波动的百分比或绝对差值。其计算公式为:负载调整
    的头像 发表于 11-21 18:10 156次阅读
    如何测试DC-DC电源模块的负载<b class='flag-5'>调整</b>率?

    学习物联网怎么入门?

    联网的基本概念和技术是学习物联网的重要第一步。物联网是指互联网上的物品相互连接,通过网络实现信息交流和共享的一种技术。学习物联网需要了解物联网的基本概念,如物联网的架构、物联网的协议、物联网的应用场
    发表于 10-14 10:34

    如何避免传感器故障报警阈值调整不当的问题?

    是分步骤的实操方案,附关键工具与场景适配建议: 一、事前:明确阈值调整的 “合理范围”,拒绝盲目设定 调整前先通过 “查标准、析数据、评风险”,确定阈值的 “安全上限” 和 “灵敏下限”,避免过松或过严。 1. 提取三大核心依据
    的头像 发表于 10-13 17:12 689次阅读
    如何避免传感器故障报警阈值<b class='flag-5'>调整</b>不当的问题?

    传感器故障报警的阈值可以调整吗?

    功能) 这类传感器通常支持硬件或软件方式调整阈值,常见于自动化产线、化工、医疗等场景: 硬件调整 : 物理按键 / 电位器 :例如速度开关 RD-11801 通过电位器直接调节转速阈值,或通过
    的头像 发表于 10-13 17:05 672次阅读

    常用伺服参数的调整

    的基础原理 伺服系统的参数调整本质是通过PID控制算法实现对机械系统的精确匹配。位置环、速度环、电流环的三环结构构成伺服控制的基础框架,其中位置环作为最外环决定最终定位精度,速度环影响动态响应特性,电流环则直接控
    的头像 发表于 10-13 07:41 622次阅读
    常用伺服参数的<b class='flag-5'>调整</b>

    如何分析负载特性来调整报警阈值?

    分析负载特性来调整报警阈值,核心是 找到负载对电能质量的 “敏感点” 和 “耐受极限” ,再将这些特性转化为具体的阈值调整规则(如收紧敏感指标、放宽耐受指标)。需分 4 步系统分析,每步都对
    的头像 发表于 10-10 17:00 523次阅读
    如何分析负载特性来<b class='flag-5'>调整</b>报警阈值?

    ANSA人体模型姿态调整工具介绍

    ANSA的人体模型姿态调整工具(HBM Articulation Tool)通过网格变形技术实现基于人体不同部位进行调节,定位人体模型最终的姿态。
    的头像 发表于 09-28 15:40 671次阅读
    ANSA人体模型姿态<b class='flag-5'>调整</b>工具介绍

    TLe9893怎么调整外设的中断优先级?

    你好林工,我该怎么调整外设的中断优先级?是否可以通过工具调整?默认设置下,是不是Brdv的在中断优先级高于T20和can?
    发表于 08-01 06:20

    变频器的频率怎么调整

    变频器作为现代工业控制中的重要设备,其频率调整直接关系到电机转速和生产效率。本文将系统介绍变频器频率调整的原理、方法、注意事项及典型应用场景,帮助读者全面掌握这一关键技术。 一、变频器频率调整
    的头像 发表于 07-13 17:41 4318次阅读
    变频器的频率怎么<b class='flag-5'>调整</b>?

    电源管理芯片U3205A拥有良好的线性调整率和负载调整

    电源管理芯片U3205A拥有良好的线性调整率和负载调整率银联宝电源管理芯片U3205A通过实时监测负载状态,自动调节MOSFET的开关频率,轻载或空载时‌降低频率‌(如待机状态),减少开关损耗,典型
    的头像 发表于 04-17 16:26 598次阅读
    电源管理芯片U3205A拥有良好的线性<b class='flag-5'>调整</b>率和负载<b class='flag-5'>调整</b>率

    模拟示波器的波形显示可以调整哪些参数?

    放大或缩小波形的垂直幅度,使波形在屏幕上显示得更大或更小。 调整方法:通过旋转垂直灵敏度旋钮或输入数值进行调整。 垂直位置(Vertical Position) 定义:波形在垂直方向上的位置。 作用
    发表于 04-02 14:41

    DLPC3433的gain具体是通过调整什么来实现的?

    我看规格书说是能调整R、G、B颜色通道的gain,这个gain具体是通过调整什么来实现的?是每个颜色通道里面的DMD占空比吗?
    发表于 02-26 07:48

    如何优化BP神经网络的学习

    训练过程中发生震荡,甚至无法收敛到最优解;而过小的学习率则会使模型收敛速度缓慢,容易陷入局部最优解。因此,正确设置和调整学习率对于训练高效、准确的神经网络模型至关重要。 二、学习率优化
    的头像 发表于 02-12 15:51 1430次阅读

    BP神经网络与深度学习的关系

    ),是一种多层前馈神经网络,它通过反向传播算法进行训练。BP神经网络由输入层、一个或多个隐藏层和输出层组成,通过逐层递减的方式调整网络权重,目的是最小化网络的输出误差。 二、深度学习
    的头像 发表于 02-12 15:15 1351次阅读

    ADS1118想要发送AD命令,是不是可以通过加延时或者调整SPS来实现?

    ,如果想要发送AD命令,本次得到AD值,是不是可以通过加延时或者调整SPS来实现,还是说不论怎样,得到的都是上一次命令的转换值?
    发表于 01-16 07:52