论文阅读:

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的更多相关文章

  1. A brief introduction to weakly supervised learning(简要介绍弱监督学习)

    by 南大周志华 摘要 监督学习技术通过学习大量训练数据来构建预测模型,其中每个训练样本都有其对应的真值输出.尽管现有的技术已经取得了巨大的成功,但值得注意的是,由于数据标注过程的高成本,很多任务很难 ...

  2. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  3. A Brief Review of Supervised Learning

    There are a number of algorithms that are typically used for system identification, adaptive control ...

  4. Supervised Learning and Unsupervised Learning

    Supervised Learning In supervised learning, we are given a data set and already know what our correc ...

  5. 监督学习Supervised Learning

    In supervised learning, we are given a data set and already know what our correct output should look ...

  6. 学习笔记之Supervised Learning with scikit-learn | DataCamp

    Supervised Learning with scikit-learn | DataCamp https://www.datacamp.com/courses/supervised-learnin ...

  7. (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation

    [机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...

  8. Introduction - Supervised Learning

    摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第一章<绪论:初识机器学习>中第3课时<监督学习>的视频原文字幕.为本人在视频学习过程中逐字逐句记 ...

  9. supervised learning|unsupervised learning

    监督学习即是supervised learning,原始数据中有每个数据有自己的数据结构同时有标签,用于classify,机器learn的是判定规则,通过已成熟的数据training model达到判 ...

随机推荐

  1. qt 中的画图

  2. LeetCoded第2题题解--两数相加

    2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表 ...

  3. swagger2 注解说明文档

    @Api:用于类上,说明该类的作用.可以标记一个Controller类做为swagger 文档资源 @Api(value = "xxx", description = " ...

  4. vue2.0中模拟数据的配置

    在开发过程中,有时候接口跟不上我们的进度,我们要测试,就需要自测. 现在vue已经升级到2.0版本了,早期在vue构建工程文件在build里面有dev-server.js,但是后来构建去除了该文件集成 ...

  5. Git脑图

    ps:有时我们想一台有不同的git账号对应不同的git仓库时(gitLab/gitHub)时,除了全局的用户配置定义,我们可以为不同仓库自定义不同用户名和邮件 1.查询全局的配置:git config ...

  6. java实现全排列输出

    java实现全排列输出 转自:http://easonfans.iteye.com/blog/517286 最近在找工作,面试java程序员或者软件工程师,在笔试的时候常常见到这么一道题:全排列 的输 ...

  7. spring boot应用常用配置

    pom.xml <!--自动打包--> <plugin> <groupId>org.springframework.boot</groupId> < ...

  8. ES6扩展——数组扩展

    1.结合扩展运算符使用.通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 //结合扩展运算符使用 function foo(a,b,c){ console.log(a); // ...

  9. Swift-Button 的 highlighted(高亮)

    摘要 在学习小程序时,看到小程序中的一个样式属性 hover-class,通过设置这个属性,就可以给点击的控件添加一个高亮效果.所以也就萌生了在 Swift 也实现一个类似的功能的想法,开干. 下面代 ...

  10. (三)羽夏看C语言——进制

    写在前面   由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...