论文笔记:Few-Shot Segmentation Without Meta-Learning : A Good Transductive Inference Is All You Need

好久好久没有记录笔记了~感觉还是分享出来的印象更深刻一些 ~让自己多思考一点点

摘要:
inference的方式对fsl的分割任务性能有着巨大的影响,而这一点往往被其他论文忽视,转而偏向元学习的范式。
文章提出了transductive 的inference方式,即:对每个query image,统计其unlabeled 像素的信息,通过优化包含三个互补项的新损失

1. intro

目前常见的FSL论文都是基于元学习的范式,这有两个问题:

  1. episodic 的训练方式,本身隐含的假设了test task的结构与meta-training阶段的train task结构相似
  2. base类和novel类往往都是从同一个数据集中采样得到

而在实际场景中,这两个假设可能会限制few shot分割方法的适用性。而且,在最近的一些分类工作上,现有的元学习方法在cross-domain场景中的表现并没有什么竞争力。这让作者怀疑已经成了fsl普遍选择的meta-learning系列的效果。

贡献

  • 放弃元学习,重新考虑最简单的方法:在基类提特征时使用简单交叉熵监督(那元学习是什么监督?)
  • 提出transductive 的推理方式,它可以比现有方法更好的利用support集的信息。
  1. 提出了新的transductive inference方法,RePRI(Region Proportion Regularized Inference)。
    RePRI优化由以下三项组成的loss:
    1. support set中有标签像素的标准交叉熵loss
    2. test image中query image的后验熵
    3. 基于test image上预测的前景像素点比例的 全局KL散度
    RePRI可以在任何训练好的backbone最顶层使用,并使用和标准的归纳式(inductive)方法所使用的完全相同的信息。
  2. 虽然文章在训练基类时仅仅使用了交叉熵,而不是复杂的元学习策略,但RePRI仍然得到了超出sota 5%的成绩。
  3. 还引入了最近很火的关于图像特征分布的调整trick,加上这个才达到了最佳
  4. 证明在query 上精确的区域分布信息可以很大改善结果。两个数据集的平均收益为13%。尽管假设这类信息可获得可能是不切实际的,但作者发现即使是不精确的估计也可带来巨大改善。

3. 方法

3.2 base training

episodic training中的inductive bias :关于基类的使用,目前占主导地位的都是基于元学习的方法。它将基类训练集划分为一个个train episode。《A theoreti-cal analysis of the number of shots in few-shot learning》正式证明:原型网络中,train episode中的 K (shots) 表示一个learning bias?,而且当Ktrain != Ktest 时,测试的性能会迅速饱和(待看)。

standard training : 在实践中,test task 的格式很有可能是未知的。因此需要尽可能减少assumption(花样怼meta-learning)。因此作者在整个base集上用普通交叉熵训,而不求助于episodic training。

3.3 inference

目标: Φ是一个将前/背景分类的2分类器,θ是Φ的参数,整体loss如下:
在这里插入图片描述
其中两个λ是平衡两个loss的非负超参,其中的三个loss又分别定义如下:
论文笔记:Few-Shot Segmentation Without Meta-Learning : A Good Transductive Inference Is All You Need_第1张图片
就是下采样后的标签yk 与soft pred 之间的交叉熵。如果仅有这一项无疑会过拟合,尤其在这种简单的2分类上

在这里插入图片描述
H表示 query image 上 pred 的熵,即query image 上每个像素分类的score的熵,这一项是为了让模型在预测时更加自信(毕竟上一项是soft预测)。直观上的感觉,它将线性分类器的决策边界推向了query上提取的特征空间的低密度区(说人话就是让score向0和1靠拢)。但是尽管这一项的作用很重要,可如果仅直接将它加在CE loss上并没什么卵用。

在这里插入图片描述
最后一个loss是KL散度。其中π代表模型预测的背景点比前景点的比例。该参数的设置将在后面讨论。所以当预测出的b/f比例与π不同时,该项可以防止模型陷入前两个loss中的过拟合。

分类器选择
分类器的参数θ由权重w和偏置b构成。然后某一点是前景点的概率为: s = s i g m o i d ( τ [ cos ⁡ ( z ,    w )    −    b ] ) s=sigmoid\left(\tau\left[\cos\left(z,\;w\right)\;-\;b\right]\right) s=sigmoid(τ[cos(z,w)b])
其中:z是从support 和 query上提出的特征;τ是温度超参(论文中设为20)
w第一次迭代的初始化设置为support中所有图片中feature map上前景点像素的占比。
b第一次迭代的初始化设置为query上的soft pred。
随后以梯度下降进行优化

B/F比例因子π的联合估计
无额外信息,利用模型在query image上标签边缘分布,从而在训练分类器时共同学习π。因此,模型的inference可以看作是θ和π的共同训练。同时KL散度项 作为自正则化,防止模型的边缘分布产生偏差。 每次更新pi时:
π = p Q ∧ \mathrm\pi=\overset\wedge{p_Q} π=pQ
其中pQ 是Query上提出的feature map,pQ hat 则是整个map上的平均值。
(也就是说每次用query上的前景点比例来更新pi,这样就利用了无标签的query数据信息,体现了transductive思想)
不过作者经验发现,pi更新的也不需要很频繁,一般初始化为第一次迭代的得到的pQ hat,然后在中间再找一次迭代出来的pQ hat更新一次pi。只更新一次即可

Oracle results:
当然了,这个pi估计的不可能很准,作为方法的上限,如果用统计出来的前景点比例来设置这个pi(并不让它更新),可以超sota 10个点以上。所以说加个正则化项的未来空间还有很大~

  • 首先,oracle result提升10+个点的成绩证明存在着一个简单的线性分类器,它可以远远超过现有的sota 元学习方法。而该分类器仅仅建立在简单的交叉熵loss放在backbone顶层之上。
  • 其次还表明,如果可以拥有目标的某些精确信息(如前背景之比),那这一项就可以用来当作一个强大的正则化项(strong regularizer)

所以或许可以更关注w和b的优化
而且实验结果发现pi在一个挺大的范围内都可以超过sota,具有一定鲁棒性

4.2 Domain shift

​ 引入了一个更为现实的、cross-domain的设置:coco --> voc。这一setting是对更加使用迈出的重要一步,因为cross-domain评估了训练和测试之间域差异所带来的影响。而数据集中非常微小的改变往往也会造成域迁移。

比如coco中平均每张图片有3.5个类别的7.7的目标,而voc是2个类别的3个目标。

但从实验结果看,domain shift的效果并没有多突出~
另外shot mismatch情景下的效果似乎不错

你可能感兴趣的:(论文笔记,小样本学习,算法,人工智能)