关于神经网络:基于深度神经网络的噪声标签学习

46次阅读

共计 3915 个字符,预计需要花费 10 分钟才能阅读完成。

摘要 :介绍带噪学习畛域前沿办法,解决不完满场景下的神经网络优化策略,旨在晋升模型性能。

本文分享自华为云社区《Learning from Noisy Labels with Deep Neural Networks》,原文作者:猜沟。

Introduction:

神经网络的胜利建设在大量的洁净数据和很深的网络模型根底上。然而在事实场景中数据和模型往往不会特地现实,比方数据层面有误标记的状况,像小狗被标注成狼,而且理论的业务场景考究时效性,神经网络的层数不能特地深。咱们尝试一直迭代数据和模型缺点状况下神经网络的无效训练方法,通过 noisy label learning 技术,解决网络训练过程中 noisy data 的问题,该技术曾经在团队理论业务场景中落地,通过从损失函数、网络结构、模型正则化、损失函数调整、样本抉择、标签纠正等多个模块的优化,不局限于全监督、半监督和自监督学习办法,晋升整个模型的鲁棒性

Framework:

【Robust Loss Function】

次要是从损失函数去批改,外围思路是当数据整体是洁净的时候,传统的穿插熵损失函数学习到大量的负样本,能够晋升模型的鲁棒性;当数据噪声比拟大时,CE 会被噪声数据带跑偏,咱们要批改损失函数使其在训练中每个样本的权重都是一样重要的,因而不难想到采纳 GCE Loss,管制超参数,联合了 CE Loss 和 MAE Loss

  • A. Ghosh, H. Kumar, and P. Sastry,“Robust loss functions under label noise for deep neural networks,”in Proc. AAAI, 2017
  • Generalized Cross Entropy Loss for Training Deep Neural Networks with Noisy Labels, NeurlPS 2018
    另外,还有从 KL 散度想法借鉴过去的,作者认为在计算熵的时候,原始 q, p 代表的实在数据分布和预测值在较为洁净的数据上没有问题,然而在噪声比拟大的数据上,可能 q 并不能代表实在数据分布,相同的是不是 p 能够示意实在数据分布,因而提出基于对称的穿插熵损失函数(Symmetric cross entropy)
  • Y. Wang, X. Ma, Z. Chen, Y. Luo, J. Yi, and J. Bailey,“Symmetric cross entropy for robust learning with noisy labels,”in Proc. ICCV, 2019, pp. 322–330

【Robust Architecture】

这一部分次要通过借鉴奇妙的网络结构,在模型训练过程中,通过模型对数据进行筛选,抉择一批较为洁净的数据,逐渐晋升模型的鲁棒性。首先要介绍的就是 coteaching framework,首先是基于两个模型互相筛选数据输出给对方计算 loss,传递给对方网络的数据是每个 min-batch 外面 loss 最低的一些数据,随着 epoch 减少,数据量有所变动,另外每一轮 epoch 完结,会 shuffle 数据,保证数据不会被永恒忘记

  • How does Disagreement Help Generalization against Label Corruption? ICML 2019
    Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels, NeurlPS 2018

还有一种思路,是基于 attention 注意力机制给洁净样本和噪声数据进行打分,文章叫做 Attention Feature Mixup,在计算最终 loss 的时候有两局部,一部分是同一个类的每张图和标签计算的穿插熵损失;另外一个损失是数据 mixup 失去的新的数据 x ’ 和标签 y ’ 计算的 loss

【Robust Regularization】

这一部分次要是通过一些增加正则 ticks,避免模型过拟合到噪声数据上,罕用的正则办法蕴含:label smooth、l1、l2、MixUp 等

【Loss Adjustment】

这一部分其实也是一些训练的 ticks,其实和 loss function 改良是密不可分的,这里不做具体 ticks 的介绍

【Sample Selection】

这一模块次要是从如何挑选出更好的数据为出发点,一种办法,叫做 Area Under the Margin metric (AUM),是咱们去年加入 CVPR WebVision 2020(图像识别畛域最高级别的较量,接替 ImageNet)获得冠军的计划。该计划是一种在训练过程中一边训练一边筛选数据的形式,具体思维是在一个 min-batch 利用模型计算每张图片的 logits 值和其它类中最大的 logits 求差值当做 area,这样多轮 epoch 求均匀,失去每张图的 aum 值。试验发现如果这个数据是较为洁净的数据 area 的值会比拟大,如果是存在 mis-label 的数据 area 值比拟小,甚至是负值,作者就是通过这个思维将一个类的洁净数据和噪声数据分来到的。当然论文在最初也指出,洁净数据和噪声数据占比 99% 的阈值是最优的。

  • Pleiss, Geoff, et al. “Identifying mislabeled data using the area under the margin ranking.“, NeurlPS 2020.

另外一篇,数据划分是通过密度聚类的思路,将一个类的数据分成 easy dataset、smi-hard dataset 和 hard dataset,个别噪声数据是较为艰难训练的数据,对于每张图调配一个权重,文中倡议 1.0、0.5 和 0.5;模型的训练借鉴了课程学习的思路

  • Guo, Sheng, et al. “Curriculumnet: Weakly supervised learning from large-scale web images.” Proceedings of the European Conference on Computer Vision (ECCV). 2018.

【Semi-supervised Learning】

基于半监督学习的带噪学习算法,首先介绍一篇 DivideMix 办法,其实还是 co-teaching 的思路,然而在挑出洁净样本和乐音样本后,把乐音样本当做无标签样本,通过 FixMatch 的办法进行训练,目前半监督图像分类的 SOTA 应该还是 FixMatch,其在 90% 的无标签样本下都能获得靠近有监督的后果 … 所以当初获得高准确率的思路根本都是朝着半监督和如何残缺辨别出乐音这个大方向走的

整体 pipline 分为两大部分:Co-Divide 和基于 semi-supervised learning

Co-Divide 局部借鉴 pre-trained model 对 N 个样本计算 loss,这里有个假如,这 N 个变量是由两个高斯分布的混合散布产生的,其中均值较大的那个散布是噪声样本,均值较小的是洁净样本,那么接下来基于该设定,咱们就能够依据每个样本的 loss,别离求出它属于洁净样本的概率 wi, 失去阈值就能够依照设定的阈值将训练数据分为有标签和无标签两类,而后借鉴 SSL 办法进行训练。

须要留神为了让模型收敛,咱们须要在划分数据之前,先用全副的数据对模型训练几个 epochs,以达到“预热”的目标。然而“预热”过程会导致模型对非对称噪声样本过拟合从而使得噪声样本也具备较小的 loss,这样 GMM 就不好判断了,会影响到前面的训练。为了解决这个问题,咱们在“预热”训练时的,能够在原先穿插熵损失的根底上退出额定的正则项 -H,这个正则项就是一个负熵,惩办预测概率分布比拟尖利的样本,令概率分布平坦一些,这样就能够避免模型过于“自信”。

对训练数据进行划分之后,咱们就能够利用一些现成的半监督学习办法来训练模型,论文中采纳的是目前罕用的 MixMatch 办法,不过再用 MixMatch 之前,论文还做了 co-refinement 与 co-guess 的改良

  • DivideMix: Learning with Noisy Labels as Semi-supervised Learning. ICLR 2020

【Label correction】

标签纠正办法思路很简略就是相当于是一个从新打一个伪标签的概念,然而齐全放弃原始的标签也过于暴力,ICCV2019 的这篇文章在“label correction phase”通过一个 pre-trained 模型失去随机抉择每个类中的几张图采纳聚类的办法失去 Prototype 样本的每个类的聚类核心,对输出图片失去的特征向量和各类聚类核心计算间隔,失去图片的伪标签,最初的 loss 是原始标签计算的穿插熵损失和伪标签计算的伪标签的求和

  • Han, Jiangfan, Ping Luo, and Xiaogang Wang. “Deep self-learning from noisy labels.“, ICCV 2019

Result and Conclusion:

带噪学习畛域的钻研是非常有意义的,咱们在咱们的场景进行了验证,都有不错的晋升,最低有 2~3 个点的晋升,最高有 10 个点的晋升,当然在一个场景的验证不可能齐全阐明办法的有效性,咱们也发现多种办法的组合有时候并不能起到一个 double 性能的晋升,反而有可能升高最终的后果。

咱们心愿可能采纳 AutoML 的思路来抉择最优的组合形式,另外心愿带噪学习的办法迁移性可能强一些,毕竟当初大部分还都集中在分类工作当中,前期咱们也会探索一下 Meta Learning 在带噪学习畛域的办法,同时会不断更新每个模块的最新办法,欠缺在 mmclassification 当中,欢送一起交换

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0