Label Distribution for Learning with Noisy Labels [IJCAI’20]
根据标记分布计算样本置信度,加强模型区分正确与错误样本的能力。
背景与问题
本文进一步探索了噪声学习中的关键问题,即,如何准确地区分噪声样本与干净样本。作者根据标记分布 (Label Distribution) 提出了一种样本置信度的估计方法 LDCE (Label Distribution based Confidence Estimation)。
本文的一个研究动机如下图所示,不同的噪声学习技术对于不同类型的噪声并不鲁棒,例如:Forward Correction Loss (FCL) 对于非对称噪声效果较好,但是对于对称噪声并不稳健。然而,如果能够将噪声样本准确过滤,并使用干净样本配合交叉熵学习,其性能对于任何类型的噪声都是稳健的。
在本文中,作者研究了给定干净验证集的噪声学习问题,即,给定一个噪声数据集和一个有限的干净数据集学习一个性能较好的模型。
方法
为了能够尽可能利用有限的标记样本,本文应用了一种元学习的策略:从干净数据集中采样可信查询集与支撑集;从噪声数据集中采样噪声查询集。
标记分布
在本文中,标记分布依赖于样本在特征空间的相似度进行计算,给定特征编码器 \(\boldsymbol{z}_{i}=f_{\boldsymbol{\theta}}\left(\boldsymbol{x}_{i}\right)\),两个样本 \(\boldsymbol{z}_{i},\boldsymbol{z}_{j}\) 的相似度视为 \(s_{i j}=\left\|\boldsymbol{z}_{i}-\boldsymbol{z}_{j}\right\|\)。
进而,任意样本 \(\boldsymbol{x}_i\) 的标记分布利用支撑集 \(\boldsymbol{S}\) 得到。首先计算样本 \(\boldsymbol{x}_i\) 与某类 \(j\) 支撑集样本 \(\boldsymbol{x}_j \in \boldsymbol{S}_j\) 之间的相似度:
\[m_{i}^{j}=\frac{1}{\left|\boldsymbol{S}_{j}\right|} \sum_{j=1}^{\left|\boldsymbol{S}_{j}\right|} s_{i j}
\]
再将相似度向量通过 SoftMax 函数得到样本的标记分布:
\[d_{i}^{j}=\frac{\exp \left(m_{i}^{j}\right)}{\sum_{k=1}^{c} \exp \left(m_{i}^{k}\right)}
\]
标记分布优化
标记分布依赖于准确的特征表示,因此,需要研究如何优化特征空间。我们发现计算任意样本的标记分布仅依赖于支撑集合,同时,我们可以利用可信查询集中的样本中的标记是置信的。因此,我们可以利用它来优化特征表示,即,优化可信查询集中标记分布于真实标记一致:
\[d_{i}^{j}=\frac{\exp \left(m_{i}^{j}\right)}{\sum_{k=1}^{c} \exp \left(m_{i}^{k}\right)}
\]
标记分布置信度
对于噪声查询集,我们定义基于标记分布的标记置信度为:
\[c_{i}^{(t+1)}=\alpha c_{i}^{(t)}+(1-\alpha) \boldsymbol{d}_{i}^{\mathrm{T}} \tilde{\boldsymbol{y}}_{i}
\]
其中, \(c_{i}^{(t)}\) 是第 \(t\) 轮计算得到的置信度。通过样本的标记分布与观察标记的相似度来度量标记的本轮的置信度,同时,使用训练过程中置信度的指数集成作为样本最终标记置信度。
分类任务
在优化标记分布的同时,干净样本和噪声样本的标记一样可以指导表示学习。给定分类网络\(p\left(\boldsymbol{y}_{i} \mid \boldsymbol{x}_{i}\right)=f_{\boldsymbol{\phi}}\left(\boldsymbol{z}_{i}\right)\),我们在可信查询集与支撑集上直接优化交叉熵:
\[\mathcal{L}_{t}=-\frac{1}{n+m_{1}} \sum_{i=1}^{n+m_{1}} \sum_{j=1}^{c} y_{i}^{j} \log \left(p\left(y_{i}^{j} \mid \boldsymbol{x}_{i}\right)\right)
\]
在噪声支撑集上优化根据置信度筛选的交叉熵:
\[\mathcal{L}_{u}=-\sum_{i=1}^{m_{2}} \sum_{j=1}^{c} a_{i} \tilde{y}_{i}^{j} \log \left(p\left(y_{i}^{j} \mid \boldsymbol{x}_{i}\right)\right)
\]
其中,\(a_{i}\) 根据置信度筛选的权重向量,表示为:\(a_{i}=\left\{\begin{array}{cl} c_{i} & \text { if } \quad c_{i} \geq \delta \\0 & \text { otherwise } \end{array}\right.\)。
利用干净样本学习
利用基于标记分布的置信度,我们可以从噪声数据集中选择出一部分纯净数据(剩余则为噪声数据),并利用干净数据、纯净数据与噪声数据共同学习最终分类模型 (Purified Data based Loss Correction)。
本质上就是将交叉熵与 FCL 相结合。对于干净数据,直接使用交叉熵进行学习;对于噪声数据,使用 FCL 进行学习;对于纯净数据,由于并非 100% 可以相信,因此,将交叉熵与 FCL 加权结合:
\[\ell_{\text {purified }}=\lambda \ell_{c e}+(1-\lambda) \ell_{\text {corr }}
\]
实验
本文先做了一些实验证明噪声样本筛选的准确率,验证了置信度越高,噪声样本越少。

同时,将一些简单方法加上本文所提的 LDCE 技术,确实能够进一步提升模型的性能。
主要实验本文对比了一众同样也利用干净验证集的方法,就是噪声率设置的比较奇怪……

在噪声问题通用数据集 Clothing1M 上也得到了比较好的效果:
思考
- 本文基于标记分布计算置信度和基于伪标记计算置信度好像本质上差不多?
- 面对较小的验证集合,本文元学习的思路是可以借鉴的。
- 本文还是利用了 gengx 老师看家本领标记分布在噪声学习上应用了一下。其实,从噪声生成的角度来看,一些噪声就是由于标记为硬标记导致的。从这个角度来看,标记分布反而是解决此类噪声的一个有效手段。

原文链接:Label Distribution for Learning with Noisy Labels [IJCAI'20]
WNJXYKの博客 版权所有,转载请注明出处。
还没有任何评论,你来说两句吧!