首页>>人工智能->处理标注错误的样本(learning with noisy labels)

处理标注错误的样本(learning with noisy labels)

时间:2023-11-29 本站 点击:0

1. Co-teaching

上图是三种训练范式的error流转方向。Co-teaching会同时训练两个网络,在每个mini-batch上,在每个网络选择$R(T)$百分比的loss比较小的部分sample看作有用知识(useful knowledge),然后把有用知识送到另一个网络中继续训练。而其他两种是自我演化的方式。

具体算法如下:

假设这两个网络是$f$(参数为$w_f$)和$g$(参数为$wg$) 构造mini-batch, 迭代训练$N{max}$次。 从mini-batch中选取loss最小的$R(T)$百分比的sample,记为$\bar{D}_f$和$\bar{D}_w$,步骤4,5。 然后交换用$\bar{D}_f$来训练和更新$g$,用$\bar{D}_w$来训练和更新$f$,步骤6,7。 $R(T)$是随着训练step递减的,就是说他是动态的,每次选择的有用知识会越来越少。

上面算法中,有两个重要的问题需要解释:

为什么根据一个动态的$R(T)$来采样低loss的样本可以帮助我们找到干净的样本?

为什么需要两个网络并交叉更新参数?

对第一个问题的解释: 首先,当标签是正确的,loss小的样本是更可能是有正确标签的。所以如果我们只采样低loss的样本来训练分类器,那么这样应该可以抵抗噪声标签的。但是,这就要求分类器足够可靠才能保证损失小的样本确实是干净的。 通常深度网络具有“记忆“性,也就是,即使在有noisy的数据集上,网络会在起初的epochs时学习干净简单的模式,所以模型有能力在训练起初阶段过滤噪音数据。但是,随着训练增加,模型会渐渐拟合这些噪音数据。所以,为了利用这个规律,上面的算法在初始mini-batch中选择更多的有效数据,随着训练的进行,逐渐减少。 对于第二个问题: 试想一下,当学生检查自己的试卷时,很难找到错误,因为他们对自己的答案是有个人偏见的,但是,当求助同伴来帮忙检查自己的试卷,这样就更容易找到错误。 通常,不同的分类器可以学习到不同的决策边界,有不同的学习能力。因此,当我们在噪音数据上训练模型时,我们也期望他们有不同的能力来过滤噪音。这启发我们交换损失小的样本,即用从$g$(或$f$)中选择的小批量样本更新$f$(或$g$)中的参数。此过程类似于co-training,如果所选样本有噪声,则这两个网络将自适应地校正另一个网络的训练错误。 总而言之,来自一个网络的错误不会直接转回本身,相比较自我演化的方式,我们期望Co-teaching方法可以处理更大噪声的数据。

【参考:】 paper


2. 置信学习

置信学习三个步骤:

Count,估计噪声标签与真实标签的联合分布

Clean,清理错误样本。

Re-Training,清理之后,调整样本类别权重,使用Co-teaching重新训练。

上图是置信学习的框架,下面详细介绍这3个步骤:

1.Count

定义噪声标签为$\hat{y}$,即经过初始标注(也许是人工标注)、但可能存在错误的样本。定义真实标签为$y^*$,但事实上我们并不会获得真实标签,通常可通过交叉验证1对真实标签进行估计。样本总数为$n$,类别总数为$m$。

估计联合分布步骤如下:

我们的目的是估计联合概率分布$\hat{Q}_{\hat{y},y^*}$来描绘类别噪音。通过在混淆矩阵中计算数量,然后校正,每一个标注标签数量,

step1,交叉验证

首先通过交叉验证,在数据集中计算第$i$个样本在第$j$个类别下的概率:$P[i][j]$

计算每个人工标注类别$j$下的平均概率$t[j]$,作为置信度阈值。

最后确定样本$i$的真实标签。,其真实标签$y^*$为$j$个类别中的最大概率$argmax_jP[i][j]$,并且需要满足$P[i][j]$ > $t[j]$。

step2,计算计数矩阵$C{\hat{y},y^*}$(类似于混淆矩阵)。如图1中,$C{\hat{y}=dog,y^=fox*}=40$,表示x人工标记为dog但实际为fox的样本为40个。算法如下:

step3, 计算矫正的计数矩阵,因为在上一步的计算中,有一个条件是需要大于t[j],所以计数矩阵$C{\hat{y},y^*}$和是小于样本总数的。所以这一步的目的就是为了让计数总和与人工标记的样本总数相同。其中,$X{\hat{y}=i}$表示人工标注标签$\hat{y} = i$的样本总数。

step 4: 计算联合分布$Q_{\hat{y},y^*}$,就是用上面的结果除以样本总数:

2.Clean

在得到噪声标签和真实标签的联合分布$Q_{\hat{y},y^*}$ ,论文共提出了5种方法过滤错误样本:

M1:$C{confusion}$,选取$\hat{y} != argmax{i\in{1,2,...m}}{P[i][j]}$的样本过滤,即对于样本$i$,如果人工标注标签与模型预测最大值标签不相同则过滤。

M2: 选取构造计数矩阵$C_{\hat{y},y^*}$过程中,进入费对角单元的样本进行过滤。

M3: Prune by Class (PBC) ,对于每一个类别$i\in{1...m}$选择$n.\sum{j\in{1..m:j!=i}}{C{\hat{y}=i,y^*=j}[i]}$个样本,其中n是样本总数,按照$P[i][j]$排序,过滤到得分最低的。

M4:Prune by Noise Rate (PBNR) ,对于非对角单元,选取$n.Q_{\hat{y}=i,y^*=j}$个样本进行过滤,按照$P[\hat{y}=i]$-$P[\hat{y}=j]$排序,过滤到得分最低的。

3.Re-Training

在过滤掉错误样本后,根据联合分布$Q{\hat{y},y^}$ 将每个类别$i$下的损失权重重新赋值为: $$\frac{1}{p(\hat{y} =i|y^=i)} = \frac{Q{y^}[i]}{Q_{\hat{y},y^}[i][i]}$$

其中:$Q{y^*}[i]=\sum{j=i..m}{Q_{\hat{y},y^*}[j][i]}$ 然后采取Co-Teaching框架进行重新训练。

【参考:】 cleanlab 参考1

3. Searching to Exploit Memorization Effect in Learning with Noisy Labels

(待续...)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/AI/992.html