噪声标签的负训练:ICCV2019论文解析
噪声标签的负训练:ICCV2019论文解析
NLNL: Negative Learning for Noisy Labels
论文链接:
摘要
卷积神经网络(CNN)在用于图像分类时具有优异的性能。经典的CNNs训练方法是以有监督的方式标记图像,如“输入图像属于此标签”(正学习;PL),如果标签被正确分配给所有图像,这是一种快速而准确的方法。然而,如果存在不准确的标签或噪声标签,使用PL进行的培训将提供错误的信息,从而严重降低性能。为了解决这个问题,本文从一种称为负学习(NL)的间接学习方法开始,在这种方法中,cnn使用一个互补标签进行训练,如“输入图像不属于这个互补标签”。因为选择一个真实标签作为互补标签的机会很低,NL降低了提供错误信息的风险。此外,为了提高收敛性,本文扩展了本文的方法,选择性地采用了PL,称为选择性负学习和正学习(selnlp)。PL被有选择地用于训练期望为干净的数据,随着NL的进展,这些数据的选择成为可能,从而产生了滤除噪声数据的优异性能。通过简单的半监督训练技术,本文的方法达到了噪声数据分类的最新精度,证明了selnlp的噪声数据过滤能力的优越性。
1. Introduction
卷积神经网络(CNN)显著提高了图像分类的性能[17、8、29、11、7、38]。为了完成这项有监督的任务,需要由图像及其对应的标签组成的庞大数据集来训练cnn。如果相应的标签是正确的,CNNs是对图像进行分类的强大工具。然而,准确地标记大量的图像是令人望而生畏和耗时的,有时会产生不匹配的标记。当CNN使用噪声数据进行训练时,它可能会超过这样的数据集,导致分类性能差。
因此,利用噪声数据对cnn进行适当的训练具有重要的现实意义。许多方法通过应用一些技术和正则化术语以及正学习(PL)来解决这个问题,正学习是一种典型的有监督学习方法,用于训练“输入图像属于这个标签”的cnn[6、2、34、20、3、39、26、30、22、33、21]。然而,当CNN接受图像和不匹配标签的训练时,错误的信息被提供给CNN。为了克服这个问题,本文建议使用负学习(NL),一种间接的学习方法来训练CNN“输入图像不属于这个互补标签”,NL不会像PL那样频繁地提供错误的信息(图1)。例如,当使用PL用噪声CIFAR10训练CNN时,如果CNN接收到狗的图像和标签“car”,则CNN将被训练以承认该图像是一辆汽车。
在这种情况下,CNN接受了错误信息的训练。然而,有了NL,CNN将随机获得“汽车”以外的补充标签,例如“鸟”。训练CNN承认这张图片不是鸟在某种程度上是向CNN提供正确信息的行为,因为狗显然不是鸟。以这种方式,噪声数据可以通过提供“正确的”信息来帮助训练CNN,而“正确的”信息很有可能不会选择一个真实的标签作为补充标签,而“正确的”信息在PL中提供了零机会。本文的研究证明了NL的有效性,因为它可以防止CNN对噪声数据的过度设置。
此外,利用NL训练方法,本文提出了选择性负学习和正学习(selnlp)相结合的学习方法,以充分利用这两种方法在噪声数据下进行更好的训练。尽管PL不适合于噪声数据,但它仍然是一种快速、准确的干净数据处理方法。因此,在用NL训练CNN之后,PL开始有选择地只使用高分类置信度的训练数据来训练CNN。
通过这个过程,selnlp扩大了干净数据和噪声数据之间的差距,从而产生了从训练数据中过滤噪声数据的优异性能。
随后,通过丢弃过滤后的噪声数据的标签并将其视为未标记数据,本文利用半监督学习对噪声数据进行分类。基于selnlp优越的滤波能力,本文证明了用一种简单的半监督学习方法可以实现噪声数据分类的最新性能。虽然这不是第一次通过过滤噪声数据来解决噪声数据分类问题[2,6,24],但由于对噪声数据使用了PL,滤波结果并不乐观。
本文的主要贡献如下:
•本文将负学习的概念应用于噪声数据分类问题。本文证明了它的适用性,证明它可以防止CNN对噪声数据的过度过滤。
•利用提议的NL,本文引入了一个新的框架,称为selnlp,用于从训练数据中过滤出噪声数据。在NL之后,通过选择性地将PL应用于高可信度的训练数据,本文可以实现对噪声数据的精确滤波。
•本文通过基于SelNLPL实现的卓越噪声数据滤波的相对简单的半监督学习,实现了最先进的噪声数据分类结果。
•本文的方法不需要事先知道噪声数据点的类型或数量。它不需要任何依赖于先验知识的超参数调整,使本文的方法适用于现实生活。
2. Related works
噪声标签学习是近年来提出的一种新的学习方法。在此,本文将回顾相关研究。一些方法试图产生抗噪声损失[1,32,23,4,3,39]。Ghosh等人[4,3]从理论上证明了平均绝对误差(mean-absolute error,MAE)对噪声标签具有鲁棒性,但在神经网络中使用MAE会降低精度。Zhang等人[39]提出了一种广义交叉熵损失,它不仅对标签噪声具有鲁棒性,而且在深层神经网络中也有很好的性能。
在其他研究中,每个训练样本根据给定标签的可靠性进行不同的加权[13,27,20]。[13,27]使用元学习算法来学习每个样本的最优权重。然而,这两种方法都需要一定数量的干净数据,这在许多情况下很难获得。清洁网[20]也受到限制,因为它需要一个经验证正确的标签。有些方法使用校正方法。损失校正[25,31,36,10]方法假设噪声转移矩阵已知,或者可以获得一些干净的数据来计算噪声转移矩阵。[28,14,5]通过添加一个附加层来建模噪声转移矩阵。其他几种方法试图直接更正标签[33,21]。
然而,在这些方法中,需要干净的数据来训练标签清洗网络和教师网络。另外还有一些标签清理方法,这些方法逐渐将数据标签改变为网络的预测值[26、30、22]。其他方法包括联合建模标签和工作质量[15],创建一个健壮的方法来学习开放集噪声标签情况[34],并尝试修剪正确的样本[6,2,24]。丁等人[2] 建议基于softmax输出修剪正确的样本。被认为不可靠的样本以半监督的方式进行训练,而不是使用标签信息。
本文的方法同时利用了正确样本的剪枝和标签修正方法。现有的剪枝和标签清洗方法[6,2,26,30,22]使用直接训练的网络来处理给定的噪声标签;因此,即使执行了剪枝或清洗过程,也可能发生对噪声标签的过度设置。同时,本文使用了NL方法,它间接地使用了噪声标签,从而避免了记忆噪声标签的问题,并且在仅过滤噪声样本方面表现出显著的性能。使用补充标签这不是第一次使用补充标签。先前的研究[12,37]集中在一个分类任务中,在这个任务中给出了补充标签。然而,与互补标签分类任务不同,本文从给定的噪声标签生成互补标签,并将其用于NL。
3. Method
本节介绍了噪声数据分类的总体方法。第3.1节描述了NL的概念和实现,证明了NL比PL更适合于含噪数据的训练。第3.2节和第3.3节分别介绍了选择性负学习(SelNL)和选择性正学习(SelPL),这是NL之后进一步使CNN在含噪条件下训练更好的后续步骤训练数据,同时防止过度训练。所有这些方法的结合被称为选择性负学习和正学习(selnlp),这证明了从训练数据中过滤噪声数据的优异性能(第3.4节)。最后,利用selnlp的滤波能力,对噪声数据分类进行半监督学习(第3.5节)。
图2显示了PL和NL之间的明显比较。CNN在CIFAR10上用PL或NL训练,CIFAR10被30%symm inc噪声污染。本文中使用的噪声类型在第5节中进行了说明。注意,当CNN使用PL(等式1)或NL(等式2)训练时,图中所示的所有损失(图2(a))均使用等式1计算。随着PL的增加,测试损耗降低,测试精度提高。然而,它最终会导致CNN对噪声训练数据的过度过滤,导致在干净的测试数据上表现不佳。相比之下,NL被证明在训练CNN时不会对噪声训练数据进行过多设置,因为可以观察到测试损失的逐渐减少和测试精度的提高。图3(a)和(b)分别显示了PL和NL之后的训练数据直方图。虽然净数据和噪声数据的置信度随着PL的增加而增加,但噪声数据的置信度远低于NL的净数据,这再次表明NL有能力防止CNN对噪声数据的过度拟合。
如第3.1节所述,NL可以防止CNN对噪声数据的过度设置,如其低置信值所示(图3(b))。下一步,本文将引入SelNL来改善NL之后的收敛性。在使用NL训练之后,SelNL只训练置信度大于1/c的CNN。在阈值化之后,训练所涉及的数据往往比以前噪声更小,从而有效地改善了CNN的收敛性。图3(c)显示了NL之后的SelNL结果。
在含有噪声数据的情况下,非线性学习是一种较好的学习方法。但是,如果训练数据被证实干净的标签,PL是一种比NL更快更准确的方法。经过NL和SelNL的训练,干净和噪声数据的密度被大幅度地分开(图3(c))。假设这些数据是干净的数据,selp只训练CNN的数据对γ有信心。在这项研究中,本文将γ设为0.5。图3(d)显示了图3(c)之后的SelPL结果,几乎所有干净数据的置信度都在1附近。
总而言之,NL、SelNL和SelPL的组合称为selnlp。selnlp的整个过程如算法2所示。图4显示了每个步骤的性能变化。它清楚地表明了应用每个步骤时性能的提高,从而证明了selnlp中每个步骤的重要性。图4证明了selnlp的每个步骤都有助于收敛,同时防止对噪声数据的过度设置,从而在整个训练过程中比训练精度更高的测试精度。如图3(d)所示,干净数据和噪声数据的总体一致性被大幅度分开。这意味着selnlp可用于从训练数据中过滤噪声数据。第4节对该区域进行了进一步分析。
利用selnlp的滤波能力,半监督学习方法可以应用于净化数据和过滤噪声数据,丢弃过滤噪声数据的标签。对于半监督学习,本文应用伪标记方法[19]。图5显示了伪标记的整个过程。首先,使用经过selnlp训练的CNN将训练数据分为干净数据和噪声数据(图5(a))。
接下来,在图5(b)中,使用从selnlp获得的干净数据训练初始化的CNN。然后,用图5(b)中CNN的输出更新噪声数据的标签。在这里,本文使用软标签作为更新标签,类似于[30]。用于图像分类的典型标签是一个热向量,而软标签只是经过训练的CNN的输出。结果表明,软标签在更新标签时效果更好[30]。最后,使用干净数据和标签更新的噪声数据来训练初始化的CNN(图5(c))。这导致了状态的准确性,证明了高过滤能力的selnlp。结果见第5节。
4. Filtering ability
第3.4节提到selnlp对于从训练数据中过滤噪声数据是有效的。在本节中,本文将进一步解释selnlp的过滤过程。当使用selnlp训练CNN时,假设置信度超过γ的数据是干净的。按照这种方法,本文过滤出没有经过PL训练的数据作为噪声数据。
表1总结了具有不同噪声比(symminc)的CIFAR10上SelNLPL的滤波结果。估计的噪声比是指未经PL训练的数据量。召回率和精确度是噪声数据过滤质量的衡量指标。结果表明,估计出的噪声比与实际噪声比接近88%~99%。
此外,表1显示了本文过滤噪声数据的方法导致了高召回率和高精度值,表明本文的方法从训练数据中过滤出了大部分纯噪声数据。这就意味着,即使训练数据中混合的噪声量是未知的,这在实际情况中是很正常的,也可以用selnlp来估计噪声量,这是一个巨大的优势,因为它可以作为训练数据质量的指标。
图6比较了拟议方法的总体过滤能力。在对噪声数据进行过滤波前,对CNN进行PL训练,得到PL曲线。曲线表明,selnlp的每一步都有助于提高滤波性能,超过了PL。总而言之,selnlp在从训练数据中过滤噪声数据方面表现出优异的效果,如图6所示。此外,由selnlp估计出的噪声比与实际噪声比几乎吻合,因此,在实际噪声比不可用的情况下,可以用来指示训练数据的质量。
5. Experiments
在本节中,本文将描述为评估本文的方法而进行的实验。将selnlp后的伪标记结果与现有的噪声数据分类方法进行了比较。为了说明本文的方法可以推广到不同的环境中,本文遵循其他基线方法的不同实验设置,这些实验设置根据CNN结构、数据集和训练数据中的噪声类型而不同。(表3、4、5、6)。
本文使用三种不同类型的噪声,遵循基线方法。对称噪声对称噪声的基本思想是在类之间随机选择一个概率相等的标签。实验中采用了两种对称噪声:symm-inc噪声和symm-exc噪声。Symm inc noise是通过从所有类(包括地面真值标签)中随机选择标签创建的,而Symm exc noise将地面真值标签映射到其他类标签中的一个,因此不包括地面真值标签。Symm inc noise用于表4,Symm exc noise用于表3、5、6。
对于优化,本文使用动量为0.9、权重衰减为10-4、批量大小为128的随机梯度下降(SGD)。对于NL,SelNL,和SelPL,他们每个人都训练了720个时代的CNN。除了MNIST,所有数据集和CNN架构的学习率都是统一的。NL、SelNL和SelPL的学习率分别设置为0.02、0.02和0.1。对于伪标记,对于每个步骤(图5(b),(c)),学习率从0.1开始,在192288个阶段(总共480个阶段)除以10。作为例外,使用MNIST时,NL和SelNL的学习率设置为0.1。
表3显示了来自Zhang等人的结果。[39],补充了本文的结果。时装设计师使用18层ResNet[8],而CIFAR10和CIFAR100使用34层ResNet[8]。无论CNN结构、数据集、噪声类型或噪声比如何,本文的方法在几乎所有情况下都获得了最佳的总体精度。在某些情况下,本文的方法显著优于其他方法,最高可达5%。
本文的方法只有在symm-exc噪声为80%时才无法收敛,这一点可以忽略,因为这种情况是不现实的。应注意的是,张等人[39]参考了验证数据的准确性,以防止过度设置到噪声数据,而本文的方法是有利的,因为它没有参考任何验证准确性。CIFAR100的结果是通过本文的方法的扩展版本实现的,该方法在第6.1节中有详细说明。表4取自Tanaka等人[30]。32层Pre ResNet[9]用于CIFAR10。
与表3类似,本文的方法优于Tanaka等人报告的所有其他可比方法。[30],不考虑噪声类型和比率。这个结果值得注意,因为田中等人[30]通过根据噪声类型和噪声比改变一些超参数来进行实验。在实际情况下,此设置不适用,因为噪声的类型或比率未知。本文的方法是优秀的,因为超参数不随噪声类型和比率而变化。
此外,为了公平地比较不对称噪声的情况,本文将用于不对称噪声的参数设置与用于10%(联合*)和30%(联合**)symm-inc噪声的参数设置相匹配,因为不对称噪声情况下的噪声数据量介于10%symm-inc和30%symm-inc之间。在这种情况下,不对称噪声的总体精度为[30]改变,使本文的方法优越于所有不对称噪声情况。表5和表6分别取自[22]和[2]。
表5中MNIST采用LeNet5结构,表6中MNIST采用2层全连接网络,CIFAR10采用14层ResNet。两个表都显示本文的方法在所有CNN架构、数据集、噪声类型和比率方面都超过了大多数其他可比结果。在某些情况下,本文的方法的性能比其他方法高出4∼5%,显示了本文的方法的优越性。
在表6中,本文的方法仅对60%不对称噪声表现次优,但本文认为这并不重要,因为这样的情况是不现实的。
6. Analysis
本文使用110个随机ys(允许重复)计算单个数据的110个损失,由于110个损失共享为一个图像计算的特征,因此只略微增加了反向传播的时间。使用这种简单的扩展方法,本文观察到当使用与CIFAR10相同的时间段进行训练时,CNN可以在CIFAR100上收敛,并且在噪声数据分类方面显示出普遍的改进(表3)。
对于symm-exc噪声,本文取得了最新的结果。对于不对称噪声,前向T[25]表现出最好的性能。然而,这不是一个公平的比较,因为它依赖于混淆矩阵的先验知识,该矩阵总结了一个类在噪声下被嵌入另一个类的概率。因此可以得出结论,本文的方法在不包括前向T的情况下取得了可比的结果。在这一部分中,本文通过为每个图像提供多个互补标签,证明了本文的方法可以推广到具有多个类号的数据集。
本文提出了一种新的噪声数据分类方法,该方法由多个步骤组成:selnlp(NL→SelNL→SelPL),然后是半监督学习的伪标记。为了研究SelNLPL中每个步骤的强度,本文进行了分析,揭示了在整个训练过程中省略SelNLPL的每个步骤时,在性能上的差异。从selnlp中删除一个或多个步骤,然后应用于伪标记。
表7显示了为进行分析而进行的所有实验,遵循表4中30%和50%symm inc噪声的实验设置。它包括selnlp(#1)和从#1中删除SelPL(#2)、SelNL(#3)或SelNL和selp(#4)。在表7中,与#1相比,#2和#3都显示性能下降,而#4的性能更进一步减少(图7)。
虽然symm inc 30%噪声情况下的精度下降很小,但symm inc 50%噪声情况下的性能明显下降,特别是在从训练过程中删除SelNL的3和4情况下。使用NL训练时CNN的收敛性很大程度上取决于训练数据中的噪声量,随着噪声比的增加,CNN的收敛性变小(图3(b),图7(a)。
因此,随着噪声比的增加,SelNL变得至关重要,因为它负责忽略具有低置信值的噪声数据。SelNL提高了训练所涉及的整体干净数据比率,从而产生更好的收敛性(图3(c),图7(b))。
7. Conclusions
本文提出了一种用噪声数据训练cnn的学习方法NL,即“输入图像不属于这个互补标签”,由于随机选择一个非基真标签的互补标签的机会很高,因此降低了用错误信息训练cnn的风险。此外,由于在学习干净数据时,PL比NL更快更准确,本文开发了一种新的方法selnlp,将PL和NL相结合,获得了从训练数据中过滤噪声数据的优越性能。本文的研究通过使用基于selnlp滤波结果的半监督学习(伪标记)成功地进行了噪声数据分类,在不基于任何先验知识调整本文的方法的情况下实现了最新的结果。