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

    浏览量

    16435
  • 双线性变换
    +关注

    关注

    0

    文章

    2

    浏览量

    5611

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    使用ad9467-250采集低频信号,请问有什么方法来提高sfdr吗?

    你好,我现在在使用ad9467-250采集低频信号,在测试3Mhz部分时sfdr只有86,采样频率是102.4Mhz,请问有什么方法来提高sfdr吗
    发表于 04-24 06:05

    一种分段气隙的CLLC变换器平面变压器设计

    ,验证理论设计的正确性,为变压器制作提供理论依据。文中基于图1电路拓扑研究了平面变压器的设计与实现方法。 2 一种分段气隙的CLLC平面变压器设计图1中拓扑变压器副边三绕组并联,实际上等效为三个变压器
    发表于 03-27 13:57

    一种永磁电机用转子组件制作方法

    。 本文着重阐述了这种电机转子使用胶粘剂对磁钢和芯轴直接粘接的制造方法,不需要进行同轴度机加工,并为这种制造方法提供一种自动调心定位机构;并研究了磁钢零件的同轴度与产品最终装配后组件
    发表于 03-25 15:20

    PTD08A010W想把1.8V的输出通过软件编程的方法来改成3.3V的输出,怎么实现?

    我现在在用VC707FPGA开发板,上面用到了PTD08A010W这款电源芯片,这里提供的是12V转1.8V的功能,但现在我想把1.8V的输出通过软件编程的方法来改成3.3V的输出,请问有谁可以提供具体的帮助吗?下面是实际的
    发表于 03-03 07:55

    用ADS1258做了块采集卡,请问有比较简单的测试方法来测试我的采集卡的性能和精度吗?

    您好!我现在用ADS1258做了块采集卡,请问有比较简单的测试方法来测试我的采集卡的性能和精度吗。 我现在用普通的信号发生器产生了个正弦波,1KHz的频率,用采集卡采集了16*1024个数
    发表于 02-10 07:49

    基于ptp的分布式系统设计

    。 PTP概述 PTP是一种网络时间同步协议,它允许网络中的设备同步它们的时钟。PTP基于IEEE 1588标准,旨在提供亚微秒级别的时间同步精度。PTP通过在网络中传播时间信息,并使用这些信息校正本地时钟,从而实现精确的时间
    的头像 发表于 12-29 10:09 982次阅读

    西林瓶密封测试仪:分析不同测试方法的优劣

    作为药品包装的重要容器,西林瓶的密封性能对于保证药品质量至关重要。因此,西林瓶密封测试仪应运而生,提供了多种测试方法来评估西林瓶的密封性能。本文将重点分析肉眼检测、水检测和气体检测三测试方法
    的头像 发表于 12-17 11:52 836次阅读
    西林瓶密封测试仪:分析不同测试<b class='flag-5'>方法</b>的优劣

    一种降低VIO/VSLAM系统漂移的新方法

    本文提出了一种方法,通过使用点到平面匹配将VIO/VSLAM系统生成的稀疏3D点云与数字孪生体进行对齐,从而实现精确且全球致的定位,无需视觉数据关联。所提方法为VIO/VSLAM系
    的头像 发表于 12-13 11:18 1196次阅读
    <b class='flag-5'>一种</b>降低VIO/VSLAM系统漂移的新<b class='flag-5'>方法</b>