Anchor Loss论文学习

论文名称Anchor Loss: Modulating Loss Scale based on Prediction Difficulty

发布时间2019.09.24

作者:加州理工

论文地址https://arxiv.org/abs/1909.11155v1

摘要

作者提出了一种根据预测难度自动调整cross entropy比例的loss

在预测结果中,我们只会选择最高置信分作为输出,而不会考量这个目标本身的预测难度。本文的思想是根据正样本与负样本的预测分值的gap,做为预测难度属性,结合难度属性的信息动态的调整loss的比例。

作者主要在分类网络和人体姿态估计网络中试验了这种方法,都取得了不错的效果。

简介

Anchor Loss论文学习anchor probabilityanchor loss会参考Anchor Loss论文学习来评价背景类别(不是目标的类别都是背景类别)的难易程度。如果背景类别的分值大于Anchor Loss论文学习,则认为这个背景类别为难学,如果背景类别的分值小于Anchor Loss论文学习,则认为这个背景类别容易学。

这里Anchor Loss论文学习一般会使用正确类别的预测分值。

Anchor Loss论文学习

因为左右身体的对称性,网络常常很难区分左右,或者说网络对于相似的物体比较难区分。虽然在正确类别上的分值可能也不低,但是最终会取最高的分值,可能导致预测错误。AL就是要对类别预测错误,并且有比较高的分值时,给更多的惩罚。左图如果背景倍识别为某个类别,ALCE的比较曲线。可以看出当预测分值大于0.5loss会很快的增加,这样对于预测错误的高分值有很快的抑制作用。

Anchor Loss论文学习

a.C1是正确的类别,C1预测的分值为0.1,如果其他类别预测的分值高于0.1,可以看到anchor loss方法会有更快上升的惩罚。
b.C1是正确的类别,C1预测的分值为0.5,如果其他类别的预测分值小于0.5anchor loss会比较小,而如果其他类别的预测分值大于0.5anchor loss的值会非常快速上升。
c.C1是正确的类别,C1预测的分值为0.9,表示现在这个sample学习的不错,anchor loss的曲线与cross entropy基本一致。
 

本文本文的主要贡献是:

I.提出了一种新颖的anchor loss用于图像分类
II.anchor loss应用在了人体姿态识别上
III.比较了anchor loss与其他loss的区别
IV.实验体现了anchor loss在分类任务和人体姿态识别任务上的效果

方法介绍

Anchor Loss

Anchor Loss论文学习

1.p为标签值,为0 或者1anchor loss只会改进负样本的计算,所以这里p0才会生效
2.q为当前这个类别的预测值,因为是负样本,所以希望q越小越好
3.Anchor Loss论文学习是正确类别的预测值
4.gamma是超参数

 

if q > Anchor Loss论文学习表示预测错误的类别分值大于预测正确类别的分值,需要加大惩罚,所以modulator的值会大于1
if q = Anchor Loss论文学习表示预测错误的类别等于预测正确类别的分值,此时会等同于CE loss
if q < Anchor Loss论文学习 表示预测错误的类别分值小于预测正确类别的分值,表示预测正确,因为modulator的值会小于1

分类网络的应用

为了应用AL,这里会使用sigmoid-binary cross entropy作为基础losssigmoid-binary cross entropy loss是用来做多标签识别任务,可以判断一张图片中有哪些物体,将每个类别作为二分类进行学习。

Anchor Loss论文学习

K代表类别数,是K个二分loss的相加;
Anchor Loss论文学习代表k类别的标签,Anchor Loss论文学习代表k类别的预测值;
Anchor Loss论文学习=Anchor Loss论文学习-deltat代表Anchor Loss论文学习=1对应的indexdelta=0.05,就是说Anchor Loss论文学习代表正样本的分值。增加delta是为了考虑当正负样本分值一样的时候增加一点惩罚。

 

Anchor Loss论文学习

比如上面这个例子,如果按照公式计算,class1就是简单案例,负样本前的权重不考虑delta是1+0.25-0.75=0.5.class2是临界值的例子,这里会增加一个delta微微增加惩罚,所以前面的权重是1.05.class3和class4就是难例,不考虑delta的话前面的权重是1+0.75-0.25=1.5,1+0.9-0.1=1.8.显而易见,对难例增加了惩罚。

人体姿态估计的应用

人体姿态估计是要识别人体的关键点,与以前方法一样,对每个关键点做一个高斯分布的真值。Anchor Loss只应用在Anchor Loss论文学习=0的位置,就是高斯范围内的负样本不使用。因此可以做一个Mask来判定那些像素位置使用Anchor Loss

Anchor Loss论文学习

Anchor Loss论文学习

Anchor Loss论文学习

公式3表示会使用anchor lossmask
公式4表示Anchor Loss论文学习的计算公式,取预测的最大值作为Anchor Loss论文学习 ,但是要求Anchor Loss论文学习大于0.5,如果没有取到Anchor Loss论文学习如何处理文中没有提到。
公式5就是Anchor Loss在点预测中的使用,只会影响Mask部分的计算。

 

与其他loss函数的关系

Anchor LossFocal Lossbinary cross entropy之间的关系。

Anchor Loss论文学习

Anchor Loss论文学习代表的是真实类别的预测值,如果Anchor Loss论文学习  =1FL可以更新为

Anchor Loss论文学习

此时FLAnchor Loss等同。

再如果????=0,那么就等同于binary cross entropyFL也等同于CE

梯度分析

Anchor Loss论文学习

Anchor Loss论文学习

a)图表示FLCE的比较,可以看出FL一直比CE
b)图表示FLCE的梯度比较,FL的目的是在预测正确的时候降低梯度,对于预测错误的情况梯度增加不明显
c)图表示ALCE的比较,可以看出AL在错误的预测分值到0.5loss会比CE
d)图表示ALCE的梯度比较,可以看出在预测正确的范围梯度比较小,在预测错误的范围梯度比较大

从以上比较可以看出ALFL更灵活,会在不同的范围loss和梯度都有不同的变化。

实验

图像分类

Anchor Loss论文学习

Anchor Loss论文学习

人体姿态估计

Anchor Loss论文学习

上图是MPII数据集的验证结果

Anchor Loss论文学习

上图是PCK数据集的验证结果

Anchor Loss论文学习

ALMSE对比试验

Anchor Loss论文学习

超参数的选择试验

Anchor Loss论文学习

第一行左边是MSE loss,右边是Anchor Loss

第二行是预测人体另一半稍微遮挡的效果

总结

本文提出了一种新颖的Loss,叫做Anchor LossAnchor Loss会考虑预测难度来调整CE loss的权重。并且作者在图像分类和人体姿态识别问题中都验证了Anchor Loss的有效性。

作者设计的权重有点想早期的Hinge Loss,但是Hinge Loss会有一个margin,比如它会希望正样本的预测值比负样本的预测值高出一个margin,margin可以设置为0.1,0.2之类。本文的loss或许也可以尝试增加个margin,但是是否有效还需要看实验效果。