1. Co-teaching
上图是三种训练范式的error流转方向。Co-teaching会同时训练两个网络,在每个mini-batch上,在每个网络选择 百分比的loss比较小的部分sample看作有用知识(useful knowledge),然后把有用知识送到另一个网络中继续训练。而其他两种是自我演化的方式。
具体算法如下:
假设这两个网络是 (参数为 )和 (参数为 ) 构造mini-batch, 迭代训练 次。 从mini-batch中选取loss最小的 百分比的sample,记为 和 ,步骤4,5。 然后交换用 来训练和更新 ,用 来训练和更新 ,步骤6,7。 是随着训练step递减的,就是说他是动态的,每次选择的有用知识会越来越少。
上面算法中,有两个重要的问题需要解释:
- 为什么根据一个动态的 来采样低loss的样本可以帮助我们找到干净的样本?
- 为什么需要两个网络并交叉更新参数?
对第一个问题的解释: 首先,当标签是正确的,loss小的样本是更可能是有正确标签的。所以如果我们只采样低loss的样本来训练分类器,那么这样应该可以抵抗噪声标签的。但是,这就要求分类器足够可靠才能保证损失小的样本确实是干净的。 通常深度网络具有“记忆“性,也就是,即使在有noisy的数据集上,网络会在起初的epochs时学习干净简单的模式,所以模型有能力在训练起初阶段过滤噪音数据。但是,随着训练增加,模型会渐渐拟合这些噪音数据。所以,为了利用这个规律,上面的算法在初始mini-batch中选择更多的有效数据,随着训练的进行,逐渐减少。 对于第二个问题: 试想一下,当学生检查自己的试卷时,很难找到错误,因为他们对自己的答案是有个人偏见的,但是,当求助同伴来帮忙检查自己的试卷,这样就更容易找到错误。 通常,不同的分类器可以学习到不同的决策边界,有不同的学习能力。因此,当我们在噪音数据上训练模型时,我们也期望他们有不同的能力来过滤噪音。这启发我们交换损失小的样本,即用从 (或 )中选择的小批量样本更新 (或 )中的参数。此过程类似于co-training,如果所选样本有噪声,则这两个网络将自适应地校正另一个网络的训练错误。 总而言之,来自一个网络的错误不会直接转回本身,相比较自我演化的方式,我们期望Co-teaching方法可以处理更大噪声的数据。
【参考:】 paper
2. 置信学习
置信学习三个步骤:
- Count,估计噪声标签与真实标签的联合分布
- Clean,清理错误样本。
- Re-Training,清理之后,调整样本类别权重,使用Co-teaching重新训练。
上图是置信学习的框架,下面详细介绍这3个步骤:
1.Count
定义噪声标签为 ,即经过初始标注(也许是人工标注)、但可能存在错误的样本。定义真实标签为 ,但事实上我们并不会获得真实标签,通常可通过交叉验证1对真实标签进行估计。样本总数为 ,类别总数为 。
估计联合分布步骤如下:
我们的目的是估计联合概率分布 来描绘类别噪音。通过在混淆矩阵中计算数量,然后校正,每一个标注标签数量,
- step1,交叉验证
- 首先通过交叉验证,在数据集中计算第 个样本在第 个类别下的概率:
- 计算每个人工标注类别 下的平均概率 ,作为置信度阈值。
- 最后确定样本 的真实标签。,其真实标签 为 个类别中的最大概率 ,并且需要满足 > 。
- step2,计算计数矩阵 (类似于混淆矩阵)。如图1中, ,表示x人工标记为dog但实际为fox的样本为40个。算法如下:
- step3, 计算矫正的计数矩阵,因为在上一步的计算中,有一个条件是需要大于t[j],所以计数矩阵 和是小于样本总数的。所以这一步的目的就是为了让计数总和与人工标记的样本总数相同。其中, 表示人工标注标签 的样本总数。
- step 4: 计算联合分布 ,就是用上面的结果除以样本总数:
2.Clean
在得到噪声标签和真实标签的联合分布 ,论文共提出了5种方法过滤错误样本:
- M1: ,选取 的样本过滤,即对于样本 ,如果人工标注标签与模型预测最大值标签不相同则过滤。
- M2: 选取构造计数矩阵 过程中,进入费对角单元的样本进行过滤。
- M3: Prune by Class (PBC) ,对于每一个类别 选择 个样本,其中n是样本总数,按照 排序,过滤到得分最低的。
- M4:Prune by Noise Rate (PBNR) ,对于非对角单元,选取 个样本进行过滤,按照 - 排序,过滤到得分最低的。
3.Re-Training
在过滤掉错误样本后,根据联合分布 将每个类别 下的损失权重重新赋值为:
其中: 然后采取Co-Teaching框架进行重新训练。
3. Searching to Exploit Memorization Effect in Learning with Noisy Labels
(待续...)