长尾分布是如何影响目标检测最终分类的--读EQL Loss有感

以下仅代表个人的一些看法和感悟,如有错误,欢迎提出,一定感激不尽!

EQL Loss

最近才刚开始认真阅读《Equalization Loss for Long-Tailed Object Recognition》这篇文献,但是发现自己基础知识太薄弱,所以尽力去弥补,也算是亡羊补牢吧。

反向传播

个人的理解神经网络在进行参数更新的过程,是梯度下降法在神经网络的具体实现。比如一个分类网络,最终LOSS再进行反向传播的时候,是对输入的每一个维度都进行计算梯度,也就是说对全连接层中的矩阵W的所有的参数都要更新一遍。

交叉熵求导公式

在这里插入图片描述
可以看出在对输入的特征进行求导的时候,是对输入特征的每一个维度zj都进行求导,然后根据所对应的GT值,判断导数值为pj-1,还是pj。即在长尾分布情况下,如果输入的一个类别是a类,那么在求导的时候,会对不属于a类的其它类(例如b类)施加一个抑制梯度,抑制b类别,使分类器对b类输出较低的预测值。
假设现在带入到长尾分布的问题中,假设b类是一个尾部类,那么可想而知,分类器输入的情况大多数都是头部类,所以每当一个头部类样本送进来之后,然后根据LOSS进行反向传播,这时会对尾部类b类产生一个抑制梯度,那么可能这个抑制梯度很小,但是头部类的样本数多,所以累计起来之后就会对稀有类的预测产生影响。另外对于尾部类别b,头部类的样本对b来说都是负样本。

对EQL的理解(个人理解)

首先是公式:
在这里插入图片描述
主要的改进是添加了一个权重wj。
在这里插入图片描述

如果输入的区域是背景,那Er等于0,LOSS还是正常的交叉熵。
如果输入的区域是前景,那Er等于1。

在这里插入图片描述
这个参数就是用来判断是头部类还是尾部类。
如果是头部类则为0,LOSS还是交叉熵。
如果是尾部类则为,此时的权重wj变为yj,也就是说只有标签值为1的情况下,才计算LOSS。

就比如首先判断前景背景。然后再看是头部类还是尾部类,如果是头部类则还是交叉熵,如果是尾部类,那么则在计算LOSS的时候只对标签值为1的进行计算。
如果当前输入的是一个头部类,计算LOSS时,LOSS里面没有尾部类的那一部分,也就不会对尾部类产生抑制梯度。
如果当前输入的是一个尾部类,计算LOSS时,对于那些是头部类的正常计算,然后在尾部类别中,只有当前输入的这个类别参与LOSS计算,其他尾部类都不参与LOSS计算,因为wj=yj=0;即也不会对其他尾部类产生抑制梯度。
(以上纯个人理解,如有错误,真的欢迎指正!!!感谢!)

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为你_而来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值