前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >针对长尾分布的Eql损失

针对长尾分布的Eql损失

作者头像
孔西皮
发布2023-10-18 08:52:34
4730
发布2023-10-18 08:52:34
举报
文章被收录于专栏:前行的CVer前行的CVer

论文: The Equalization Losses: Gradient-Driven Training for Long-tailed Object Recognition

代码:

解决长尾分布问题直观的做法有两类:设计数据重采样策略,或者对损失重加权(为不同类别或实例分配不同的权重)。大多数现有方法都是基于类别的频率设计的,然而这有个缺陷:这些方法不够鲁棒,因为广泛存在着容易的负样本和冗余的正样本。并且数据重采样还会增加训练时长。而本篇工作使用累积正负梯度比作为指标。它更稳定、更精确,能更好地反映模型的训练状态,对于长尾类别,正负梯度比接近0,而对于非长尾类别,正负梯度比接近1。本文根据当前的累积梯度动态地重新平衡正/负梯度,并以实现平衡梯度比为统一目标。基于此思想,论文得到了BCE loss、CE loss、Focal loss的均衡损失(Equalization loss)版本。

在本篇论文之前,论文作者已经在CVPR2020 《Equalization loss for long-tailed object recognition》和 CVPR2021 《Equalization Loss v2: A New Gradient Balance Approach for Long-tailed Object Detection》发表了部分观点,而本篇论文像是对以往工作的大一统总结和扩展。

1. BCE loss及对应的Sigmoid-EQL

BCE loss项通过下面的公式计算

\operatorname{BCE}(p, y)= \begin{cases}-\log (p) & \text { if } y=1 \\ -\log (1-p) & \text { otherwise }\end{cases}

:

p_{\mathrm{t}}= \begin{cases}p & \text { if } y=1 \\ 1-p & \text { otherwise }\end{cases}

的loss为每个样本的loss求和:

\mathrm{L}(\mathcal{P}, \mathcal{Y})=\sum_{i \in \mathcal{I}} \sum_{j=1}^C \operatorname{BCE}\left(p_{\mathrm{t}}\right)

BCE中每个类别的概率是独立估计的,没有交叉归一化。这一特性使得二元交叉熵适用于由一组独立子任务组成的任务,如目标检测和多标签图像分类。

对其增加正梯度(即正样本带来的梯度,反之亦然)的权重,降低负梯度的权重,得到Sigmoid-EQL如下:

\mathrm{L}(\mathcal{P}, \mathcal{Y})=\sum_{i \in \mathcal{I}} \sum_{j=1}^C\left(q_j y_i^j+r_j\left(1-y_i^j\right)\right) \mathrm{BCE}\left(p_{\mathrm{t}}\right)

其中

2. CE loss及对应的Softmax-EQL

CE loss项通过下面的公式计算:

CE(p,y)=-y\log(p)

其中的p不使用sigmoid而是使用softmax:

p_i^j = \frac{e^{z_i^j}}{\sum^C_{k=1}e^{z_i^k}}

它对于需要单一输出类别的任务非常有用,例如图像分类和语义分割。尽管CE只计算一个实例的正样本的损失,但由于softmax函数,梯度将回流到负样本的对数。

的影响,具体的计算方式如下:

p_i^j=\frac{\left(G_j^{p o s}\right)^\pi e^{z_i^j}}{\sum_{k=1}^C\left(G_k^{p o s}\right)^\pi e^{z_i^k}}

其中

(在代码库中还有个Softmax-EQL v2版本,两者性能相近,计算方式如下:)

p_i^j=\left(\frac{\left(G_j^{p o s}\right)}{\sum_{k=1}^C\left(G_k^{p o s}\right)}\right)^{\pi} e^{z_i^j}

3. Focal Loss以及对应的Equalized Focal Loss

Focal loss主要用于单阶段目标检测中的前景和背景不平衡。Focal loss项通过下面的公式计算:

FL(p_t)=-\alpha_t(1-p_t)^{\gamma}\log(p_t)

$$ \alpha_t=\left\{\begin{array}{cc} \alpha &if\ \ \ y=1 \\ 1-\alpha, & otherwise \end{array}\right. $$

一般取2。可以看到Focal loss只区分样本的难易(即一般为前景难,背景容易),而不区分样本的类别。也就是说Focal loss主要解决的是前景-背景不平衡问题,而不是前景-前景不平衡问题。我们把EQL的思想和Focal loss的思想结合起来,我们期望稀有难样本比常见难样本造成更多的损失贡献,即得到Equalized Focal Loss:

\operatorname{EFL}\left(p_{\mathrm{t}}\right)=-w^j\left(1-p_{\mathrm{t}}\right)^{\gamma^j} \log \left(p_{\mathrm{t}}\right)

其中:

w^j=\alpha_t\frac{\gamma_b+\gamma_v^j}{\gamma_b}

作者在双阶段目标检测 (Sigmoid-EQL)、单阶段目标检测(Equalized Focal Loss)、图像分类(Softmax-EQL)、语义分割四个任务上在多个长尾分布数据集进行了验证,证明了EQL可以显著涨点,特别是对长尾类别效果提升尤为明显。

笔者也在自己的一个长尾分类任务中试了Softmax-EQL,确实可以带来可观的性能提升!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. BCE loss及对应的Sigmoid-EQL
  • 2. CE loss及对应的Softmax-EQL
  • 3. Focal Loss以及对应的Equalized Focal Loss
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档