版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24548569/article/details/83687881
CVPR2018论文:《Human-Machine Cooperation: Self-supervised Sample Mining》
作者:加州大学洛杉矶分校(UCLA)博士后王可泽
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)。信息熵越大,就代表不确定性越大,包含的信息量也就越丰富。不确定性策略就是要想方设法地找出不确定性高的样本,因为这些样本所包含的丰富信息量,对我们训练模型来说就是有用的。差异性策略是希望所选择的样本提供的信息是全面的,各个样本提供的信息不重复不冗余,即样本之间具有一定的差异性,避免样本信息冗余。
Advantage
之前的工作在单个样本上下文之间计算样本选择指标,这种方法对模型偏差和样本数据类型不平衡问题很敏感,鲁棒性不行。SSM则可以在多个样本上下文之间计算样本选择指标,提高了方法的鲁棒性。而且之前的方法不支持mini-batch训练,但是SSM支持。
根据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)+Lloc(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,下两行是因为伪标注错误。