论文:《Human-Machine Cooperation: Self-supervised Sample Mining》
作者:王可泽
Motivation
在许多应用场景中,已标注的数据集不是很多,但是未标注或部分标注的数据集非常多。在监督学习任务中,足够多的标注数据对模型来说至关重要,因此使用未标注和部分标注的数据集的想法越来越重要。但是为未标注或部分标注的数据进行标注的成本很高,因为通常需要人力来标注,而且未标注的数据太多。同时,挑选出可以提高模型表现的好样本不是一件简单的工作。论文提出了一种Self-supervised Sample Mining(SSM)框架,可以使用未标注或部分标注的数据训练模型。
Innovation
SSM借鉴了自主学习、主动学习和自监督学习的思想。
主动学习(Self-paced Learning, SPL)起源于课程学习(Curriculum learning, CL),灵感来自于人的认知过程,先学习简单的知识(样本),然后总结归纳,再学习复杂的知识(样本),再总结归纳,如此重复学习。
自监督学习(Self-supervised Learning, SSL)是使用没有额外的人工标注学习特征的表征,一般就是适合有未标注或部分标注数据集的任务。
主动学习(Active Learning, AL)也是使用为标注或部分标注的数据的学习算法,但是AL主要是主动提出标注请求,关注的是样本选择策略,关键是选择能够提高模型表现的好样本。目前的样本选择策略大概可以分成两种,分别是不确定性准则(uncertainty)和差异性准则(diversity)。信息熵越大,就代表不确定性越大,包含的信息量也就越丰富。不确定性策略就是要想方设法地找出不确定性高的样本,因为这些样本所包含的丰富信息量,对我们训练模型来说就是有用的。差异性策略是希望所选择的样本提供的信息是全面的,各个样本提供的信息不重复不冗余,即样本之间具有一定的差异性,避免样本信息冗余。
之前的工作在单个样本上下文之间计算样本选择指标,这种方法对模型偏差和样本数据类型不平衡很敏感,鲁棒性不行。SSM则可以在多个样本上下文之间计算样本选择指标,提高了方法的鲁棒性。而且之前的方法不支持mini-batch训练,但是SSM支持。
Advantage
根据SSM设计了SSM框架可以使用未标注或部分标注的数据进行模型训练,而且可以最小化人力标注的成本。训练出来的模型的表现效果比当前先进的方法要好。
Disadvantage
这是个人观点。因为SSM涉及AL,模型的训练过程需要人参与,为proposal人工标注,因此训练过程会变慢。对于一些很庞大的训练数据集(比如ImageNet),光是训练就要好几周。因为任务只有少量的已标注的数据集,因此SSM肯定需要迁移学习,SSM训练的过程只是fine-tune,但是SSM在每次mini-batch之后都要选择低一致性样本,通过人工标注低一致性样本,因此人工标注的速度对模型的训练速度有很大的影响。
Method
论文提出的SSM框架的管道流图如下

这个框架有两个阶段,分别是通过SSM对高一致性样本进行伪标注阶段和通过AL选择低一致性样本阶段。首先使用已标注的图片对模型进行fine-tune,对未标注或部分标注的图片提取region proposals(未标注样本),把这些region proposals粘贴到已标注的图片中进行交叉图片验证,根据重新预测出来的置信度确定如何对未标注样本进行标注。对于高一致性样本,直接进行伪标注,对于低一致性样本,通过AL挑选出来,让相关人员进行标注。伪标注的样本用于模型的fine-tune,而新标注的样本添加到已标注的图片中,同时也用于模型的fine-tune。
Formulation
我们先了解SSM使用的公式,从公式中获取框架的具体细节。
在物体检测问题中,假设我们有n个region proposals(指的是ground truth bb)和m个类别。定义训练集为D={xi}i=1n∈Rd,其中xi表示第i个region proposal。我们有m个检测器/分类器(包括背景),使用one-vs-rest策略识别region proposal。定义xi的标签为yi={yi}j=−1m,是one-hot向量,其中yi(j)∈{+1,−1}表示xi是否属于第j类。
大多数样本的标签Y={yi}i=1n是不知道的。初始化的已标注的图片定义为I。数据{xi}i=1n在训练过程中会增加。
整个框架的损失函数为:
Loss=Lloc(W)+LclsAL(W)+LclsSSM(W,V)(1)
其中Lloc(W)定义bounding box的回归损失,和R-CNN的一样。LclsAL(W)和LclsSSM(W,V)是AL和SSM过程的损失。
论文定义
LclsAL(W)=∣ΩI∣1i∈ΩI∑j=1∑mℓi(xi,W)
其中ΩI为当前已标注图片I(I∈I)的region proposal。ℓi(xi,W)表示proposal xi在第j个分类器的softmax损失:
ℓi(xi,W)=−(21+yi(j)logϕj(xi;W)+21−yi(j)log(1−ϕj(xi;W)))
其中W是m个类别的CNN模型的参数。ϕj(xi;W))为xi输入第j类的似然值(概率值)。注意似然值前面的系数,因为yi(j)∈{+1,−1},所以与常见的形式不同,但效果还是是的似然值的系数为0或1。
接着讲LclsSSM(W,V)损失。为了选择xi更新yi,论文引入了一组权重变量,如V={v(j)}j=1m={[v1(j),⋯,vn(j)]T}j=1m,定义:
LclsSSM(W,V)=∣∣ΩI∣∣1i∈ΩI∑j=1∑m(vi(j)ℓj(xi,W)+R(xi,vi(j),W))s.t.j=1∑m∣∣∣yi(j)+1∣∣∣≤2,yi(j)∈{−1,+1}(2)
其中ΩI表示未标注或部分标注的图片I的region proposals。约束条件限制标签yi为one-hot向量或0向量。正则化函数R(⋅)在损失方面线性地对样本权重进行惩罚。论文使用硬加权正则化以适应复杂的场景。硬加权就是权重为0或1。论文定义的硬加权正则化公式为:
R(xi,vi(j),W)=−f(xi,W)vi(j)(3)
其中
vi(j)={1,ℓj(xi,W)≤f(xi,W)0,otherwise(4)
f(⋅)是交叉图片验证函数:
f(xi,W)=∣∣∣ΩIj∣∣∣λp∈ΩIj∑1(IoU(BI(xi),BI(xp))≥γ)ϕj(xp;W))(5)
为了理解交叉图片验证函数,首先了解交叉图片验证的过程,如下图

首先从未标注的图片中选择一个region proposal xi,被预测为属于第j类。把xi随机粘贴到一个没有j类别物体的已标注的图片中,然后进行一致性评估。红色的bounding box BI(xp)和BI(xq)表示最新的分类器在新生成的图片中提出的region proposal xp和xq。
如果预测为j类的xi是一个好样本,那么xi的内容可以很好地展示j类的特征。把xi粘贴到没有j类物体的图片中,那么从新生成的图片提取的region proposals中有包含xi的proposal。选择没有j类物体的图片是为了避免歧义,使得验证结果更有说服力。包含xi内容的新的region proposal xp和xq的预测结果应该在第j类有很大的概率值。如果xp和xq的预测结果应该在第j类有很大的概率值,那么说明xi在不同的图片中有高的(预测)一致性。SSM选择一个高一致性的样本,SSM过程就没太多的损失。
现在说明公式(5)的符号,ΩIj表示没有j类别物体的已标注图片上的region proposals,λ表示步长参数(和自主学习有关),BI(xi)表示选中的未标注的region proposal xi,IoU(BI(xi),BI(xp))表示BI(xi)和BI(xp)的交并比,γ是交并比的阈值,在论文中设为0.5,1(⋅)是指示函数。
如果xi是一个好样本,具有高一致性,那么交叉图片验证f(⋅)的值比较大,会有ℓj(xi,W)≤f(xi,W),从而样本权重vi(j)=1。至于为什么硬加权正则化函数(公式(3))有个负号,我也不懂,而且后面没有使用到硬加权正则化函数。
Alternative Optimization Strategy
开始讲模型的优化过程。论文中通过SSM过程更新样本权重V,通过伪标注和AL过程更新标签Y,通过BP过程更新模型参数W。
更新V:固定{Y,X,W},然后通过公式(5)计算f(xi,W),接着根据公式(4)确定V。
更新Y:更新V之后,计算用于选择样本的一致性分数si:
si=∣I∣1I∈I∑∣∣∣ΩIj∗∣∣∣1p∈ΩIj∗∑ϕj∗(xp;W)(6)
其中j∗表示有最高置信度的预测类别:
j∗=argj∈[m]maxϕj(xp,W)
我觉得论文中公式写错了,应该是
j∗=argj∈[m]maxϕj(xi,W)
应该是选择xi置信度最高的预测类别j,然后把xi粘贴到没有j类别物体的已标注的图片中。论文中最多选择N张已标注的图片,为了平衡精度和效率,减少计算量。论文实验设置N=5。
计算所有挑选出来的xi的si,得到S={si}i=1m,然后对S进行降序排序,每种类别挑选出前k个一致性分数不为0的样本。令H表示伪标注的高一致性样本。因为要对挑选出来的样本进行算法标注,所以称伪标注。m中类别中重要的样本定义为H=[H1,⋯,Hj,⋯,Hm],其中[∣Hj∣≤k],k是一个经验参数,用了控制每种类别挑选的样本的数量。
固定{W,V,{xi}i=1∣H∣},可以优化公式(2)的yi:
yi∈{−1,+1}m,i∈Hminj=1∑mvi(j)ℓj(xi,W)s.t.j=1∑m∣∣∣yi(j)+1∣∣∣≤2(7)
样本的权重向量vi̸=0。约束条件要求yi必须是one-hot向量或者0向量。因此要求出一个样本的最优标签yi,只需要尝试m+1次。
这样挑选样本可以有效地抑制逐渐增加的伪标签错误的积累,因为(1)在不同图片内容中交叉图片验证提供更精确和更鲁棒性的评估,(2)所有的伪标签都是一次性的,每次mini-batch迭代之后就会被丢弃。
Low-consistency Sample Annotating:对高一致性样本进行伪标注之后,使用AL过程基于人的知识提供更多的信息指导来更新已标注的图片集I。AL过程目的是选择有更多信息的未标注的样本,然后让用户标注它。论文中的选择指标基于不确定性准则。收集si特别小,预测结果有多个正标签(分类有歧义)的样本,称这些样本为低一致性样本。随机从低一致性样本中挑选z个,放到低一致性样本集U,然后通过人工标注。
更新W:固定{D,V,Y},公式(2)可近似为:
wmin∣H∪{ΩI}I∈I∣1i∈H∪{ΩI}I∈I∑j=1∑mℓj(xi,W)+L(W)(8)
这里使用AL和SSM的分类损失和bounding box的回归损失,没有考虑正则化函数R(⋅)。
整个优化过程由下面的伪代码表示:

收敛分析:这个框架能够保证收敛,有3个原因。(1)公式(2)关于V是凸函数。(2)使用公式(8)对模型进行fine-tune可以收敛到局部最优。(3)AL过程会在没有找到低一致性样本时停止。
Experiment
首先是SSM和其他方法的比较,这里只简单的说下结果。
下图是在VOC 2007 test set的结果

横轴表示模型使用多少人工标注进行训练,可以看到论文的方法(FRCN+Ours)比其他方法的表现都要好,大概需要30%的人工标注就能达到全监督学习的效果,而其他方法大概需要60%的人工标注才能达到全监督学习效果。因为数据存在冗余,不需要所有的样本同样能学到很好的效果。
下表是更加具体的实验结果

下图是通过交叉图片验证过程选择高一致性样本和低一致性样本。

第一列表示未标注的图片,黄色标注的是region proposals和对应的伪标注。其他的是在新图片的预测结果。
a是高一致性样本,可以看到无论是在原图还是新图,样本的proposal的预测类别一样,预测值都很高。b是低一致性样本,上两行低一致性的原因是新图预测了错误的bounding box,下两行是因为伪标注错误。