首页 > 其他分享 >[NeurIPS2021]Open-set Label Noise Can Improve Robustness Against Inherent Label Noise

[NeurIPS2021]Open-set Label Noise Can Improve Robustness Against Inherent Label Noise

时间:2024-06-14 19:46:59浏览次数:10  
标签:Noise 开集 样本 噪声 Label set right mathcal

这篇文章与ICML2022的Open-sampling是同一个作者,方法一模一样,只是问题的场景变为噪声标签学习,Open-sampling是长尾问题的场景,可参见写的这篇blog

这两篇文章大致做法完全相同:对biased数据集引入开集数据,在每个epoch分配均匀的闭集标签。如果是long tailed data,还涉及不平衡问题,因此分配就不是均匀分布了(详见之前的blog)。而这篇文章比Open-sampling早,且是在噪声标签学习问题上进行的,因此对于开集样本标签分配只是简单的均匀分配。但这篇文章提供了解释:为什么引入开集样本能帮助biased数据学习?

Method

对于无标签的数据集\(\mathcal{D}_{out}\),每个epoch会生成新的服从均匀分布的闭集噪声标签\(\mathcal{U}_k\),这部分数据使用单独的损失函数计算损失:

\[\mathcal{L}_2=\mathbb{E}_{\mathcal{D}_{\mathrm{out}}}\left[\ell\left(f(\widetilde{\boldsymbol{x}};\boldsymbol{\theta}),\widetilde{y}\right)\right]=\mathbb{E}_{\mathcal{D}_{\mathrm{out}}}\left[-e^{\widetilde{y}}\log f\left(\widetilde{\boldsymbol{x}};\boldsymbol{\theta}\right)\right],\mathrm{where~}\widetilde{y}\sim\mathcal{U}_k \]

\(f\)表示分类器。而原来的数据集\(\mathcal{D}_{train}\)使用另外的损失函数,整体的训练目标为:

\[\mathcal{L}_{\mathrm{total}}=\mathcal{L}_1+\eta\cdot\mathcal{L}_2=\mathbb{E}_{\mathcal{D}_{\mathrm{train}}}\left[\ell\left(f(x;\boldsymbol{\theta}),y\right)\right]+\eta\cdot\mathbb{E}_{\mathcal{D}_{\mathrm{out}}}\left[\ell\left(f(\widetilde{x};\boldsymbol{\theta}),\widetilde{y}\right)\right] \]

其中\(\eta\)是一个超参数,用于平衡两个损失函数的重要性。\(\mathcal{L}_1\)也可以使用其他的损失函数代替(文中使用的是CE)。

开集样本如何帮助噪声标签学习

简单来说:利用open set,神经网络的额外容量可以在很大程度上消耗掉,而不会干扰对干净数据中学习。增加开集辅助样本的数量会减慢固有噪声的拟合(见Fig. 1c)。

站在SGD的角度,作者的方法引入的open set带来的噪声是随机方向的、无冲突的和偏置的,这可能有助于模型收敛到具有优异稳定性的平坦最小值,并强制模型对 open set产生保守的预测(作者还在OOD检测任务上进行了测试)。

  • 随机方向:open set的噪声标签是均匀的,因此产生的SGD噪声方向随机,这使得训练难以收敛并有助于摆脱局部最小值。否则模型将很快收敛到局部最小值,因为在训练过程中参数的优化始终遵循梯度下降的方向。
  • 无冲突:open set使用独立的损失函数。如果和闭集使用统一损失函数,闭集样本生成的噪声可能与原始梯度相冲突,导致训练不稳定。
  • 偏置:open set的噪声期望不为0,因此噪声带来偏置,这会促使模型(分类器)\(f\)产生更保守的预测,因此该方法也能用于OOD检测。

作者在文中列举了关于噪声的SGD梯度相关证明,但个人觉得只是简单的化简。

Related Work

噪声标签学习大概可以分为以下几点,但彼此间不独立,也可以相互结合,因此才有不少A+B的paper。

  1. 使用挑选出来的样本训练:选择小损失样本;使用GMM分布筛出干净样本(e.g. Dividemix);使用多模型协议(通常是两个模型,两个模型同时认为是干净样本才算干净样本)。
  2. 对不同样本施加不同权重,干净样本权重更大。
  3. 基于估计的噪声转移矩阵或模型预测对损失进行校准。
  4. 设计更robust且有理论依据的损失函数。
  5. 设置正则化,提高噪声学习的泛化能力,如梯度裁剪、标签平滑。
  6. 与半监督结合。

Discussion

作者在文中仅考虑了与实例无关的开集噪声样本,大部分考虑训练集含开集噪声的论文也是如此。但实际场景下,开集噪声样本应当与干净样本有一定的相似性但仍不属于同一类(这在文中被称为instance-dependent open-set noisy labels),因此如果采用这种设置,结果可能又将不同。

参考文献

  1. Wei, Hongxin, et al. "Open-set label noise can improve robustness against inherent label noise." Advances in Neural Information Processing Systems 34 (2021): 7978-7992.
  2. Wei, Hongxin, et al. "Open-sampling: Exploring out-of-distribution data for re-balancing long-tailed datasets." International Conference on Machine Learning. PMLR, 2022.

标签:Noise,开集,样本,噪声,Label,set,right,mathcal
From: https://www.cnblogs.com/zh-jp/p/18248507

相关文章

  • 核心(Hutool-core)工具类(字符编码工具-CharsetUtil)
    介绍CharsetUtil主要针对编码操作做了工具化封装,同时提供了一些常用编码常量。常量常量在需要编码的地方直接引用,可以很好的提高便利性。字符串形式ISO_8859_1UTF_8GBKCharset对象形式CHARSET_ISO_8859_1CHARSET_UTF_8CHARSET_GBK方法编码字符串转为Charset对象Char......
  • GEE C28 在GEE中使用脚本和资源协作 Collaborating in Earth Engine with Scripts a
    导语:许多用户发现自己在某些时候需要与地球引擎中的其他人协作。学生可能需要在一个小组项目中工作,来自不同组织的人可能想要一起合作进行研究,或者人们可能想要与他人共享他们创建的脚本或资产。将展示如何与他人协作并分享工作。学习要点:•了解何时共享脚本或资产是重要的。......
  • DataSet 数据集的使用
    语法: publicstaticDataTableExecuteTable(stringsql){using(SqlConnectionconn=newSqlConnection(connStr)){conn.Open();SqlCommandcmd=newSqlCommand(sql,conn);Sql......
  • 有点东西,template可以直接使用setup语法糖中的变量原来是因为这个
    前言我们每天写vue3代码的时候都会使用到setup语法糖,那你知道为什么setup语法糖中的顶层绑定可以在template中直接使用的呢?setup语法糖是如何编译成setup函数的呢?本文将围绕这些问题带你揭开setup语法糖的神秘面纱。注:本文中使用的vue版本为3.4.19。关注公众号:【前端欧阳】,给自......
  • JavaScript 编程语言【数据类型】映射|集合|WeakMap and WeakSet
    文章目录MapandSet(映射和集合)MapMap迭代Object.entries:从对象创建Map]Object.fromEntries:从Map创建对象SetSet迭代(iteration)总结✅任务过滤数组中的唯一元素过滤字谜(anagrams)迭代键WeakMapandWeakSet(弱映射和弱集合)WeakMap使用案例:额外的数据使用案例:缓存Weak......
  • ABC 321 F #(subset sum = K) with Add and Erase
    题意有一个箱子,每次可以向里面添加或者拿走一个数,问每次操作过后,任选箱子里的数相加,总和等于k的方案数是多少。思路萌新算是学到新东西了,这其实是个可撤销背包的板题。我们先考虑一个问题:对于普通计数类dp,我们现在禁用某一个数i,我们现在想知道某一个数j有多少种方式表示(即dp......
  • QMenu setStyleSheet样式设置
    要实现如图所示的菜单按钮,有默认,悬停,点击三种状态;发现用Qss统一设置样式的时候,按下状态无效;QMenu::item{background:rgb(77,77,77);font-family:MicrosoftYaHeiUI;font-size:14px;height:32px;color:rgba(255,255,255,0.7);}QMenu::item:pressed//无效{......
  • CIFAR-100 dataset分类
    ThisdatasetisjustliketheCIFAR-10,exceptithas100classescontaining600imageseach.Thereare500trainingimagesand100testingimagesperclass.The100classesintheCIFAR-100aregroupedinto20superclasses.Eachimagecomeswitha"......
  • 机器学习策略篇:详解清除标注错误的数据(Cleaning up Incorrectly labeled data)
    清除标注错误的数据监督学习问题的数据由输入\(x\)和输出标签\(y\)构成,如果观察一下的数据,并发现有些输出标签\(y\)是错的。的数据有些标签是错的,是否值得花时间去修正这些标签呢?看看在猫分类问题中,图片是猫,\(y=1\);不是猫,\(y=0\)。所以假设看了一些数据样本,发现这(倒数第二......
  • C#中使用AutoResetEvent或者ManualResetEvent做线程管理
    1.Task/thread/sync/async..await/WhenAll相关基础知识参见此处链接2.什么是AutoResetEvent和ManualResetEvent事件他们都是C#中System.Threading下面的类。用于在多个线程之间进行事件通知和管理。他们的管理方法主要是三个:Reset():关闭WaitOne():阻挡Set():启动AutoR......