[NeurIPS2019]Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss
文章提供的代码结构简洁,简单易懂,十分适合作为Baseline。省去冗长的数学证明,直接看文章的贡献:
- 受SVM的hinge loss启发,提出了新的Loss函数鼓励每个类在表征空间有更大的margin。
- 延迟re-weighting的trick。
- 在多个数据集,包括情感分类、图像分类进行实验。
Motivation & Methods
LDAM(Label-Distribution-Aware Margie) Loss
tail classes的信息基本上较少,而且部署的模型通常很大,因此对tail classes的过度拟合似乎是改进这些方法的挑战之一。作者建议对tail classes进行比head classes更强的正则化,这样我们就可以在不牺牲模型拟合head classes的能力的情况下改进tail classes的泛化误差。
实现这个一般概念需要一个依赖于数据或依赖于标签的正则化器,由于依靠标签来区分head classes 或 tail classes,作者选择了最简单和最容易理解的数据相关属性之一:训练样本的边距——鼓励较大的边距可以看作是正则化,因为标准泛化误差范围(例如,[4, 59])取决于所有示例中最小边距的倒数。
受tail classes的泛化问题的启发,我们转而研究每个类的最小边距,并获得每个类和统一标签的测试误差边界,最小化获得的边界,可以在类的margin间得到最佳权衡。

对于具有线性可分离分类器的二元分类,边距
基于最小化基于边界正则化的启发,提出的新的损失函数:label distribution aware margin( LDAM) loss 取代交叉熵损失函数,这鼓励tail classes 去实现更大的margin。该方法与re-weighting, re-sampling正交。
令样本表示为
但hinge loss的不平滑性给优化带来了困难,因此作者将hinge loss与CE结合:
为了更容易调整边距,作者对logits(backbone最后一层的输出)使用L2进行normalize至1,对于模型最后一层全连接层参数也使用L2进行normalize至1。实际测试如果没有这一步,loss会非常大甚至导致nan。
这一步作者是follow: Wang, Feng, et al. "Additive margin softmax for face verification." IEEE Signal Processing Letters 25.7 (2018): 926-930.
DRW(Defers Re-Weighting)
re-weighting 和 re-sampling是两种处理不平衡数据的常见策略。当模型是深度神经网络时,对tail classes中的示例进行重新采样通常会导致对tail classes的严重过度拟合;加权tail classes的损失可能会导致优化困难和不稳定,特别是当类别极度不平衡时。
作者凭经验观察到(只是做了实验并没有分析原因),在按以下方式对学习率进行退火(可以理解为学习率衰减)之前,re-weighting和re-sampling均不如普通的经验风险最小化(ERM)算法(其中所有训练示例具有相同的权重)。通过re-weighting和re-sampling对学习率进行退火之前产生的特征比 ERM 产生的特征更差。
一种简单有效的训练策略:延迟采样(defers re-weighting)使得re-weighting策略与提出的损失函数更好结合。
首先是第一次训练:使用普通 ERM 和 LDAM 损失进行训练,然后对学习率进行退火,然后是第二次训练:部署具有较小学习率的重新加权 LDAM 损失。根据经验,第一阶段的训练可以为第二阶段的训练带来良好的初始化,并重新加权损失。由于损失是非凸的,并且第二阶段的学习率相对较小,因此第二阶段不会将权重移动很远。

作者发现,自己二阶段训练和LDAM Loss的效果 与原始re-weighting策略(通过每个类中示例数量的倒数重新加权)结合,取得了与[2]提出的CB损失函数的re-weighting策略相当的效果。并且,作者的方法,在比较early stopping,比[2]更加不敏感。
从代码来看,简单得说,这里作者还是沿用了[2]的“有效样本数”的倒数作为re-weighting的权重,只是在
[2] Cui, Yin, et al. "Class-balanced loss based on effective number of samples." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.
Experiments
作者实验设置两种不平衡:
- 长尾不平衡(Long-tailed imbalance):随着不同类别的样本量呈指数衰减。
- 步长不平衡(Step imbalance):所有少数类都具有相同的样本量,所有频繁类也是如此。


参考文献
- Cao, Kaidi, et al. "Learning imbalanced datasets with label-distribution-aware margin loss." Advances in neural information processing systems 32 (2019).
- Cui, Yin, et al. "Class-balanced loss based on effective number of samples." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律