知行编程网知行编程网  2022-05-03 15:00 知行编程网 隐藏边栏 |   抢沙发  58 
文章评分 0 次,平均分 0.0

ImageNet 存在十万标签错误,你知道吗?

转自 | AI开发者    编译 | JocelynWang

ImageNet 存在十万标签错误,你知道吗?
使用ImageNet、CIFAR、MNIST 或 IMDB 这些数据集时,你是不是会潜意识中假设,这些数据集中的类标签都是正确的?
然而,你可能不知道:ImageNet数据集中至少有十万个标签是存在问题的。
尽管大量的研究都在使用ImageNet,但却没有发现数据集存在如此多的标签错误。原因在于,想从海量数据中寻找并描述标签错误很难;即使有相关的方法,应用范围也极其有限。
如何去识别标签错误,并表征标签噪声,是一项重要的、但却鲜少研究的工作。
在这篇文章中,我将讨论一种新兴的基本框架,它可用于识别标签错误、表征标签噪声,并使用称作置信学习(Confident Learning ,CL)的噪声标签进行学习。
这个框架可以识别 ImageNet 和 CIFAR 中的许多标签问题,并通过在干净的数据集上进行训练来提高标准 ResNet 的性能。
该框架作为 cleanlab Python 包进行了开源,相关链接为(Github 地址为):
https://github.com/cgnorthcutt/cleanlab
与深度学习框架  PyTorch相类似,CLEANLAB 是一种带有误差标签的机器学习和深度学习的框架。更多关于CLEANLAB的信息可在如下CLEANLAB的文档链接中查看:
https://l7.curtisnorthcutt.com/cleanlab-python-package
使用 cleanlab 加上 confidentlearning-reproduce repo 就可以重现 CL 论文中的结果。
https://github.com/cgnorthcutt/confidentlearning-reproduce

ImageNet 存在十万标签错误,你知道吗?
图为2012 ILSVRC ImageNet训练集中使用信心学习确定的前32个标签问题。其中红色方框表示标签误差,绿色方框表示本体问题,蓝色方框表示多标签图像。
上图显示了在2012 ILSVRC ImageNet训练集中使用置信学习发现的前32个标签问题。为便于解释,我们将把使用 CL 在 ImageNet 中发现的标签问题分为以下三类:
  • 多标签图像(蓝色):图像中有多个标签;

  • 本体论问题(绿色):包括“是”(比如:将浴缸标记为桶)或 “有”(比如:示波器标记为CRT屏幕)两种关系,在这些情况下,数据集应该包含其中一类;

  • 标签错误(红色):当数据集别的类的标签比给定的类标签更适合于某个示例时,就会显示标签错误

使用置信学习,我们可以在任何适当模型的任何数据集中发现标签错误。以下是常见的数据集中另外三个真实存在的示例:
ImageNet 存在十万标签错误,你知道吗?
Amazon Reviews、MNIST和QuickDraw数据集中当前存在的标签错误示例,由面向不同数据形式和模型的置信学习确定。


    什么是置信学习?

置信学习(CL)已经成为监督学习和弱监督的一个子领域,可应用于以下几点:
  • 描述噪声标签
  • 寻找标签误差
  • 采用噪声标签学习
  • 寻找本体论问题
CL 基于噪声数据剪枝的原理(与修复标签错误或修改损失函数相反),以计数的方式对噪声进行评估,并对示例进行排序以进行置信训练(而不是通过精确的概率加权)。
在这里,我们在 Angluin 和 Laird 分类噪声的假设基础上,将 CL 泛化到直接估计噪声标签(给定的)和无损标签(未知的)之间的联合分布。
ImageNet 存在十万标签错误,你知道吗?
有噪声的(给定的)标签和未损坏的(未知的)标签之间的置信联合分布和估计联合分布的置信学习过程和样本。y~表示观察到的有噪声标签,y*表示潜在的无损标签。
从上图可以看出,CL 需要两个输入:
  • 样本外预测概率(矩阵大小:#类的#样本数)。
  • 噪声标签(矢量长度:样本数量)。
出于弱监督目的,CL包括三个步骤:
1、估计有噪声的(给定的)标签和潜在的(未知)无损标签的联合分布,以充分描述类别条件下的标签噪声。
2、查找并修剪带有标签错误的噪声样本。
3、在去除标签错误的样本后进行训练,根据估计的潜在先验对样本重新加权。


   置信学习的好处

与大多数机器学习方法不同,置信学习不需要超参数。我们使用交叉验证来获得样本外的预测概率。置信学习还有很多其他的好处,它有以下几点优势:
  • 可直接估计噪声与真实标签的联合分布
  • 适用于多类别的数据集
  • 查找标签错误(错误按最有可能到最不可能的顺序排列)
  • 无需迭代(在ImageNet中查找训练集的标签错误需要3分钟)
  • 具有理论合理性(在真实条件下可以准确地找到标签错误和一致的联合分布估算)
  • 不需要做随机均匀的标签噪声的假设(在实践中通常不现实)
  • 只需要预测概率和噪声标签(可以使用任何模型)
  • 无需任何真实(保证无损)的标签
  • 可以自然扩展到多标签数据集
  • 可用于描述、查找和学习标签错误,CLEANLAB  Python包是免费且开源的。

   置信学习的原则

CL建立在处理噪声标签文献制定的原则之上:
1、通过修剪来搜索错误的标签,例如:遵循Natarajan等(2013);van Rooyen等(2015);帕特里尼等(2017)的工作示例,通过损失重加权来进行软剪枝,以避免迭代重标记的收敛陷阱。相关工作链接依次如下:
https://papers.nips.cc/paper/5073-learning-with-noisy-labels.pdf
https://arxiv.org/abs/1505.07634
https://arxiv.org/abs/1609.03683

2、对干净的数据进行训练统计,避免由于不完全预测概率的情况下重新加权损失(Natarajan et al.,2017)而导致的学习模型权重的错误传播,并泛化到一些开创性的工作上,如Forman (2005, 2008); Lipton et al. (2018)),相关工作链接依次如下:
http://www.jmlr.org/papers/volume18/15-226/15-226.pdf
https://dl.acm.org/citation.cfm?id=1403849
https://arxiv.org/abs/1802.03916

3、根据PageRank(Page et al.,1997)著名的鲁棒性研究成果(http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf)和MentorNet (Jiang et al.,2018)的课程学习理念(https://arxiv.org/abs/1712.05055),对训练期间使用的样本进行排序,以允许使用不规范概率或SVM决策边界距离进行学习。

   置信学习中的理论发现
更多关于CL算法、理论和证明的内容,请参阅我们的原论文。在本文中,我主要总结一下论文中的主要观点。
原论文链接:https://arxiv.org/abs/1911.00068
从理论上看,我们给出了CL(定理2:一般的逐例鲁棒性)准确发现标签误差并一致地估计出噪声与真实标签联合分布的现实条件。在我们设定的条件中,允许每个样本和每个类的预测概率存在误差。


   置信学习是如何实现的?

为了解CL是如何工作的,让我们假设现在有一个包含狗、狐狸和牛的图像的数据集。CL通过估计噪声标签和真实标签的联合分布(下图右侧的Q矩阵)来进行工作。
ImageNet 存在十万标签错误,你知道吗?左图:置信计数示例。这是一个不正常的联合估计。右图:拥有三类数据集的噪声标签和真实标签的联合分布示例。
我们来继续看这个示例,CL统计了 100 个标记为狗的图像,这些图像很可能属于类别狗,如上图左侧的C矩阵所示;同样的,CL还统计了 56 个很可能属于类别狗但标记为狐狸的图像和 32 幅很可能属于类别狗但标记为牛的图像。
对上述数学原理的过程好奇的人来说,该计数过程可以采取以下形式进行理解:
ImageNet 存在十万标签错误,你知道吗?
我们也鼓励通过阅读我们的原论文来理解符号的含义,这里面的中心思想可以理解成:当一个样本的预测概率大于每个类的阈值时,我们有信心将该样本记为实际上属于该阈值的类别。每个类别的阈值是该类中所有样本的平均预测概率。这种阈值形式将PU学习( Elkan & amp; Noto,2008,http://cseweb.ucsd.edu/~elkan/posonly.pdf)中众所周知的鲁棒性结果,泛化到多类别的弱监督。
使用标签噪声的联合分布查找标签问题:
从上图右侧的矩阵中,估计标签问题:
1、将联合分布矩阵乘以样本数。假设我们的数据集中有100个样本。所以,在上图中(右边的Q矩阵)有10个标记为狗但实际上是狐狸的图像。
2、将上述10张实际上很可能属于类别狐狸但标记为狗的图片标记为存在标签错误。
3、对矩阵中所有非对角项重复此操作。
注:这里简化了原论文中使用的方法,但抓住了本质。


   置信学习的实践应用

在高噪声标签的情况下,CL相对于其他方法提高了超出10%的学习水平;在高噪声以及高稀疏的情况下,CL相对于其他方法提高了超出30%的学习水平。
ImageNet 存在十万标签错误,你知道吗?
上表显示了 CL 与最新的通过噪声标签的多类别学习方法 CIFAR-10 的比较。在高稀疏(见下一段)和 40% 和 70% 的标签噪声下,CL 的表现比谷歌开发的表现最好的 MentorNet,Co-Teaching 和 Facebook 研究团队开发的 Mix-up 方法提高了超过 30% 的学习水平。在信心学习之前,相关的方法对这一基准的改进要小得多(大约只提高了几个百分点)。
稀疏性(矩阵 Q 中零的分数)概括了这样一个概念,即现实世界中如 ImageNet 的数据集中有一些类别不太可能被错误地标记为其他类别,例如 p(老虎,示波器)可以看作矩阵 Q 中的 0。
如上表中突出显示的单元格所示,与 Mixup、MentorNet、SCE-loss 以及 Co-teaching 等最新方法相比,CL 较为显著地增强了对稀疏性的鲁棒性。这种鲁棒性来源于对模型 Q 直接建模,即噪声与真实标签的联合分布。
在使用 CL 清洗过的 ImageNet 上训练数据提高了 ResNet 测试准确度。
ImageNet 存在十万标签错误,你知道吗?
上图中,直线上的每个点(从左到右)分别描绘了每种方法在去除20%,40%…,100%估计标签错误后训练的准确性。图中黑色虚线部分描述了使用所有样本训练时的准确性。
使用CL在清洗后的 ImageNet 训练集上训练(不添加合成噪声),当移除小于十万个训练样本时,观察到使用ResNet时验证精度得到提高;当大于十万个训练样本被移除时,观察使用CL清洗后的数据与随机移除样本的结果相比相对有所改善(如图红色虚线所示)。
ImageNet 存在十万标签错误,你知道吗?
添加标签噪声的CIFAR数据集中标签噪声的良好表征
上图显示了CIFAR中使用CL估计标签噪声的联合分布,标签噪声增加了40%。观察图(b)中CL估计与图(a)中的真实分布有多接近以及(c)矩阵中每一项绝对差的低误差。这里概率被放大了100倍。
ImageNet 存在十万标签错误,你知道吗?
在ImageNet中自动发现本体(类命名)问题
CL 通过直接估计标签噪声的联合分布,自动发现数据集中类的本体问题。在上表中,我们展示了在 ImageNet 单类数据集的估计标签噪声联合分布时的最大偏离对角线。每行列出了噪声标签、真实标签、图像 id、统计数量和联合概率。因为这些是偏离了对角,所以噪声的类别和真实类别应该会是不同的,但实际上是在第 7 行中,我们看到 ImageNet 有两个不同的类,它们都被标记为“maillot”。
我们也观察到误用词语的情况:在第 一行中的标记抛射物和导弹为“是”的关系,即抛射物其实就是导弹,同样的还有第二排中的标记的浴缸即为桶;还观察到由一个词的多个定义引起的问题,比如第九行中的玉米和耳朵。

   最后的想法

我们的理论和实验结果强调了置信学习的实用性,例如识别ImageNet和CIFAR中的许多标签问题,并通过在干净的数据集上进行训练来提高标准 ResNet 的性能。
置信学习促使人们认识到需要对数据集标签中的不确定性估计、清理训练集和测试集的方法以及数据集中本体和标签问题的识别方法做进一步的了解。
原文链接:
 https://l7.curtisnorthcutt.com/confident-learning


<pre style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;white-space: normal;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-align: center;widows: 1;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></section><section style="max-width: 100%;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-align: center;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-bottom: 15px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></section><p style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;">“12306”的架构到底有多牛逼?</p><p style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;">中国程序员34岁生日当天在美国遭抢笔记本电脑,追击歹徒被拖行后身亡,为什么会发生此类事件?</p><p style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);cursor: pointer;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">阿里如何抗住90秒100亿?看这篇你就明白了!</span></p><p style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">60个Chrome神器插件大收集:助你快速成为老司机,一键分析网站技术栈</span></span><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"  /></p><p style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);cursor: pointer;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">深度学习必懂的13种概率分布</span></p></section></section></section></section></section></section></section></section>

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享