几种噪声标签识别算法简介

几种噪声标签识别算法简介

训练数据的质量,对最终训练出来的模型精度,起到了非常重要的作用。数据质量决定了业务效果的上限,而算法只能决定多大程度上逼近这个上限。因此,第一步需要清洗脏数据。

目前基于带噪标签数据的学习方法主要有两大类,一类是直接训练对噪声鲁棒的模型(noise-robust models),另一类方法首先识别出噪声数据,然后基于清洗后的数据训练模型。本文主要关注第二类方法。

a. 基于Confidence Learning识别错误标签

Confidence Learning是一种弱监督学习方法,它能够识别错误标签。Confidence Learning基于分类噪声过程假设(classification noise process ),认为噪声标签是以类别为条件的,仅仅依赖于潜在的正确类别,而不依赖与数据。通过估计给定带噪标签与潜在正确标签之间的条件概率分别来识别错误标签。

Confidence Learning只依赖两个输入:模型的样本外预测概率和带噪标签。学习过程首先通过预测标签与标注标签的计数矩阵估计带噪标签与潜在正确标签之间的条件概率分布,然后根据该条件概率分布和样本预测概率来识别噪声标签。

查看Confidence Learning的应用案例:杨旭东:模型效果上限预估、分类模型Bad Case分析方法

b. 基于Forgetting Events识别错误标签

在模型训练过程中,某个样本已经被模型正确分类,随着模型参数的更新,该样本又被错误分类,这一过程被称之为该样本的一次遗忘事件(forgetting event)。根据论文《AN EMPIRICAL STUDY OF EXAMPLE FORGETTING DURING DEEP NEURAL NETWORK LEARNING》的研究,在模型训练过程中噪声样本往往会比正常样本经历更多的遗忘事件。基于这一启发式规则,我们可以记录下每个样本经历的遗忘事件总次数,进一步辨别出可能的噪声标签数据。

c. 基于训练过程的样本loss值识别错误标签

基于训练过程中样本的loss值的相对大小来识别错误标签,这一方法是淘系技术部的同学在ICCV2019的论文《O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks》中提出的。

大致思路基于以下逻辑:在一次训练中,随着迭代轮次增加,网络逐渐从欠拟合逐渐过渡到过拟合状态,在训练的初期,模型精度的提升是非常明显的,因为网络很快学会了那部分“简单的”样本,因此这类样本的loss比较小,与之相反,那些“困难的”样本通常在训练的后期才逐渐被学会。观察训练过程发现,噪声样本通常是在训练的后期才被学会,因而在训练的早期,噪声样本的平均loss是远大于干净样本的,而在训练的后期,因为网络逐渐学会了所有样本,两类样本的loss区别不大。纵观整个训练过程,从欠拟合到过拟合,噪声样本loss的均值和方差都比干净样本要大。通过循环学习率策略,使网络在欠拟合和过拟合之间多次切换,并追踪不同阶段不同参数的模型对样本的loss,通过在时间维度上捕获多样性足够丰富的模型(类似集成学习,对满足多样性和准确性的多个模型进行ensemble),统计各个样本loss的均值和方差,均值和方差越大,样本属于噪声样本的概率也就越大。

d. 基于样本相似度识别错误标签

基于样本相似度识别错误标签的思路也很简单,首先要训练一个样本相似度模型,然后采样一批置信度较高的白样本,计算白样本与黑样本之间的相似度。识别出与白样本相似度大于阈值,且能多次匹配上白样本的黑样本集合。这些黑样本集合很可能就是噪声标签数据。

e. 基于业务理解及人工规则识别错误标签

通过数据分析,一般可以发现部分噪声标签的来源具有一定的规律,通过这些规律可以提取出一些简单有效的过滤规则,可以直接清除掉一定数量的噪声标签数据。

f. 实践及思考

观察并分析数据,从数据中总结规律,通常是每个项目首先应该做的事情,并且值得投资更多时间和精力。然而,由于该过程比较繁琐,且显得没有技术含量,所以经常被我们忽略或轻视,最终导致事倍功半。回头总结数据清洗的实践,我们发现基于业务理解及人工规则识别错误标签是非常有效,并且能够修正部分错误标签,同时也能够给后续的学习过程提供不错的启发。

我们的实验结果表明基于Confidence Learning识别错误标签的方法,以及基于Forgetting Events识别错误标签的方法,还有基于训练过程的样本loss值识别错误标签的方法,在单独使用的时候效果均不是十分令人满意。虽然他们都能够识别出一定量的错误标签,但同时也会把一部分比较难学的黑样本错误地当成噪声标签,这部分的比例取决于阈值的设定。个人觉得这三种方法的前提假设都不是必然成立,仅仅是基于经验的总结,它们的实际效果一定程度上收到训练样本分布的影响。不过,我们可以把三种方法集成在一起使用,是集成学习的一种思路,三个臭皮匠,顶个诸葛亮。

基于样本相似度识别错误标签的方法,虽然想法比较原始,但实际效果还是不错的,噪声标签的检测比较准确。当然,识别效果很依赖于相似度模型本身的性能。

【1】Confident Learning: Estimating Uncertainty in Dataset Labels

编辑于 2022-10-03 12:08

文章被以下专栏收录