在机器学习中,训练样本的标签质量严重影响着分类算法的最终效果。在采集和使用时却费时费力,模型的适应能力也存于一般情况,开始针对普通类数据进行学习,即带有标签噪声的数据进行研究。
1.原因
有类似于ImageNet这类清晰注释的大型数据,在图像分类、对象检测和语义分割等应用深度学习具有较好的效果。在实际情况中,收集带有噪声的数据集很容易,但是收集大规模干净的数据集既冉贵又耗时,在企业应用中不会投入这么高的人力财力去获取数据。一般是采用软件和系统的注册来获取用户数据等,因此涉及很重的数据清洗和特征工程工作。
一方面:专家标记数据对某些研究是必须的(医学、网络安全、异常检测等)
另一方面:无法像图片图像的庞大数据集,无法进行手动标记。
因此,在学习训练中会存在大量错误信息的标签数据,这是会影响模型的准确率和适应性等。
噪声数据分类:特征噪声和标签噪声
特征噪声是指训练样本实例特征本身和其真实特征之间的偏差, 例如人为地在已有特征上添加高斯噪声.
标签噪声是指用于训练的目标标签与相应实例本身的真实标签之间的偏差, 例如设定标签时错误设置标签所属类别.
标签噪声的危害性更大
2.标签噪声介绍
标签噪声其产生的原因有多种, 主要分为 4 类:(1) 在标注过程中的信息不足, 无法对类别数据进行充分的描述; (2) 由于数据质量较差导致辨识度降低, 使得专家在标注过程中无法正确标注相应标签;(3) 不同主观性所致, 即标签的标注非全由专家进行标注, 这是由于可靠的标签是一项耗时且昂贵的任务, 因此有些标签是从非专家处获得, 且不 同的标注人员根据不同角度对标签进行标记得到的结果不完全一致; (4) 来自数据编码或通信问题也可能导致样本标签出现错误。
标签噪声主要受数据特征、数据的真实标签和标签特性等因素影响。标签噪声可以分为:随机标签噪声、类标签噪声、实例相关噪声。
影响:标签噪声产生的影响大致分为3 类: (1) 标签噪声下的分类方法导致预测性能降低, 例如分类时经常使用的线性分类器、kNN 分类器都会受到标签噪声的影响。 同时, 标签噪声也会影响常用的决策树、支持向量机等方法. (2) 训练特征数和模型复杂性增加, 例如由于标签噪声的影响, SVM 中支持向量的数量明显增加, 导致其模型更加复杂; 标签噪声需要进行多次训练才会达到指定的性能指标. (3) 观察到的类别出现频率可能会发生变化, 如标签噪声对某种疾病发病率产生的影响.
3.标签噪声算法
目前通过网络爬虫或众包等方法采集的数据大部分都包含噪声, 这些数据显然掩盖了实例特征和其类别之间的真实关系; 同时在根据数据创建模型或者基于数据进行决策的学习中, 使用存在噪声的数据会在构建分类器的时间、分类的准确性以及分类器大小等方面降低系统性能, 也会增加学习所需的样本数量和相应模型的复杂性。
噪声的处理方法可以分为容噪和去噪两种类型。容噪是指一些算法在建模过程中对标签噪声样本并不敏感,对噪声有一定的包容性,使训练好的模型具有较好的鲁棒性。
去噪是指在训练模型之前将数据中的噪声样本识别出来并对其进行处理,这类方法可以将识别出的噪声样本从训练数据中去除,也可以将识别出的噪声样本更正后放回训练数据中。
1.DNN:
具体过程包括三步:
首先,将所有数据同时输入到两个DNN中,并根据获取的loss结果选取尽可能干净的标签样本;
其次,两个DNN通过选择小损失的方法( select small-loss),确定哪些样本数据用于训练;
最后,每个DNN将其对等网络选择的数据进行反向传播并进行参数更新。
不同的网络分类器能够生成不同的决策边界并且具有不同的学习能力。因此,可以通过不同网络的学习能力过滤掉样本中的标签噪声。即如果选择的训练样本的标签不完全干净,这两个网络将通过对等网络自适应地纠正训练错误。
2.基于损失函数 的方法
即通过直接改进损失函数,或者分析噪声和真实标签之间的关系,使得损失函数对噪声有一定的鲁棒性和忍耐性
- 基于学习策略的方法
在训练过程中识别出噪声数据,然后基于清洗后的数据训练模型,不断迭代训练模型。
- 主动学习、强化学习、半监督学习等等进行改进