论文汇总:Rectifying the Shortcut Learning of Background for Few-Shot Learning

本文探讨了少数镜头学习中图像背景带来的问题,并提出了一种方法,通过在训练和评估中移除背景以防止捷径学习。创新点包括去除背景的训练策略、基于聚类的目标搜索器(COS)和共享对象集中器(SOC)来捕获和评估图像前景。文章还介绍了对比学习在区分前景目标中的应用。
摘要由CSDN通过智能技术生成

 原文解读:

论文解读:Rectifying the Shortcut Learning of Background for Few-Shot Learning-CSDN博客

文章汇总

问题&动机&解决方法

图像背景是一种有害知识的来源,这是少数镜头学习模型容易吸收的(问题)

通过在训练和评估中提取图像中的前景目标而不需要任何额外的监督来解决这个问题(动机)

在训练和评估时将模型的注意力吸引到图像前景上(方法)

创新点

创新点1:

在训练中去除背景可以防止捷径学习

背景训练有助于模型处理复杂的场景

简单的融合取样结合了两者的优点,给定一张图像作为输入,选择其前景版本的概率为p,选择其原始版本的概率为1 - p

创新点2

预训练任务-基于聚类的目标搜索器(COS)

1:对每张图片随机裁剪,得到L个子图,每个子图经过预训练主干变为特征高度密集的向量\textbf{V}_{n,m}

对该类中所有patch进行分类,总共得到H个类别

2:一张图片中某个patch(子图)属于H个类别中的某个类别,我们就说这张图片也属于这个类别(明显,一张图片很有可能会属于多个类别,因为不同的子图有可能会属于不同的类别)

3:那么如何判断H个类别中某一个类别是否是前景呢,我们要求属于这个类别的图片的数量到达指定的阈值。如果没有到达该类别则为背景,其他到达阈值的类别(总共h个)正是我们想找的"前景"

4:p_{n,m}为对应某个patch(子图),||\textbf{v}_{n,m}-\textbf{z}_{\alpha_j}||_2,j \in[h]的意思为该patch密集特征和其中一个前景类别(总共h个)的模长,min_{j \in[h]||\textbf{v}_{n,m}-\textbf{z}_{\alpha_j}||_2}则h个前景类别中最小的一个模长(应该是最相似的一个类别)。1-最小模长为该子图得分,即1-min_{j \in[h]||\textbf{v}_{n,m}-\textbf{z}_{\alpha_j}||_2}/\eta就是该patch与最相似的前景类别的得分。因此得到每个patch与h个前景类别的得分。

top-k(聚类中的概念)为置信度

由于选择的是融合特征,图片保留为原始版本的概率为1-\mathop{max}\limits_{i\in[k]}{s_{n,\beta_i}},其中\mathop{max}\limits_{i\in[k]}{s_{n,\beta_i}}为该图片所有子图跟哪个类别最相似的概率。如果不保留为原始版本,那么选择的前景为该图片top-k中的某个patch,概率为({s_{n,\beta_i}}/\sum_{i\in[k]}{s_{n,\beta_j}})\cdot\mathop{max}\limits_{i\in[k]}{s_{n,\beta_i}}

支持和查询集间寻找共享内容-基于共享对象集中器(SOC)的少镜头评估

对于查询集,依然是每个图片得到V个子图特征u_i,i=1,...,V(来自查询集),通过步骤1,找到V个高度代表了一个类别的特征,从小到大排序为\{\omega_n\}_{n=1}^V(来自支持集),w_nu_i相互比较,最接近为s_1(为公式4),如此得到得分最高的类别即为预测类别。

文章中方法的讲述部分

4.1基于聚类的目标搜索器(COS)融合采样训练

由于对比学习在区分前景目标方面比较好,我们利用对比学习在训练前提取前景目标。第一步是使用Exemplar[68]在训练集D_B上预训练主干f_\theta(\cdot)。然后使用基于聚类的算法提取由预训练模型识别的“对象”。其基本思想是,通过对比学习模型提取的一类图像中前景目标的特征是相似的,因此可以通过聚类算法进行识别;请看图3中的一个简单的例子。D_B中第i类中的所有图像形成一个集合
\{x^i_n\}^N_{n=1}

为了清楚起见,我们在下面的描述中省略了类索引\{\textbf{p}_{n,m}\}^L_{m=1}。在某一类中寻找前景目标的具体方案如下:

1)对每张图像\textbf{p}_{n,m},随机裁剪L次,得到L个图像patchf_\theta。然后将每个图像patch
\textbf{p}_{n,m}经过预训练模型f_\theta,得到归一化特征向量\textbf{V}_{n,m}=\frac{f_\theta(\textbf{p}_{n,m})}{||f_\theta(\textbf{p}_{n,m})||_2}\in R^d

2)对该类的所有特征向量运行聚类算法A,得到H个聚类\{\textbf z_j\}^H_{j=1} = A(\{\textbf{v}_{n,m}\}^{N,L}_{n,m=1}),其中
\textbf{z}_j为第j个聚类的特征质心。

3)我们说一个像\textbf x_n\in \textbf z_j,即为存在k \in[L] s.t. \textbf{v}_{n,k}\in{\textbf{z}_j},其中[L]=\{1,2,...,L\}。设
l(\textbf z_j) = \frac{\{\# \textbf x|\textbf x\in \textbf z_j\}}{N}为该类中属于\textbf z_j的图像的比例。如果l(\textbf z_j)很小,则聚类\textbf z_j不能代表整个类,可能是背景。因此我们去掉所有l(\textbf z)<\gamma的聚类\textbf z,其中\gamma是控制聚类一般性的阈值。剩下的h个聚类
\{\textbf z_j\}^{\alpha h}_{j=\alpha_1}表示我们正在寻找的类的“对象”。

4)将图像patchp_{n,m}的前景分数定义为s_{n,m}=1-min_{j \in[h]||\textbf{v}_{n,m}-\textbf{z}_{\alpha_j}||_2}/\eta,其中
\eta=\mathop{max}\limits_{n,m} \mathop{min}\limits_{j\in[h_c]}||\textbf{v}_{n,m}-\textbf{z}_{\alpha_j}||_2用于将分数归一化为[0,1]。然后得到每张图像
\textbf x_n的top-k分数为\{s_{n,m}\}^{\beta_k}_{m=\beta_1}=\mathop{Topk(s_{n,m})}\limits_{m\in [L]}。将对应的\{\textbf{p}_{n,m}\}^{\beta_k}_{m=\beta_1}视为图像\textbf x_n中前景目标的可能作物,前景评分\{​{s}_{n,m}\}^{\beta_k}_{m=\beta_1}作为置信度。然后,我们将其作为先验知识来纠正FSL模型背景的快速学习。

训练策略类似于前面介绍的融合采样。对于图像\textbf x_n,我们选择原始版本的概率为
1-\mathop{max}\limits_{i\in[k]}{s_{n,\beta_i}},从top-k个patch中选择\textbf{p}_{n,\beta_j}的概率为({s_{n,\beta_i}}/\sum_{i\in[k]}{s_{n,\beta_j}})\cdot\mathop{max}\limits_{i\in[k]}{s_{n,\beta_i}}。然后对所选图像进行调整,使最小面积占原始图像的比例保持不变。我们使用该策略使用FSL算法来训练骨干f_\theta(\cdot)

4.2基于共享对象集中器(SOC)的少镜头评估

如前所述,如果在评估时使用图像的前景裁剪,FSL模型的性能将得到很大的提升,作为模型性能的上界。

为了接近这个上限,我们提出了SOC算法,通过在同类支持图像和查询图像之间寻找共享内容来捕获前景目标。

步骤1:在每个类中搜索共享内容。

对于支持集S_{\tau}中c类中的每张图像\textbf x_n,我们随机裁剪V次,得到相应的候选图像
\{\textbf{p}_{k,n}\}_{n=1,...,V}。每个\textbf{p}_{k,n}分别发送到学习主干f_\theta,得到归一化特征向量
\textbf{v}_{k,n}。因此,我们在c类中总共有K × V个特征向量。

我们的目标是得到一个特征向量\omega_1包含c类中所有图像的最大共享信息。理想情况下,\omega_1表示最相似的K个图像块的质心,每个图像块来自一个图像,可表示为

式中cos(·,·)表示余弦相似度,[K]^{[V]}表示以[K]为定义域,以[V]为值域的函数集。而\lambda_{opt}可以通过枚举图像patch的所有可能组合得到,该蛮力方法的计算复杂度为O(V^K),即当V或K很大时,计算是禁止的。因此,当计算负担不起时,我们转而使用一种利用迭代优化的简化方法。而不是寻找最近的图像补丁,我们直接优化ω1,使每个图像到补丁的最小距离之和最小,即:

这可以通过迭代优化算法来实现。我们在实验中应用了SGD。优化后,我们去除每张图像中与ω1最相似的patch,得到K × (V−1)个特征向量。然后我们重复执行上述优化过程,直到没有特征留下,如图4所示。我们最终得到V个经过排序的特征向量\{\omega_n\}_{n=1}^V

,用来表示类c。对于shot K =1的情况,类内部没有共享的图像间信息,因此与PN和DeepEMD[63]中的处理类似,我们直接跳过第1步,使用原来的V个特征向量。

步骤2:查询图像聚焦前景目标的特征匹配。

一旦确定了前景类表示,下一步就是使用它们通过特征匹配来隐式地关注查询图像的前景。对于查询集Q_{\tau}中的每张图像x,我们也随机裁剪V次,得到V个候选特征\{u_n\}_{n=1}^V。对于每个c类,我们有V个经过排序的代表性特征向量\{\omega_n\}_{n=1}^V,这些特征向量是在步骤1中得到的。然后我们匹配查询特征和类特征之间最相似的patch,即

其中\alpha <=1是一个重要因子。

因此,权重\alpha^{j-1}在指标n−1中呈指数降低,表明每个表示前景的向量的可信度降低。类似地,删除两个匹配的特征,重复上述过程,直到不留下任何特征。最后是x w.r.t.的分数。

c类是所有相似度的加权和,即S_c=\sum^V_{n=1}{\beta^{n-1}s_n},其中\beta<=1是控制每个作物是前景目标的另一个重要因素。通过这种方式,更早匹配的特征——因此更有可能成为前景——将对得分有更高的贡献。x的预测类别是得分最高的类别。

附录B对比学习

对比学习倾向于将同一图像的转换视图之间的一致性最大化,而将不同图像的转换视图之间的一致性最小化。令f_\phi(\cdot)是一个输出特征空间R^d的卷积神经网络。一个图像x的两个增广图像补丁通过
f_\phi(\cdot)进行映射,生成一个查询特征q和一个关键特征k。此外,使用其他图像的补丁生成一个包含数千个负特征\{v_n\}^Q_{n=1}的队列。

该队列既可以使用当前批处理中的所有图像在线生成[1],也可以使用最近几个epoch的存储特征离线生成[4]。给定q,对比学习的目标是识别数千个特征\{v_n\}_{n=1}^Q中的k,可以表示为:L(\textbf q,\textbf k,\{v_n\})=-log\frac{e^{sim(\textbf q,\textbf k)/\tau}}{e^{sim(\textbf q,\textbf k)/\tau}+\sum^Q_{j=1}e^{sim(\textbf q,v_j)/\tau}}

式中\tau为温度参数,sim(\cdot,\cdot)相似性度量。在Exemplar[5]中,为了“在弱利用标签信息的同时保留每个正实例的唯一信息”,将\{v_n\}_{n=1}^Q中与属于同一类\textbf q的所有样本都剔除。

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十有久诚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值