损失函数——长尾分布 / Equalization Loss【论文笔记】


开始之前学习一个单词热热身:

without bells and whistles
     深度学习论文中经常能看到这句话,英语本意是花哨的事物,翻译成中文即为经常说的花里胡哨的东西

     在深度学习中,通过用别人的backbone,然后加上自己发明的部件,通过消融性实验,证明自己的部件能够对现有网络有所增幅,即没有通过各种各样的tricks,比如数据集、调整各种超参数等就可以达到很好的效果。所以自己发明的部件产生的增益是必然,而不是偶然。


1 前言

论文题目:Equalization Loss for Long-Tailed Object Recognition
论文链接:https://arxiv.org/pdf/2003.05176.pdf

神经网络中训练集的长尾分布:

     如下图在Head部分中,包含的少部分类别范围中的图片数量占据了整个数据集的大多数,而在Tail包含的类别范围中的图片数量却很少。在自然情况下,与正态分布相比,数据往往更倾向于呈现长尾分布。

     参考帕累托法则(Pareto principle),又称为二八定律。比如80%的财富集中在20%的人手里,图书馆里20%的书可以满足80%的顾客。对于目标检测应用,假设共有10个类别,则一个数据集中80%的图片为仅仅涵盖了2个类别,而20%的图片却囊括了8个类别,若直接利用这样的数据分布训练神经网络,往往会对头部数据过拟合,从而在预测时忽略尾部的类别。如何有效的利用不均衡的长尾数据,来训练出能力均衡的神经网络就是我们所关心的问题。

在这里插入图片描述

     "The problem of the long-tailed distribution of the categories is a great challenge to the learning of object detection models, especially for the rare categories (categories with very few samples). the rare categories can be easily overwhelmed by the majority categories (categories with a large number of samples) during training and are inclined to be predicted as negatives. "

使用长尾分布的数据集对神经网络进行训练时,对于尾部的类型较多但数据较少的图片集,无法准确预测尾部类别的原因:

     "When a sample of a certain class is utilized for training, the parameters of the prediction of the other classes will receive discouraging gradients which lead them to predict low probabilities. Since the objects of the rare categories hardly occur, the predictors for these classes are overwhelmed by the discouraging gradients during network parameters updating. "

理解一下:当某个类别的样本用于训练时,其他类别的预测参数将收到起副作用的梯度,使得对于其他类别的预测生成低概率。 由于稀有类别的对象几乎不会出现,因此在网络参数更新期间,起副作用的梯度会淹没这些类别的预测变量。
     那么如何解决上述引入的问题呢?

1.1 重采样(re-sampling)

     重采样在早期研究中又包含1)对头部类别的欠采样(under-sampling)和2)对尾部类别的过采样(over-sampling)。不过他们的本质其实都是对不同类别的图片采样频率根据样本数量进行反向加权。

     类别均衡采样(class-balanced sampling)是一种典型的过采样方法,其核心是根据不同类别的样本数量,对每个图片的采样频率进行加权。关于采样策略,下面引用Decoupling Representation (ICLR 2020)的通用公式来表示:在这里插入图片描述
     其中C为类型数量,ni为类别i的样本总数,pj为从类别j中采样一个图片的概率。其中类别均衡采样(class-balanced sampling)则是q=0的情况,即所有类别都采样相同数量的样本,当然尾部类别的图片可能会被反复重复采样,所以一般也会做一些简单的数据增强,例如反转,随机剪裁等。

     总的来说,重采样就是在已有数据不均衡的情况下,人为的让模型学习时接触到的训练样本是类别均衡的,从而一定程度上减少对头部数据的过拟合。不过由于尾部的少量数据往往被反复学习,缺少足够多的样本差异,不够鲁棒,而头部拥有足够差异的大量数据又往往得不到充分学习,所以重采样也并非是个真正完美的解决方案。

1.2 重加权(re-weighting)

     重加权则主要体现在分类的loss上。这里先给个Re-weighted Cross-Entropy Loss的通用公式:

在这里插入图片描述

     其中zj为网络的输出,β为是重加权中的权重,需要注意的是,这里的β不是一个常数,而是一个取决于具体实现的经过计算的权重,但一般来说β的趋势是,给头部类别更低的权重,给尾部类别更高的权重,从而反向抵消长尾效应。


2 softmax/sigmoid cross-entropy

     Equalization Loss旨在于减轻长尾数据类型分布样本数量不平衡问题,首先回顾一下传统的分类损失softmax cross-entropysigmoid cross-entropy.

2.1 softmax cross-entropy

     softmax cross-entropy对于预测每个类别的概率输出是相关的,对于每个类别的预测概率求和总为1,softmax cross-entropy的计算公式为:

在这里插入图片描述
     其中C表示数据集类别数目,设z为网络对于某样本关于每一个类别的输出,则pj=Softmax(z),并且有在这里插入图片描述
式中yj在这里插入图片描述

注意:用于表示数据集类别数目的参数C包含背景类,需要在所有的类别数目+1。

2.2 sigmoid cross-entropy

     sigmoid cross-entropy独立得估计每个类别的概率,sigmoid cross-entropy的计算公式为:在这里插入图片描述

其中C表示数据集类别数目,pj=Sigmoid(z)

注意:用于表示数据集类别数目的参数C不包含背景类,当候选框属于背景时,相应的yi=0

     可以看到,对于某个特定前景类别c,其他的所有前景类别j都将被视为负样本,所以在模型更新时类别j将会受到副作用梯度pj,使得对于类别c,网络预测出为类别j的概率降低。如果类别j的样本数很少,在迭代优化过程中,对于类别j的副作用梯度将比正作用梯度发生更多次。这种累计的副作用梯度对类别j会产生极大的影响,最终可能导致即使遇到类别j的正样本,网络也输出一个较低的预测概率。

2.3 插一句——sigmoid和softmax的对比关系

     首先这两个函数的计算公式如下:
sigmoid:

在这里插入图片描述

softmax:

在这里插入图片描述
     sigmoid激活函数,还记得现在的神经网络引入非线性激活函数已经大部分用ReLU()代替了sigmoid(),因为sigmoid()函数饱和会发生梯度消失,并且sigmoid()函数中包含指数运算,计算量大,会消耗大量计算资源。

     而softmax()常常作为神经网络头部的多类型分类器,一般为神经网络全连接层后加一个softmax()用于输出预测类别概率。

     当然sigmoid()函数也可以作为二分类输出,那么二分类问题,应该选择sigmoid还是softmax?

     首先记隐层的输出为 h
     如果使用sigmoid的话,输出层有一个结点,值为θh
     那么类别1,2的预测概率分别为
在这里插入图片描述
     而如果使用softmax,输出层有两个结点,值分别是θ1hθ2h。类别1,2的预测概率分别为
在这里插入图片描述
     可以看到,sigmoid网络中的θsoftmax网络中的(θ1-θ2)是等价的。也就是说,不管sigmoid网络能产生什么样的预测,也一定存在softmax网络能产生相同的预测,只要令(θ1-θ2)=θ即可;反之亦然。而softmax网络的训练过程可以看作是在直接优化(θ1-θ2),优化结果和sigmoid应该没什么差异。(来源:SleepyBag)


3 Equalization Loss

3.1 Equalization Loss公式

     作者在 sigmoid cross-entropy损失函数中引入参数ωEqualization Loss的计算公式如下:

在这里插入图片描述
     对于一个候选框r,参数ωj为:

在这里插入图片描述
其中:
     E(r )取值为0/1,当候选框r属于前景时取1,属于背景时取0;
     fj表示在数据集中类别j的频率,即为类别j的样本数除以总样本数;
     Tλ(x)是一个阈值函数,当x<λ时输出为1,否则为0。λ用于从数据集类别中区分尾部类别(Tailed-class);
     Tail Ratio(TR)是用于设置参数λ的一个标准。
在这里插入图片描述
     其中Nj表示类别j的样本数。

     该方法的出发点为减少梯度反向传播时对tail样本的惩罚,仅有1个超参数λ需要人工调节,可以嵌入到任何模型训练中,故该方法十分简洁。

     总之,在均衡损失函数中有两种特殊的设计:
     1)对于数量频率低于阈值的稀有类别,忽略负样本的副作用梯度。
     2)不忽略背景样本的梯度。

     如果忽略了稀有类别的背景样本梯度负,则在训练期间将没有针对它们的负样本,学习的模型的预测结果将会产生大量的假阳性。

3.2 Equalization Loss拓展到softmax

     因为softmax cross-entropy广泛应用于图像分类中,作者将 Equalization Loss思想引入到softmax cross-entropy中:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
     其中β为随γ变化的随机变量,γ的概率为1,1-γ的概率为0。

     注意:图像分类与目标检测中的分类不同:在图像分类任务中国,每个图像都属于一个特定类别,因此没有背景类别。 因此,权重项wk中的的E(r )部分由变量β替代,用于随机维护负样本的梯度。

4 Focal LOSS

     Focal LOSS 着眼于目标检测中前景和背景间的数据不平衡,而Equalization LOSS着眼于不同前景类别间的数据不平衡。这里把Focal LOSS也总结在这里便于对比总结。

     对于二分类任务,Cross Entropy(CE)计算公式为:
在这里插入图片描述
     为简化上式表示,定义
在这里插入图片描述
     那么
在这里插入图片描述
     “One notable property of this loss, which can be easily seen in its plot, is that even examples that are easily classified (pt >> 5) incur a loss with non-trivial magnitude. When summed over a large number of easy examples, these small loss values can overwhelm the rare class.”

4.1 Balanced Cross Entropy

     在单阶段目标检测中,在训练时前景和背景数量存在极大的不平衡,当然为了解决关于正负样本间的不平衡,可以在损失函数中引入一个权重因子α
在这里插入图片描述
     其中αt的定义与pt相同,这样保证当为正样本时,损失权重较大而当为负样本时,损失函数占比较小。

4.2 Focal LOSS 公式

     在训练过程中,易分类负样本占据了主要的loss并且主导了损失梯度,然而权重因子α仅仅平衡了正负样本的权重,作者在此基础上引入了调制因子(1-pt)^γ,目的是减轻易分类样本loss的比重而着眼于难分类样本(预测概率在0.5左右的样本)的loss比重。Focal LOSS计算公式如下:

在这里插入图片描述
Focal Loss有两个特性:

     (1)当一个样本被误分类后,pt值很小,此时调制因子1-pt趋近于1,不会影响loss的权重;当样本被正确预测后,pt趋近于1,调制因子1-pt趋近于0,因此易分类样本的loss权重被降低;
     (2)超参数γ调节易分类样本权重占比的降低速率,当γ=0时FL与CE相同;实验证明γ=2时结果最佳;
在这里插入图片描述

     最后引入Balanced Cross Entropy中的参数α,则最后的Focal Loss计算公式为:
在这里插入图片描述

5 总结

     本篇总结是MY师兄推荐给我看的论文,在主要解决项目中数据集的长尾分布问题,并且总结回顾了softmax、sigmoid、softmax cross-entropy、sigmoid cross-entropy、Focal Loss,学习了Equalization Loss,总而言之都是在基本的Cross Entropy之上增加不同类型的权重系数。

参考:
https://zhuanlan.zhihu.com/p/153483585
https://www.zhihu.com/question/295247085/answer/711229736

欢迎关注【OAOA

  • 15
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
直方图均衡化是一种图像增强的方法,它通过对图像像素值的直方图进行调整,使得图像的对比度增强,细节更加清晰。直方图均衡化在图像处理中起到了非常重要的作用。 直方图均衡化的基本原理是将图像像素值的分布调整为更均匀的分布。首先,计算图像的灰度直方图,即统计每个灰度级的像素个数。然后,根据直方图,计算每个灰度级的累计概率分布。接下来,根据累计概率分布,将原图像的每个像素值映射到新的像素值,使得所得到的图像像素值分布更均匀。 直方图均衡化能够有效地增强图像的对比度,使得图像中的细节更加明显。通过调整图像的像素值分布,直方图均衡化能够增加图像中的亮度差异,使得暗区域变亮、亮区域变暗,从而使得整个图像具有更好的视觉效果。 直方图均衡化的应用非常广泛,可以用于图像增强、图像配准、图像压缩等领域。在图像增强中,直方图均衡化可用于改善照明条件差的图像,提升图像的视觉质量。在图像配准中,直方图均衡化可用于改善不同图像之间的亮度差异,使得它们更容易对齐。在图像压缩中,直方图均衡化可用于减小图像中像素值的动态范围,从而提高压缩效果。 综上所述,直方图均衡化是一种重要的图像处理技术,它能够改善图像的对比度,提升图像的视觉效果。在实际应用中,直方图均衡化有着广泛的应用前景,并且可以与其他图像处理方法相结合,进一步提高图像处理的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值