【CV | Probabilistic End-to-end Noise Correction for Learning with Noisy Labels】阅读笔记

Probabilistic End-to-end Noise Correction for Learning with Noisy Labels阅读笔记

写在前面
首次接触噪声学习问题是在NLP领域的某两篇论文中,并得知噪声学习问题在CV领域的研究更加广泛且深入,于是乎参照github上一个learning with noise的论文列表,开始粗略阅读CV领域噪声学习方面的论文,并希望能够找到能够借鉴的思路,未来将其迁移至自己研究的领域。PENCIL这篇论文个人还是比较喜欢的,本文结合论文和他人博客内容对论文思路进行梳理,若有理解偏差之处还烦请指出~

要点概述

以下是PENCIL模型框架:
在这里插入图片描述

分析内容
动机数据标签存在噪声问题,对有监督训练造成巨大负面效应,而单纯地丢弃噪声数据则会导致数据量减少,同样也不是我们希望看到的
方案将包含噪声的标签替换成随着训练过程不断更新的软标签
创新点软标签这个思想其实之前就有,但是本文软标签更新的方案比较特别(之后有空再整理对比别的更新方案)

详细分析

本文的较为核心的两部分是模型损失的计算和标签的更新,下面将分别讲解。在此之前,先来介绍各个符号的含义。

符号含义

符号含义
y ~ \widetilde{y} y 个人理解是一个衔接 y ^ \hat{y} y^ y d y^{d} yd的变量,它帮助 y d y^{d} yd正则化为一个概率分布
y ^ \hat{y} y^原始带噪声的标签
y d y^{d} yd标签分布(label distribution),作为纠正后的软标签
Y ~ \widetilde{Y} Y 所有 y ~ i \widetilde{y}_i y i的联合
Y ^ \hat{Y} Y^所有 y ^ i \hat{y}_i y^i的联合
Y d Y^{d} Yd所有 y i d y^{d}_i yid的联合

模型损失的计算

具体公式如下图所示:
在这里插入图片描述
由此可见,模型的损失包含以下三个部分:

第一部分损失(Lc)在这里插入图片描述
含义使用预测分布与软标签之间的KL散度对偶式来度量分类损失(是最主要的损失)
第二部分损失(Lo)在这里插入图片描述
含义使用噪声标签与软标签的交叉熵损失,防止软标签与噪声标签偏差过多(前提是噪声标签大部分可信)
第三部分损失(Le)在这里插入图片描述
含义使用预测分布与自己的交叉熵损失,防止训练卡在局部最优(待议)

标签的更新

接下来看一下PENCIL的算法流程,如下图所示。
在这里插入图片描述
更新涉及到的公式:
y d = s o f t m a x ( y ~ ) y^{d} = softmax(\widetilde{y}) yd=softmax(y )
y ~ = K y ^ \widetilde{y} = K\hat{y} y =Ky^

如下图所示,为了更新label distribution(也就是软标签 y d y^{d} yd),我们需要计算第一部分损失(分类损失)对 y d y^{d} yd的偏导。图中两个公式分别是:对使用KL散度形式的 L c L_{c} Lc求相应偏导,和对使用KL散度对偶形式的 L c L_{c} Lc求相应偏导的结果。作者接下来想要证明后者更优。

注意, f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)是网络的预测结果,它与label distribution y d y^{d} yd之间的差距决定了网络参数 θ \theta θ如何更新。
在这里插入图片描述
(Q:为啥没有说第二部分损失对其偏导?)

具体是如何证明的呢,我们先看下图中的原文解释。
在这里插入图片描述
对于第 i i i个训练样本,假设它是第 j j j类。 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)是第 i i i个训练样本被网络预测成第 j j j类(即正确预测)的概率; y d y^{d} yd是label distribution即软标签, y i d y^{d}_{i} yid是第 i i i个训练样本的label distribution,因此 y i j d y^{d}_{ij} yijd是该样本label distribution中第 j j j列的值(也就是该软标签认为的该类别的置信度)。根据公式(10)和(11)我们可以得出以下结论:

  • 结论1:如果 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)远大于 y i j d y^{d}_{ij} yijd。公式(10)由于有个log,所以计算出的梯度是medium negative;公式(11)计算出的梯度是large negative,梯度更大
  • 结论2:如果 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)远小于 y i j d y^{d}_{ij} yijd。和上面一样的道理,公式(10)由于有个log,所以计算出的梯度是medium positive;公式(11)计算出的梯度是接近于0

假设于对第 i i i个训练样本 x i x_{i} xi,它的真实分类类别是7,但它的原始噪声标签 y ^ \hat{y} y^ (one-hot)分类类别是3,即在第三列( j = 3 j=3 j=3)数值最大, y ^ i , 3 = 1 \hat{y}_{i,3}=1 y^i,3=1。由于我们对 y i d y^{d}_{i} yid初始化时使用的是噪声标签,因此最开始的 y i d y^{d}_{i} yid在第三列数值最大( y i , 3 d y^{d}_{i,3} yi,3d will be the peak in label distribution)。为了让结果预测正确,网络内部的平滑操作需要使得预测结果 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)逐渐偏向正确的第7类,即 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ) peak at j = 7 j=7 j=7

为了达到上述目的,我们需要让 f 7 ( x i ; θ ) f_{7}(x_{i};\theta) f7(xi;θ) 远大于 y ^ i , 7 \hat{y}_{i,7} y^i,7,让 f 3 ( x i ; θ ) f_{3}(x_{i};\theta) f3(xi;θ) 远小于 y ^ i , 3 \hat{y}_{i,3} y^i,3。这样的效果是,让预测结果中正确类别的分数尽可能大,噪声标签对应类别的分数尽可能小。

我们继续结合上面的出的两条结论分析。
结论1可以套进“需要让 f 7 ( x i ; θ ) f_{7}(x_{i};\theta) f7(xi;θ) 远大于 y ^ i , 7 \hat{y}_{i,7} y^i,7”这个情景中,使用公式(11)可以以较大值的负梯度增加 y i , 7 d y^{d}_{i,7} yi,7d,这样可以实现 y i , 3 d y^{d}_{i,3} yi,3d尽可能地大,而公式(10)无法实现;
结论2可以套进“如果 f j ( x i ; θ ) f_{j}(x_{i};\theta) fj(xi;θ)远小于 y i j d y^{d}_{ij} yijd”这个情境中,使用公式(11)由于梯度为0,所以一直不更新, y i , 3 d y^{d}_{i,3} yi,3d一直不变,而公式(10)会以中等值的正梯度减小 y i , 3 d y^{d}_{i,3} yi,3d

(Q:不是希望 y i , 3 d y^{d}_{i,3} yi,3d越小越好吗?为什么选择让它保持不变?)

备注:
噪声标签 y ^ \hat{y} y^的作用:

  • 虽然他没有直接影响参数学习,但初始化label distribution y d y^{d} yd的时候需要间接用到它(因为 y ~ \widetilde{y} y 是用 y ~ = K y ^ \widetilde{y} = K\hat{y} y =Ky^这个式子进行的初始化,而 y d y^{d} yd y ^ \hat{y} y^又存在着联系 y d = s o f t m a x ( y ~ ) y^{d} = softmax(\widetilde{y}) yd=softmax(y )
  • 在计算第二部分损失的时候用到了 y ^ \hat{y} y^,以防止软标签与噪声标签偏差过多
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值