当前位置:   article > 正文

意图识别算法:噪音处理之O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks

o2u-net: a simple noisy label detection approach for deep neural networks

论文下载:O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks

问题描述

意图识别的数据往往来自人工标注,标注时不同人对意图标签定义的理解多少有些出入,如“忙”意图,有时看快了会将“有点忙,你说”也标注为忙,这也是情理之中,人非圣贤孰能无过,何况每天面对成千上万的数据呢?
这类问题在阿里图片分类中也遇到了,例如下图是外包对性感图任务打标结果的截图,对类似的图片标注结果完全相反,用这批带噪数据进行训练得到的模型精度无法达到上线要求。因此,对高质量数据的需求与低效率的人工标注,构成了广大算法攻城狮们在模型开发的初级阶段所要解决的主要矛盾。

图1.性感图任务打标结果不一致
图1.性感图任务打标结果不一致

解决思路

O2U启发自深度神经网络的训练过程:该过程一般是从欠拟合逐渐过渡到过拟合。

在训练的前期,网络收敛速度比较快,因为网络倾向于先学习简单样本(即容易训练的样本),这些简单样本被学习后,使得lose快速下降,即网络快速收敛。

而在训练的后期,网络才倾向于学习难样本(即不好训练的样本),噪声样本也作为难样本的一部分在后期才被训练。然而,由于网络有大量待学习参数,即学习能力很强,在训练的后期也会逐渐拟合每一个样本,这样会导致噪声样本也会被学习,即过拟合,从而导致网络的性能下降。

通过观察训练过程可以发现,在训练的前期,由于网络先很快地拟合clean样本,所以噪声样本的loss会比clean样本的loss大,loss差距比较明显。在训练的后期,网络逐渐拟合噪声样本,所以两者之间loss的差距不再那么明显。

因此,通过记录样本在上述不同时期的loss,经过统计之后(例如统计样本loss的均值或者方差),根据loss差异,在一定程度上能找出噪声样本。

然而,一般的训练过程从欠拟合过渡到过拟合只发生一次,直接用这样的训练过程会有两方面的问题,一方面是如果噪声样本被拟合了,loss会下降得很快,另一面是难以确定噪声样本在什么时候被拟合。
图2.稳定学习率时loss变化过程
图2.稳定学习率时loss变化过程

由于上述两方面,会使得统计的结果可信度并不是很大。因此,文中提出了Cyclical Training,即通过调整学习率,使得学习率从原始值(较大的学习率)线性下降然后再回到初始值,反复进行这个过程,使得网络在欠拟合和过拟合之间反复交替切换,如下图所示。
图3 周期性训练Cyclical Training
图3 周期性训练Cyclical Training

即当学习率随着训练进行,从大变小时,模型会先学习简单样本再学习难样本,这个过程简单样本从一开始loss就会下降很快,难样本只到后期才下降,而在这个时间学习率又加到很大,使得模型跳出过拟合,即又忘记了难样本的学习,这时简单样本loss又会先快速下降,而难样本loss先回到很大,后期才下降,总体过程中,难样本的loss平均值会大于简单样本。
图4.周期性学习率时loss变化过程
图4.周期性学习率时loss变化过程(c代表一个Cyclical Training,包含多个epoch)

具体过程

O2U-net 训练详细

整体输入:包含噪音数据的训练集D
整体输出:表征该样本是噪音样本的概率的排序R;一个完整的分类模型

训练过程:分三阶段完成

  1. 第一阶段在全量训练集D上预训练;
  2. 第二阶段是在D上CyclicalTraining,记录每个样本的loss,按loss统计结果从大到小排序,去除top k个样本,即噪音样本;
  3. 第三个阶段是在clean dataset上训练(clean dataset表示经去除的数据集)

预训练阶段

使用固定的学习率

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/857377
推荐阅读
相关标签