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

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

3天内不再提示

提供一种logit的调整方法来应对长尾分布的问题

工程师邓生 来源:GiantPandaCV 作者:Garfield 2022-09-05 14:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 论文信息

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.2 Post-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.pngafa47d2a-2cd9-11ed-ba43-dac502259ad0.png

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

6. 结论

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



审核编辑:刘清

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

    关注

    0

    文章

    49

    浏览量

    16531
  • 双线性变换
    +关注

    关注

    0

    文章

    2

    浏览量

    5630

原文标题:Google提出面向长尾分布的logit的调整新方法

文章出处:【微信号:GiantPandaCV,微信公众号:GiantPandaCV】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    平台晃动、对位不准?T 型槽专属固定方法来

    槽装配平台的几种常见固定方法、操作要点及注意事项。、固定前的准备工作在进行平台固定之前,需要做好以下准备工作:场地检查:安装地面承重应达到平台重量加上比较大载荷的1.5倍以上,地面平整度误差不超过
    发表于 03-28 13:23

    伺服驱动器增益参数的调整方法

    。   方法:高效便捷的自动调整 这是现代伺服驱动器的首选入门方法调整工具会分析负载特性,自动计算并设定最佳参数,能
    的头像 发表于 03-19 12:10 695次阅读

    步进电机运行任务参数调整方法

    步进电机作为一种将电脉冲信号转换为角位移或线位移的开环控制元件,其运行任务参数的调整直接关系到系统的精度、效率和稳定性。在现代工业自动化、3D打印、数控机床等领域,步进电机的参数优化已成为工程师必须
    的头像 发表于 03-03 17:22 908次阅读
    步进电机运行任务参数<b class='flag-5'>调整</b><b class='flag-5'>方法</b>

    中国科学院深圳先进院:研制一种MXene 电化学传感器秒级精准检测冰毒

    生物传感器 非法药物滥用对公共卫生和安全构成了全球性挑战,迫切需要可靠的检测方法来遏制贩运和减轻社会危害。甲基苯丙胺 (METH) 是一种高度成瘾且广泛传播的兴奋剂,需要紧急监测解决方案
    的头像 发表于 01-16 18:11 666次阅读
    中国科学院深圳先进院:研制<b class='flag-5'>一种</b>MXene 电化学传感器秒级精准检测冰毒

    提高石英晶体振荡器相位噪声性能的4种方法

    如果你正在设计款用于5G基站或精密雷达的振荡器,单纯靠一种方法是不够的。你需要“SC切割晶体 + 四点封装”作为基础,配合“电子补偿”电路应对动态环境,同时辅以“超低噪声电源”和“
    的头像 发表于 01-16 16:38 1459次阅读
    提高石英晶体振荡器相位噪声性能的4<b class='flag-5'>种方法</b>

    淘宝搜索API:长尾词挖掘,SEO提升的利器!

    ​ 在淘宝这个巨大的生态中,商品能否被买家精准地搜索到,直接关系到店铺的流量和转化。而搜索优化的核心之,就是关键词策略。除了竞争激烈的头部热词, 长尾关键词 往往蕴含着巨大的潜力。它们搜索意图明确
    的头像 发表于 01-09 14:48 486次阅读
    淘宝搜索API:<b class='flag-5'>长尾</b>词挖掘,SEO提升的利器!

    晶振的频率误差可以修正吗

    的频率产生影响,因此可以通过添加温度补偿电路减小温度对晶振频率的影响。例如,可以采用热敏电阻等元件对晶振的频率进行温度补偿。 2.数字校准:数字校准是一种通过软件算法修正晶振频率
    发表于 12-12 06:20

    指令集测试的一种纠错方法

    本文描述在进行指令集测试的一种纠错方法 1.打开测试指令集对应的dump文件 dump文件是指由汇编文件进行反汇编之后,可以供人阅读指令的反汇编文件。其包含了每条指令的具体操作的信息。指令集测试
    发表于 10-24 14:04

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

    应明确的实操方法,确保阈值调整贴合负载实际需求: 、第步:分类识别负载类型 —— 明确 “敏感指标方向” 不同类型的负载,对电能质量的敏感指标完全不同(如有的怕暂降、有的怕谐波),
    的头像 发表于 10-10 17:00 1355次阅读
    如何分析负载特性<b class='flag-5'>来</b><b class='flag-5'>调整</b>报警阈值?

    动态调整同步周期的具体方法是什么?

    资源浪费” 之间找到动态平衡。其具体方法可分为四大类,每类均包含 “状态感知 - 阈值判断 - 周期调整 - 反馈验证” 的闭环逻辑,以下为详细说明: 、基于 “同步误差反馈” 的动态调整
    的头像 发表于 09-19 11:31 1022次阅读

    一种抗辐射加固检错纠错电路的设计

    电子发烧友网站提供一种抗辐射加固检错纠错电路的设计.pdf》资料免费下载
    发表于 08-11 15:38 0次下载

    一种新的无刷直流电机反电动势检测方法

    无位置传感器无刷直流电机的控制算法是近年来研究的热点之,有霍尔位置信号直流电机根据霍尔状态确定通断功率器件。利用无刷直流电机的数学模型,根据反电动势检测原理,提出了一种新的线反电动势检测
    发表于 08-07 14:29

    一种新的无刷直流电机反电动势检测方法

    无位置传感器无刷直流电机的控制算法是近年来研究的热点之,有霍尔位置信号直流电机根据霍尔状态确定通断功率器件。利用无刷直流电机的数学模型,根据反电动势检测原理,提出了一种新的线反电动势检测
    发表于 08-04 14:59

    想在rtsmart中使用uart2,是不是只能通过修改设备树方法来实现uart2的复用呀?

    我想在rtsmart中使用uart2,是不是只能通过修改设备树方法来实现uart2的复用呀? 修改设备树后如何只编译设备树文件? 编译生成的文件可以直接替换到庐山派里吗,具体替换路径在哪里呀?
    发表于 06-24 07:04

    一种新型宽带鞭状套筒天线

    电子发烧友网站提供一种新型宽带鞭状套筒天线.pdf》资料免费下载
    发表于 05-28 14:05 1次下载