热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[ECCV2020]Distributionbalancedlossformultilabelclassificationinlongtaileddatasets

ContentsIntroductionMethodsRe-balancedweightingafterRe-samplingNegative-TolerantRegulariza

Contents

  • Introduction
  • Methods
    • Re-balanced weighting after Re-sampling
    • Negative-Tolerant Regularization
    • Distribution-Balanced Loss (DB loss)
  • Experiments
    • Dataset Construction
    • Experiments
      • Benchmarking Results
  • References


Introduction
  • 针对具有长尾分布的多标签分类问题,作者提出了一种新的损失函数 Distribution-Balanced Loss。作者认为,多标签分类问题有两个难点:label co-occurrencedominance of negative labels,Distribution-Balanced Loss 则通过两个对标准二分类交叉熵的改进来解决上述问题:(1) 考虑了 label co-occurrence 之后的权值重平衡策略 (re-balanced weighting);(2) 用于缓解负样本过度抑制 (over-suppression of negative labels) 的 negative tolerant regularization
  • 在 Pascal VOC 和 MS COCO 上的实验证明,Distribution-Balanced Loss 与已有方法相比性能有较大提升

Related work: 其他的重加权工作:
在这里插入图片描述在这里插入图片描述


Methods

NNN 为数据集的样本数,CCC 为类别数,yk=[y1k,...,yCk]∈{0,1}Cy^k=[y_1^k,...,y_C^k]\in\{0,1\}^Cyk=[y1k,...,yCk]{0,1}C 为样本 kkk 对应的标签向量,ni=∑k=1Nyikn_i=\sum_{k=1}^Ny_i^kni=k=1Nyik 为类别 iii 的正样本数 (N≤∑i=0CniN\leq\sum_{i=0}^Cn_iNi=0Cni)


Re-balanced weighting after Re-sampling


  • 在单标签分类中,常用的重采样方法有 class-aware sampling,也就是先随机采样一个类别,再从该类别中随机采样一个样本。然而,在多标签分类中,label co-occurrence 是十分常见的。例如,一张图片中包含的 “老虎”、“猎豹” 等非常见标签经常会和 “树”、“河” 等常见标签一起出现。因此,(1) 重采样会引入类内不平衡,也就是同一类中的不同样本不再是以相同概率被采样,这是因为按照 class-aware sampling,多标签分类中样本的采样概率为 PI(xk)=1C∑yik=11niP^I(x^k)=\frac{1}{C}\sum_{y_i^k=1}\frac{1}{n_i}PI(xk)=C1yik=1ni1 而非 PiC(xk)=1C1niP_i^C(x^k)=\frac{1}{C}\frac{1}{n_i}PiC(xk)=C1ni1;(2) 更致命的是,对多标签分类数据集进行上述重采样未必会使得类别分布更加均衡,甚至可能加剧类别分布不均衡的情况,这是因为在增加稀有标签采样概率的同时也会增加常见标签的采样概率
    在这里插入图片描述
  • 基于上述观察,作者提出在重采样后增加一个重平衡加权策略。首先,对于样本 xkx^kxk 和标签 iii (yik=1y_i^k=1yik=1),我们期望的 Class-level 重采样概率 PiC(xk)P_i^C(x^k)PiC(xk)
    在这里插入图片描述然而,实际的 Instance-level 重采样概率 PI(xk)P^I(x^k)PI(xk) 却为
    在这里插入图片描述为了缩小期望重采样概率 PiC(xk)P_i^C(x^k)PiC(xk) 和实际重采样概率 PI(xk)P^I(x^k)PI(xk) 之间的差距,作者在损失函数中引入了重平衡权重 rikr_i^krik,用于缓解各个类别实际采样概率大于期望采样概率的问题:
    在这里插入图片描述但是,rikr_i^krik 有时会趋近于 0,这不利于模型的优化。为了使优化过程更加稳定,作者进一步使用了一个平滑函数来将 rikr_i^krik 映射到 (α,α+1)(\alpha,\alpha+1)(α,α+1) 的值域内:
    r^ik=α+σ(β×(rik−μ))\hat r_i^k=\alpha+\sigma(\beta\times(r_i^k-\mu))r^ik=α+σ(β×(rikμ))其中,α\alphaα 为偏置,β,μ\beta,\muβ,μ 控制映射函数的形状,σ\sigmaσ 为 sigmoid 函数。最终,可以得到如下的 Re-balanced-BCE:
    在这里插入图片描述其中,zikz_i^kzik 为样本 kkk 输出的类别 iii 的 logit。值得一提的是,尽管 r^ik\hat r_i^kr^ik 是从正样本的重采样过程中推出的,但这里 r^ik\hat r_i^kr^ik 不仅被用在了正样本上,还被用在了负样本上,作者表示这是为了维持类级别的一致性 (对于某一类别而言,经过重加权后正负样本的采样概率是一样的,均为 PiCP_i^CPiC)

Negative-Tolerant Regularization


  • 在多标签分类数据集中,每个样本通常只属于少数几个类别,因此给定一个样本,就会产生少数正样本和大量负样本,带来正负样本的不平衡。如果使用 BCE 这种对称损失进行训练,过多的负样本就会导致负样本的过度抑制 (我的理解是这里 “过度抑制” 就是指模型倾向于输出更小的 logit),进而使得分类边界带有显著的偏向性。具体而言,与单标签分类中的 CE+Softmax 相比,BCE+sigmoid 的优化过程更为剧烈。当遇到负样本时,CE 和 BCE 对 logit 的导数如下:
    在这里插入图片描述下图对导数进行了可视化:
    在这里插入图片描述可见,CE+Softmax 在优化时,如果样本的正类 logit 远高于负类 logit,损失对负类 logit 的梯度就会很小,但 BCE+sigmoid 在优化时,由于将多标签分类拆分为了多个二分类问题,因此不管样本的正类 logit 是多少,损失对负类 logit 的梯度总会使得负类 logit 远离 0,向比较小的负值靠拢 (which results in continuous suppression) (同理,也会使得正类 logit 远离 0,向比较大的正值靠拢)。上述负样本的过度抑制现象带来的最直接的后果就是模型容易对尾部类别过拟合 (因为对于一个特定类别 (尤其是尾部),数据集中绝大多数都是它的负样本,当分类器被海量负样本包围,且被要求对每一个负样本都输出一个足够低的预测值时,分类器向量在训练过程中将被迫远远偏离大量自然样本的分布,而仅仅过拟合在它的个别正样本上。可以想像分类器预测值在特征向量空间中的分布具有一个尖锐的波峰,泛化性能很差)
  • 为了解决上述问题,作者提出了一种正则化方式,使得模型在训练时不再对负样本持续施加过重的惩罚,而是点到为止。我们只需要对分类器的负类输出进行一个简单的线性变换就能够实现上述功能 (i.e. 新的负类输出 =λzik=\lambda z_i^k=λzik) (不要忘记加上正则化系数 1λ\frac{1}{\lambda}λ1 来约束梯度值的范围在 0 到 1 之间),变换后的损失函数对负类 logit 的梯度如下图所示,可以看到,当负类 logit 低于阈值 000 时,相比原来的梯度 (lambda=1),加入正则化后的梯度急剧降低,进而缓解了负类 logit 的过度优化:
    在这里插入图片描述最后的损失函数为:
    在这里插入图片描述其中,viv_ivi 为 class-specific bias,它与模型的内在偏置 bib_ibi 有关。在模型训练过程中,模型的内在偏置会接近类概率先验 pi=ni/Np_i=n_i/Npi=ni/N,也就是最小化下式:
    在这里插入图片描述求解上式可得估计的 b^i\hat b_ib^i,该偏置随样本频率递增:
    在这里插入图片描述viv_ivi 即为一个用于模拟该内在偏置的量,这种手动初始化 bias 的方法可以把这种本征概率分布嵌入学习过程中,便于网络更多地学习频率分布之外的类别特征 (类似的思想在《Long-Tail Learning via Logit Adjustment》这篇文章里有更清楚的解释):
    在这里插入图片描述

Distribution-Balanced Loss (DB loss)


  • Distribution-Balanced Loss 就是将之前的 R-BCE 和 NT-BCE 结合起来,有助于平滑模型的输出分布:
    在这里插入图片描述

Experiments

Dataset Construction


  • 作者基于 Pascal VOC 和 MS COCO,按照 pareto distribution pdf(x)=αxminαxα+1pdf(x)=\alpha\frac{x^\alpha_{min}}{x^{\alpha+1}}pdf(x)=αxα+1xminα,以抽取的方式人工构造了两个长尾分布的多标签数据集用以训练,称为 VOC-MLTCOCO-MLT,其中 ααα 可以控制数据规模衰减的速度。具体而言,选定 α\alphaα 后可以得到 pareto distribution,可以在 CDF 达到 0.99 时截断 pdf,然后将 pdf 的最大值 rescale 到 NmaxN_{max}Nmax,最后将 xxx 轴按照原始数据集中的样本数均匀分割就能得到 reference distribution
    在这里插入图片描述
  • 在多标签数据集中,假设我们随机选取一个类别 jjj,那么从该类别中采样得到的样本也属于类别 iii 的概率为
    在这里插入图片描述可以认为 p^i\hat p_ip^i 较大的类别即为 head class. 在构造长尾数据集 (subset) 时,作者首先将所有类别按照 p^i\hat p_ip^i 降序排列,此时 subset 为空。然后从 head 到 tail,对每个类别 iii,作者都比较现在 subset 内已有的类别 iii 的样本数和 reference distribution 中期望的样本数并随机进行样本的增加或删减,这样就能保证 tail classes 具有比较少的数据量。如下图所示,长尾数据集的构造过程是递进的,并且各个类别包含的样本个数的排列顺序与测试集较为接近
    在这里插入图片描述在这里插入图片描述
  • VOC-MLT:VOC-MLT 来自 VOC-2012 的 train-val set,α=6\alpha=6α=6. 它包括了来自 20 个类别的 1142 张图像,最多的类别有 775 张图像,最少的类别只有 4 张图片。测试集来自 VOC2007 test set,包含 4952 张图像
  • COCO-MLT:COCO-MLT 来自 MS COCO-2017,α=6\alpha=6α=6. 它包括了来自 80 个类别的 1909 张图像,最多的类别有 1128 张图像,最少的类别只有 6 张图片。测试集来自 COCO2017 test set,包含 5000 张图像

Experiments


Benchmarking Results


  • Evaluation Metrics: 作者以 mAP 为主要评价指标在原始测试集上进行验证。作者根据每个类别含有的训练样本数量 nnn 将其划分为头部 (head, n>100n>100n>100&#xff09;&#xff0c;中部 (medium, 2020<n100) 和尾部 (tail, n≤20n\leq20n20) 三个子集&#xff0c;并在整体和各子集上都进行了结果对比
  • Comparing Methods: (1) Empirical risk minimization (ERM): baseline; (2) Re-weighting (RW): a smooth version of re-weighting to be inversely proportional to the square root of class frequency, and we normalize the weights to be between 0 and 1 in a mini-batch; (3) Re-sampling (RS): class-aware re-sampling; …

在这里插入图片描述

References
  • Wu, Tong, et al. “Distribution-balanced loss for multi-label classification in long-tailed datasets.” European Conference on Computer Vision. Springer, Cham, 2020.
  • code: https://github.com/wutong16/DistributionBalancedLoss

推荐阅读
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
author-avatar
zqb_0125
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有