DIVIDEMIX: LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING
论文阅读:
DIVIDEMIX: LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING
作者说明
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:凤尘 》》https://www.cnblogs.com/phoenixash/p/15369008.html
基本信息
\1.标题:DIVIDEMIX: LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING
\2.作者:Junnan Li, Richard Socher, Steven C.H. Hoi
\3.作者单位:Salesforce Research
\4.发表期刊/会议:ICLR
\5.发表时间:2020
\6.原文链接:https://arxiv.org/abs/2002.07394
Abstract
众所周知,深度神经网络需要注释。为了降低深度网络学习时的标注成本,人们做了大量的工作。两个主要的学习方向包括使用噪声标签的学习和利用未标记数据的半监督学习。在这项工作中,我们提出了DivideMix,利用半监督学习技术来学习带有噪声标签的新框架。其中,DivideMix采用混合模型对每个样本的loss分布进行建模,将训练数据动态地划分为带干净样本的标记集和带噪声样本的未标记集,并以半监督的方式对标记和未标记的数据进行训练。为了避免确认偏差,我们同时训练了两个分化的网络,每个网络使用来自另一个网络的数据集划分。在半监督训练阶段,我们对MixMatch策略进行改进,分别对有标记的样本和无标记的样本进行标签共同细化和标签共同猜测。在多个基准数据集上的实验表明,在最先进的方法上有实质性的改进。Code is available at https://github.com/LiJunnan1992/DivideMix.
1.Introduction
深度神经网络(dnn)训练的显著成功在很大程度上归功于人工标注标签的大数据集的收集。然而,用高质量的注释标记大量数据是非常昂贵和耗时的。另一方面,有替代和廉价的方法来挖掘带有标签的大规模数据,如查询商业搜索引擎(Li et al., 2017a),下载带有标签的社交媒体图片(Mahajan et al., 2018),利用机器生成的标签(Kuznetsova et al., 2018),或者使用单个注释器对每个样本进行标注(Tanno et al., 2019)。这些替代方法不可避免地产生带有噪声标签的样品。最近的一项研究(Zhang et al., 2017)表明,dnn容易对噪声标签过度拟合,导致泛化性能较差。
现有的带噪声标签的学习(LNL)方法主要采用损失校正方法。有些方法估计噪声转移矩阵并用它来校正损失函数(Patrini et al., 2017;Goldberger & Ben-Reuven, 2017)。然而,正确估计噪声转移矩阵是一个挑战。一些方法利用dnn的预测来纠正标签并相应地修改损失(Reed et al., 2015;Tanaka等人,2018)。些方法在高噪声比下表现不佳,因为来自DNNs的预测将主导训练并导致过拟合。为了克服这个问题,Arazo等人(2019)采用了MixUp (Zhang等人,2018)增强。另一种方法是选择或重权样本,使噪声样本对损失的贡献更小(Jiang et al., 2018;Ren et al., 2018)。一个具有挑战性的问题是设计一个可靠的标准来选择干净的样品。已有研究表明,dnn倾向于在拟合标签噪声之前首先学习简单的模式(Arpit et al., 2017)。因此,许多方法将损失小的样本视为干净的样本(Jiang et al., 2018;Arazo等人,2019)。其中,Co-teaching (Han et al., 2018)和Co-teaching+ (Yu et al., 2019)训练两个网络,每个网络在小批量中选择小损失样本来训练另一个网络。
另一个旨在降低注释成本的活跃研究领域是半监督学习(SSL)。在SSL中,除了有标记的样本外,训练数据还包括未标记的样本。通过加强模型对未标记数据进行低熵预测(Grandvalet & Bengio, 2004)或对扰动输入进行一致预测(Laine & Aila, 2017;Tarvainen & Valpola, 2017;Miyato等人,2019)在利用无标注样本领域取得显著进展。最近,Berthelot等人(2019)提出了MixMatch,它在一个框架中统一了几种主流SSL方法,并实现了最先进的性能。
尽管LNL和SSL各自取得了进步,但它们之间的联系尚未得到充分的探索。在这项工作中,我们提出了DivideMix,它以半监督的方式处理标签噪声的学习。与大多数现有的LNL方法不同,DivideMix丢弃了极有可能是噪声的样本标签,利用噪声样本作为未标记数据,使模型从过拟合中得到正则化,提高泛化性能。这项工作的主要贡献是:
- 我们提出co-divide,即同时训练两个网络。对于每个网络,我们根据其每个样本的loss分布动态拟合高斯混合模型(GMM),将训练样本划分为有标记集和无标记集。然后,分割后的数据被用来训练另一个网络。co-divide使两个网络保持分歧,从而可以过滤不同类型的错误,避免自我训练中的确认偏差。
- 在SSL阶段,我们通过标签共同细化和共同猜测来改进MixMatch,以考虑标签噪声。对于有标记的样本,我们使用GMM引导的网络对另一个网络的预测来改进它们的真实标签。对于未标记的样本,我们使用两个网络的集合来对它们的标签进行可靠的猜测。
- 我们的实验表明,在不同类型和不同成都平的标签噪声的多个基准上,DivideMix显著地提高了最先进的结果。我们也提供广泛的消融研究和定性结果,以检查不同成分的影响。
2.Related Work
2.1 LEARNING WITH NOISY LABELS
现有的训练带噪声标签的dnn的方法大都是为了修正loss函数。修正方法可以分为两类。第一种方法对所有样本一视同仁,通过重新标记噪声样本来显式或隐式地纠正损失。对于重标记方法,对噪声样本的建模采用有向图模型(Xiao et al., 2015)、条件随机场(Vahdat, 2017)、知识图(Li et al., 2017b)或DNNs (Veit et al., 2017;Lee等人,2018)。然而,他们需要获得一小部分干净的样本。最近,Tanaka等人(2018)和Yi & Wu(2019)提出了利用网络预测重新标记样本的迭代方法。以显式地修正损失。Reed等人(2015)提出了一种利用模型预测结果修正损失的bootstrapping方法,Ma等人(2018)利用特征子空间的维数对bootstrapping方法进行了改进。Patrini等人(2017)估计了用于损失修正的标签损坏矩阵,Hendrycks等人(2018)通过使用一组干净的数据改进了损坏矩阵。第二类校正侧重于调整训练样本的权重或分离干净和有噪声的样本,这最终会修正损失函数 (Thulasidasan et al., 2019; Konstantinov & Lampert, 2019).常用的方法是将损失较小的样品视为清洁样本 (Shen & Sanghavi, 2019)。Jiang et al.(2018)通过给样本赋权,训练教师网络引导学生网络。Ren et al.(2018)基于梯度方向对样本重新加权。Chen et al.(2019)应用交叉验证来识别干净的样本。Arazo等人(2019)通过用混合模型对每个样本的损失建模来计算样本权重。Han et al.(2018)训练两个网络,在每个小批内选择小损失样本进行训练,Yu et al.(2019)通过不同的数据更新网络,使两个网络保持发散,做了进一步提升。
与上述所有方法相反,我们的方法丢弃了极有可能是噪声的标签,并利用噪声样本作为未标记的数据,以SSL的方式正则化训练。Ding et al.(2018)和Kong et al.(2019)已经证明SSL方法在LNL中是有效的。Ding et al.(2018)和Kong et al.(2019)已经证明SSL方法在LNL中是有效的。然而,他们的方法在高噪声下性能不佳,而我们的方法可以更好地识别和利用噪声样本。除了利用SSL,我们的方法还引入了其他优点。与自训练方法相比(Jiang et al., 2018;Arazo et al., 2019),我们的方法通过训练两个网络互相过滤错误,可以避免确认偏差问题(Tarvainen &Valpola, 2017)。与Co-teaching (Han et al., 2018)和Co-teaching+ (Yu et al., 2019)相比,我们的方法更具有抗噪声的鲁棒性,因为我们让两个网络在每个epoch (co-divide)隐式地相互教学,在每个mini-batch(label co-refine和co-guessing)显式地相互教学。
2.2 SEMI-SUPERVISED LEARNING
SSL方法旨在利用未标记的数据来提高模型的性能。目前最先进的SSL方法主要涉及在未标记数据上添加额外的损失项,以正则化训练。正则化分为两类:一致性正则化(Laine &艾拉,2017;Tarvainen,Valpola, 2017;Miyato等人,2019)强制该模型对增强的输入数据产生一致的预测;熵最小化(Grandvalet &Bengio, 2004;Lee, 2013)鼓励该模型对未标记数据给出高置信度预测。最近,Berthelot et al.(2019)提出了MixMatch,它将一致性正则化、熵最小化和MixUp (Zhang et al., 2018)正则化统一为一个框架。
3.METHOD
DIVIDEMIX: LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING的更多相关文章
- A brief introduction to weakly supervised learning(简要介绍弱监督学习)
by 南大周志华 摘要 监督学习技术通过学习大量训练数据来构建预测模型,其中每个训练样本都有其对应的真值输出.尽管现有的技术已经取得了巨大的成功,但值得注意的是,由于数据标注过程的高成本,很多任务很难 ...
- Machine Learning Algorithms Study Notes(2)--Supervised Learning
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- A Brief Review of Supervised Learning
There are a number of algorithms that are typically used for system identification, adaptive control ...
- Supervised Learning and Unsupervised Learning
Supervised Learning In supervised learning, we are given a data set and already know what our correc ...
- 监督学习Supervised Learning
In supervised learning, we are given a data set and already know what our correct output should look ...
- 学习笔记之Supervised Learning with scikit-learn | DataCamp
Supervised Learning with scikit-learn | DataCamp https://www.datacamp.com/courses/supervised-learnin ...
- (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation
[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...
- Introduction - Supervised Learning
摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第一章<绪论:初识机器学习>中第3课时<监督学习>的视频原文字幕.为本人在视频学习过程中逐字逐句记 ...
- supervised learning|unsupervised learning
监督学习即是supervised learning,原始数据中有每个数据有自己的数据结构同时有标签,用于classify,机器learn的是判定规则,通过已成熟的数据training model达到判 ...
随机推荐
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
- servlet+Ajax开发web工程
前言 因为目前基本已经不会再用到servlet+jsp开发项目了,基本都是使用框架来开发:我们常用的框架都是基于servlet来封装的,该阶段只需要了解一下tomcat如何使用,servlet的生命周 ...
- Java通过网络图片之地址,下载到服务器
@RequestMapping("/downloadTableQrcode") public String downloadTableQrcode(HttpServletReque ...
- 在Excel中怎样才能在某一行前面一次插入多行?
你在要插入的行以下选中多少行,点插入,就能插入多少行.
- 手写个jsonp
原生jsonp具体实现 先上代码: //http://www.baidu.com?aa=11&callback=my_jsonp04349289664328899 var jsonp = fu ...
- Lambda@edge 实现负载均衡器功能
一般的业务实现流程为CDN->ELB->EC2,但OTT业务往往会产生很高的流量费用,如果使用常规的架构,流量费用会成倍增加,为了降低费用,我们对架构做了一些优化. AWS Cloudfr ...
- 浅析 Dapr 里的云计算设计模式
Dapr 实际上是把分布式系统 与微服务架构实践的挑战以及k8s 这三个主题的全方位的设计组合,特别是Kubernetes设计模式 一书作者Bilgin Ibryam 提出的Multi-Runtime ...
- Django的form组件——自定义校验函数
from django.shortcuts import render,HttpResponse from django import forms from django.core.exception ...
- ThreadLocal原理简单刨析
ThreadLocal原理简单刨析 ThreadLocal实现了各个线程的数据隔离,要知道数据是如何隔离的,就要从源代码分析. ThreadLocal原理 需要提前说明的是:ThreadLocal只是 ...
- Redis的持久化机制与内存管理机制
1.概述 Redis的持久化机制有两种:RDB 和 AOF ,这两种机制有什么区别?正式环境应该采用哪种机制? 我们的服务器内存资源是有限的,如果内存被Redis的缓存占满了怎么办?这就要看Redis ...