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的比例。

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

简介

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

这里q_*一般会使用正确类别的预测分值。

Anchor Loss论文学习_第1张图片

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

Anchor Loss论文学习_第2张图片

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论文学习_第3张图片

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

 

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

分类网络的应用

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

Anchor Loss论文学习_第4张图片

K 代表类别数,是 K 个二分 loss 的相加;
p_k 代表 k 类别的标签,q_k 代表 k 类别的预测值;
q_* =q_t -delta t 代表p_t =1 对应的 index delta=0.05 ,就是说q_t 代表正样本的分值。增加 delta 是为了考虑当正负样本分值一样的时候增加一点惩罚。

 

Anchor Loss论文学习_第5张图片

比如上面这个例子,如果按照公式计算,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只应用在p_i=0的位置,就是高斯范围内的负样本不使用。因此可以做一个Mask来判定那些像素位置使用Anchor Loss

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

 

与其他loss函数的关系

Anchor LossFocal Lossbinary cross entropy之间的关系。

Anchor Loss论文学习_第6张图片

q_*代表的是真实类别的预测值,如果q_*  =1FL可以更新为

l_{FL}(p,q;\gamma)=-[p(1-q)^\gamma log(q)+(1-p)(1+q-q_*)^\gamma log(1-q)]

此时FLAnchor Loss等同。

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

梯度分析

Anchor Loss论文学习_第7张图片

Anchor Loss论文学习_第8张图片

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

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

实验

图像分类

Anchor Loss论文学习_第9张图片

Anchor Loss论文学习_第10张图片

人体姿态估计

Anchor Loss论文学习_第11张图片

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

Anchor Loss论文学习_第12张图片

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

Anchor Loss论文学习_第13张图片

ALMSE对比试验

Anchor Loss论文学习_第14张图片

超参数的选择试验

Anchor Loss论文学习_第15张图片

第一行左边是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,但是是否有效还需要看实验效果。

 
 

 

 

 

 

 

 

 


 

你可能感兴趣的:(分类网络)