噪声标签学习(一)
在有监督学习过程中,大量的准确标注的样本训练样本至关重要。但在实际应用过程中,标记数据往往需要大量的人力,物力财力。标注的数据质量某种程度上还受到人为主观因素的影响,导致实际获取的标注样本时常含有不定比例的标签噪声。然而,实验发现DNN在网络训练过程中,总是会学到标签噪声中的信息,对网络的性能带来干扰。为此,如何能够对标签噪声样本进行合理训练避免标签噪声对网络模型的训练带来干扰是近几年的又一个热门研究话题。
接下来将对了解到的几篇近期了解的相关方法进行一个概述:
NIPS2018 :Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels
该方法基于DNN近期的记忆效应(memorization effects):
DNN会首先记忆干净标签的训练数据,而后记忆噪声标签的训练数据。
于是,文章提出一种与semi-supervised learning 方法中的co-training非常相似的co-teaching方法。该方法同时训练两个DNN,并在每个batch中实现不同网络的相互教学(co-teaching)。
具体过程包括三步:
首先,将所有数据同时输入到两个DNN中,并根据获取的loss结果选取尽可能干净的标签样本;
其次,两个DNN通过选择小损失的方法( select small-loss),确定哪些样本数据用于训练;
最后,每个DNN将其对等网络选择的数据进行反向传播并进行参数更新。
关于为什么选择small-loss实例可以帮助发现干净标签样本:
作者表示由于DNN会首先记忆干净标签样本,所以small-loss与干净标签一般是具有一定的相关关系的。因此,采用small-loss某种程度上可以抵抗噪声标签数据的干扰。值得注意的是,在网络训练过程中由于随着epochs的增加,网络逐渐记忆起噪声标签的信息导致噪声标签过拟合,为了解决这一问题,由于网络训练初期会首先学习干净标签样本,会选择占比R(T)比较大的训练样本数量,随着epochs的增加为了防止网络对于标签噪声的过拟合逐渐缩小R(T)。
关于为什么使用两个网络而不是一个网络进行训练。
不同的网络分类器能够生成不同的决策边界并且具有不同的学习能力。因此,可以通过不同网络的学习能力过滤掉样本中的标签噪声。即如果选择的训练样本的标签不完全干净,这两个网络将通过对等网络自适应地纠正训练错误。 以“peer-review”为例。 当学生检查自己的试卷时,很难找到任何错误,因为他们对答案有一些个人偏见。 幸运的是,他们可以要求同班同学审阅他们的论文。这样一来,他们发现潜在故障变得更加容易。 综上所述,由于来自一个网络的错误不会直接传回自身,因此可以预期,与self-evolving one网络相比,该co-teaching方法可以处理更重的噪声。
个人思考:关于作者为什么采用部分选择的 small loss训练数据进行相互教学,而不是根据不同网络模型softmax之后的输出结果中的最大置信度对应的调整标签进行相互教学的问题,目前还没有进行实验验证,如果读者已经进行相关验证欢迎沟通交流。