[论文学习]DIVIDEMIX:带噪声标签的半监督学习LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING

  本文研究含噪声标签数据的训练,是目前该领域的SOTA。主要方法是:首先使用高斯混合模型,根据训练集每样本的损失函数值对样本进行分类,分为干净样本和噪声样本,把噪声样本作为无标签样本;然后使用半监督学习常用的协同训练法,即同时训练两个分歧网络,互相使用另一个网络的数据集划分结果工作,目的是避免被错分的样本在单一网络中形成“偏差确认”。该论文收录于ICLR2020,作者Junnan Li,工作单位salesforce。
论文地址:https://arxiv.org/abs/2002.07394
开源代码:https://github.com/LiJunnan1992/DivideMix

一、主要原理

在这里插入图片描述
  主要原理如上图,同时训练两个同结构但不同参数的网络A和B。
  第一步,在每epoch,使用混合高斯模型GMM对每个样本的损失值进行分类。这是因为神经网络对于干净标签和噪声标签会表现出不同的损失值,噪声标签的损失值更大,因此对损失值划定一个阈值即可区分干净标签和噪声标签,但是这个阈值并不能事前确定,需要使用某种聚类算法实现自动的分类,作者认为干净标签和噪声标签的损失值都应是服从各自不同的高斯分布,所以使用含2个组分的高斯混合模型即可分开。
  这里复习一下GMM。GMM是一种聚类算法,用来对含有多个高斯分布的数据进行分类,一般使用期望最大(EM)算法来拟合其中每个高斯分布的参数,然后得到分类阈值进行分类。比如,男生的身高和女生的身高都分别服从一个高斯分布,通过计算后可以得到一个阈值1.6米,可以认为1.6米以下的都是女生,1.6米以上的都是男生。可见对于均值比较接近的高斯分布,GMM分类效果并不好。
为了更好的进行GMM分类,文中使用了一些tricks,如figure2所示,进行一定的预热,就是先训练10个epoch左右,加入了一个罚函数(使用负熵函数),可以发现干净标签和噪声标签的损失差别更明显一些;再经过DivideMix的多轮循环,这个差别会更加明显。
在这里插入图片描述
  第二步,在每mini-batch,使用改进的MixMatch法训练,即两个网络的输出结果混合后再分别输入给两个网络继续训练。

二、优缺点分析

1.优点

  根据作者的试验数据,本方法效果很好,比之前的方法有很大提升,噪声50%时比无噪声时精度没有太多下降,噪声80%时仍有相当高的精度。

2.缺点

  根据我的试验,本方法对于噪声含量10%以下的低噪声情况效果反而下降很厉害。这是因为对于低噪声含量情况,两个类别的损失分布混在了一起,GMM无法有效识别出噪声样本,所以会把很多干净样本划分为噪声样本。也许调整一下GMM的参数会好一些,我没有进一步试验。

总结

  我学习噪声标签问题的主要目的是基于之前做很多数据竞赛题时发现了不少人工标注错误问题,希望能够找到解决这些问题的好方法,然而看了好几篇论文之后并没有找到直接好用的方法,顶多是论文中的思想可供借鉴一下。本文算是标签噪声领域目前效果最好的,但是本文仅在噪声较高情况下才有用,对于噪声含量不超过20%的情况并不适用。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值