CHM Loss

CHM Loss

  • 《Gradient Harmonized Single-stage Detector》
    2019,Buyu Li et al. CHM Loss
    代码:https://github.com/libuyu/GHM_Detection

1.引言:
one-stage的目标检测算法一直存在的问题是正负样本不均衡,简单和困难样本的不均衡。在one-stage算法中,负样本的数量要远远大于正样本,而且大多数负样本是简单样本(well-classified)。单个简单负样本的梯度虽然小,但是由于数量过大,会导致简单负样本主导模型的训练。在《focal loss》中通过大大降低简单样本的分类loss来平衡正负样本,但是设计的loss引入了两个需要通过实验来调整的超参数α和γ。
本篇论文从梯度的角度出发,提出gradient harmonizing mechanism(GHM)来解决样本不均衡的问题,GHM思想不仅可以应用于anchor的分类,同时也可以应用于坐标回归。

2.GHM(梯度均衡机制)
首先我们要定义统计对象——梯度模长(gradient norm)。考虑简单的二分类交叉熵损失函数(binary cross entropy loss):
在这里插入图片描述
其中 p=sigmoid(x) 为模型所预测的样本类别的概率,p* 是对应的监督。则其对 x 的梯度(导数)为:
在这里插入图片描述
于是我们可以定义一个梯度模长,g=|p-p*|。
对一个交叉熵损失函数训练收敛的单阶段检测模型,样本梯度模长的分布统计如下图:
CHM Loss_第1张图片
于是某个样本的g值大小就可以表现这个样本是简单样本还是困难样本。从一个收敛的检测模型中统计样本梯度的分布情况如下上图所示。从图中我们可以看出,与之前所想一样,简单样本的数量要远远大于困难样本。但同时也看出,一个已经收敛的模型中还是有相当数量的非常困难的样本,我们把这些非常困难的样本当作异常值(outliers),论文指出如果一个好的模型去学习这些异常样本会导致模型准确度降低。我的理解是,这些异常值就像数据的噪声一样,比如一个长得非常像狗的蛋糕,模型学习这些异常值反而会导致模型误入歧途。

基于以上现象与分析,研究者提出了梯度均衡机制,即根据样本梯度模长分布的比例,进行一个相应的标准化(normalization),使得各种类型的样本对模型参数更新有更均衡的贡献,进而让模型训练更加高效可靠。
由于梯度均衡本质上是对不同样本产生的梯度进行一个加权,进而改变它们的贡献量,而这个权重加在损失函数上也可以达到同样的效果,此研究中,梯度均衡机制便是通过重构损失函数来实现的。
为了清楚地描述新的损失函数,我们需要先定义梯度密度(gradient density)这一概念。仿照物理上对于密度的定义(单位体积内的质量),我们把梯度密度定义为单位取值区域内分布的样本数量。
首先定义梯度密度函数(Gradient density function)
在这里插入图片描述
其中 g k g^{k} gk表示第k个样本的梯度,而且
CHM Loss_第2张图片
所以梯度密度函数GD(g)就表示梯度落在区域:
的样本数量。再定义梯度密度协调参数(gradient density harmonizing parameter) β。
在这里插入图片描述
这里乘样本数量 N,是为了保证均匀分布或只划分一个单位区域时,该权值为 1,即 loss 不变。
可以看出,梯度密度大的样本的权重会被降低,密度小的样本的权重会增加。于是把GHM的思想应用于分别应用于分类和回归上就形成了GHM-C和GHM-R。

3.GHM-C
把GHM应用于分类的loss上即为GHM-C,定义如下所示
CHM Loss_第3张图片
根据GHM-C的loss计算方式,候选样本中的简单负样本和非常困难的异常样本的权重都会被降低,即loss会被降低,对于模型训练的影响也会被大大减小。正常困难样本的权重得到提升,这样模型就会更加专注于那些更为有效的正常困难样本,以提升模型的性能。GHM-C loss对模型梯度的修正效果如下图所示,横轴表示原始的梯度loss,纵轴表示修正后的。由于样本的极度不均衡,这篇论文中所有的图纵坐标都是取对数画的图。
CHM Loss_第4张图片
结合梯度密度的分布图,和上图单个样本的的梯度修正,我们可以得出整体样本对于模型训练梯度的贡献,如下图所示。
CHM Loss_第5张图片
4.GHM-R
GHM的思想同样适用于anchor的坐标回归。坐标回归loss常用smooth_l1,如下所示
在这里插入图片描述
在这里插入图片描述
其中 t i = ( t x , t y , t w , t h ) t_{i}=(t_{x},t_{y},t_{w},t_{h}) ti=(tx,ty,tw,th)表示模型预测坐标偏移量, t i = ( t x ∗ , t y ∗ , t w ∗ , t h ∗ ) t_{i}=(t_{x}^{*},t_{y}^{*},t_{w}^{*},t_{h}^{*}) ti=(tx,ty,tw,th)表示anchor实际坐标偏移量, δ \delta δ表示 S L 1 SL_{1} SL1的函数分界点,常取1/9。定义 d = t i − t i ∗ d=t_{i}-t_{i}^{*} d=titi,则 S L 1 SL_{1} SL1的梯度求导为
在这里插入图片描述
其中sgn表示符号函数。可以看出对于 ∣ d ∣ > = δ |d|>=\delta d>=δ的所有样本梯度绝对值都为1,这使我们无法通过梯度来区分样本,同时d理论上可以到无穷大,这也使我们不能使用上面提到的RU。所以论文对 S L 1 SL_{1} SL1进行变形,计算方法及梯度求导如下所示,
在这里插入图片描述
在这里插入图片描述
A S L 1 ASL_{1} ASL1 S L 1 SL_{1} SL1的性质很相似,当d较大时都近似为L1 loss,d较小是都近似为L2 loss,而且 的范围在[0,1),适合采用RU方法,在实际使用中,采用μ=0.02。

定义梯度的绝对值gr为:
在这里插入图片描述
于是我们可以基于gr统计样本坐标回归偏移量的梯度分布情况如下图所示。由于坐标回归都是正样本,所以简单样本的数量相对并不是很多。而且不同于简单负样本的分类对模型起反作用,简单正样本的回归梯度对模型十分重要。但是同样也可以看出来,存在相当数量的异常样本的回归梯度值很大。
CHM Loss_第6张图片
所以使用GHM的思想来修正loss函数,可以得到
CHM Loss_第7张图片
GHM-R loss对于回归梯度的修正如下图所示。可以看出,GHM-R loss加大了简单样本和正常困难样本的权重,大大降低了异常样本的权重,使模型的训练更加合理。
CHM Loss_第8张图片

摘录:
https://zhuanlan.zhihu.com/p/55017036
https://zhuanlan.zhihu.com/p/50217821


注:博众家之所长,集群英之荟萃。

你可能感兴趣的:(损失函数)