本文分享自华为云社区《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当中,欢迎一起交流

附件下载:learning with noisy label.pptx 8.51MB

点击关注,第一时间了解华为云新鲜技术~

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

  1. 【深度学习】基于深度神经网络进行权重剪枝的算法(二)

    [深度学习]基于深度神经网络进行权重剪枝的算法(二) 文章目录 1 摘要 2 介绍 3 OBD 4 一个例子 1 摘要 通过从网络中删除不重要的权重,可以有更好的泛化能力.需求更少的训练样本.更少的学 ...

  2. 【深度学习】基于深度神经网络进行权重剪枝的算法(一)

    [深度学习]基于深度神经网络进行权重剪枝的算法(一) 1 pruning 2 代码例子 3 tensorflow2 keras 权重剪裁(tensorflow-model-optimization)3 ...

  3. 神经网络中的最小二乘_深度神经网络:噪声中解读出科学

    该研究介绍了一种基于深度神经网络的基本新方法,以基于已知的物理模型将函数形式拟合到噪声数据.来自美国橡树林国家实验室的Stephen Jesse领导的团队,提出了一种新的方法,可用来逆向解决问题,可从 ...

  4. 计算机视觉检测 白皓月,基于深度神经网络的视线跟踪技术研究

    毛云丰 沈文忠 滕童 摘  要: 视线跟踪是人机互动技术中重要的组成部分,可以广泛地应用在机器人.手机.笔记本等设备中.针对传统方法在低分辨率图像上的准确率不高和设计步骤繁琐等问题,提出一种基于深度神 ...

  5. TGRS2020/遥感:Multisource Domain Adaptation for Remote Sensing Using Deep Neural Netw基于深度神经网络的遥感多源域自适应

    TGRS2020/遥感:Multisource Domain Adaptation for Remote Sensing Using Deep Neural Networks基于深度神经网络的遥感多源 ...

  6. 基于深度神经网络的高光谱影响分类方法研究---MNF+自动编码器+Softmax (准确率比较低,17年的论文)

    论文地址 基于深度神经网络的高光谱影响分类方法研究 装备学院学报 遥感影像分类的问题:预处理复杂,高维特征提取困难,分类不够精确等缺陷 首先采用最大噪声分数来降低特征空间维度,然后将自动编码器与sof ...

  7. 基于深度神经网络的中药材识别

    摘 要 近年来,受到我国国民经济发展与社会财富积累增速加快的影响,人们对自己的身体健康也越来越重视,很多的人都选择在服用中草药来治疗疾病.改善体质,因此,我国的中药材行业在这一段时间内也迎来了蓬勃的发 ...

  8. 生物信息学|MOLI:基于深度神经网络进行多组学数据整合并用于药物反应预测

    本篇推文引自:MOLI: multi-omics late integration with deep neural networks for drug response prediction 摘要 ...

  9. 花卉识别python_基于深度神经网络的安卓移动端智能花卉识别算法研究

    基于深度神经网络的安卓移动端智能花卉识别算法研究 基于深度神经网络的安卓移动端智能花卉识别算法研究 一.深度学习简介及开发环境搭建 二.深度可分离卷积MobileNets模型 三.VGG与Mobile ...

最新文章

  1. 中关村论坛首次设置技术交易板块,人工智能和新一代信息技术专场发布会即将召开...
  2. java_AWT.内存监控
  3. CAN'T TAKE MY EYES OF YOU
  4. 怎么查看ftp服务器的版本信息,查看ftp服务器版本
  5. sklearn模型的训练(上)
  6. 多案分库分表带来的问题-分布式事务
  7. 简单人物画像_你真的理解用户画像吗?| 船说
  8. 不规则图形数格子的方法_【微课堂】人教版五年级数学(上)6.5不规则图形的面积图文精讲+教学视频+同步练习...
  9. 第 2 章 MybatisPlus 通用 CRUD
  10. 云桌面三大谎言之GPU虚拟化
  11. 计算机桌面文件自动备份取消,电脑如何取消自动备份_电脑怎么取消自动备份...
  12. python测试脚本实例-python脚本测试
  13. Exynos4412 移植Linux Kernel 5.4过程记录(三)——根文件系统构建与SD卡挂载fs
  14. 为什么要学习凸优化?
  15. 关于网络的命令及介绍
  16. Android去除对话框边距,去除TextView默认内边距
  17. OpenGL 驱动 与 扩展的关系
  18. 2022年最新的Detectron 2 (0.6) 安装流程(联想笔记本Y9000K+Anaconda+Win 11 +RTX3070)
  19. 16福师计算机应用基础在线作业,16春季福师《计算机应用基础》在线作业二分析.doc...
  20. 递归解九连环并且打印中间过程

热门文章

  1. 使用函数处理数组 高阶函数 js
  2. Bootstrap 导入插件
  3. python数据序列题库_Python题库系列分享一(17道)
  4. 浏览器安全检查己通过_Edge浏览器(Chromium)——从XSS到接管网页
  5. wepy公共样式_wepy组件化开发之html转换组件
  6. python常用工具
  7. SpringBoot 无法显示html文件 找不到html文件 如果显示html文件
  8. js基本函数和基本方法
  9. Win10系列:JavaScript 模板绑定
  10. HDU 4740 The Donkey of Gui Zhou (模拟)