【阅读笔记】Partner-Assisted Learning for Few-Shot Image Classification

Abstract

小样本学习已经被研究来模仿人类的视觉能力和学习有效的模型,而不需要详尽的人类注释。尽管适应元学习的思想主导了小样本学习方法,但如何训练特征提取器仍然是一个挑战。在本文中,我们关注于训练策略的设计,以获得一个元素表示,使每个新类的原型可以从几个标记的样本估计。我们提出了一个两阶段的训练方案,伙伴辅助学习(PAL),首先训练伙伴编码器建模成对的相似性和提取特征作为软锚,然后训练主编码器,将其输出与软锚对齐,同时试图最大化分类性能。分别设计了logit级和特征级对齐约束。对于每个少量的任务,我们执行原型分类。我们的方法在四个基准上始终优于最先进的方法。提供了详细的PAL消融研究,以证明训练中每个组件的选择。


Introduction

为了促进小样本学习的快速模型适应,元学习被用来模拟训练过程中的小样本任务,通过设计一个最优的适应算法或学习一个共享的特征空间用于基于原型的分类

如图1(a)所示,原型分类方法通过对少数标记样本的特征进行平均,估计出小样本原型。一个新的样本(即查询)通过使用最近邻域搜索将其与所有原型的余弦相似度进行比较来分类。

如图1(b)所示,在分类环境中,特征分布应该是:

(1)每个簇内的紧凑性(即支持高类内相似性)

(2)簇间的区别性(即支持大类间距离)。

最近的研究表明,在大规模(基本)数据集上进行完全监督的模型预训练,可以通过执行原型分类来作为新的小样本任务的强基线。对于每个基类,使用类标签的传统全监督预训练学习一个唯一的权向量,作为一个硬锚。通过最小化与类标签的交叉熵损失,每个图像特征被推到其相应的类锚。因此,对于每个类,我们希望用特征的平均值来表示小样本分类中的类。 

基类上预先训练的特征提取器可以抑制与基域无关的细节,而这些细节可以对新的类具有鉴别性。因此,结合实例比较来保留细节可以促进在新领域的小样本学习。知识蒸馏制定了一个师生设置,并对相同图像的两个模型的输出进行了比较。对于每个图像,教师模型生成软标签,以模拟不同类之间的接近程度。通过比较教师模型和学生模型的输出,利用软标签对学生模型进行训练,以保留更多的类关系细节。因此,学生模型在小样本任务上获得了更高的准确性。虽然知识提炼取得了成功,但由于教师模型曾经根据基类的硬锚进行过严格优化,因此绩效的提升还是有限的

为了提高特征提取器的泛化能力,受原型学习和监督对比学习中动态和个体代表的启发,我们提出了一种可用于动态表示类的特征提取方法并将这些特征设置为软锚,对硬锚训练的特征提取器进行正则化。与知识蒸馏方法相比,我们的方法不是迭代已经优化的硬锚特征提取器,而是利用基域上的各种特征从头正则化一个新的特征提取器,该特征提取器是在交叉熵损失下用类标签训练的。 


Contributions

  1. 我们提出了伙伴辅助学习(PAL):一个用于在小样本分类设置下的表示学习框架,其中伙伴编码器和主编码器被顺序训练,这样伙伴编码器的特征被用作软锚从零正则化主编码器的训练。
  2. 我们提出了两种对齐方法,在特征级和logit级,利用软锚正则化训练与类标签。
  3. 我们表明,PAL在四个小样本基准上始终达到最先进的性能,并在监督学习设置中提高分类精度。我们也提供全面的消融研究来证明每个组件的设计。

Method

1、任务定义

如图2所示,首先使用𝐷𝑏𝑎𝑠𝑒训练Partner Encoder 𝒇𝑷生成软锚。然后,在PAL框架下,使用𝐷𝑏𝑎𝑠𝑒训练主编码器𝑓𝑀,并利用𝑓𝑃在logit-level或feature-level的对齐约束正则化主编码器𝑓𝑀。


2、Partner Encoder

使用监督对比学习(SupCT)训练Partner Encoder 𝑓𝑃进行聚类,并对所有特征实例进行两两比较。同一个类的特性被推到一起,而来自不同类的特性被推到一边。下面介绍监督对比学习的细节。

监督对比学习:

给定一个batch 𝐷𝑟𝑎𝑚包含B个图像,即|𝐷𝑟𝑎𝑚| = B,通过对每个图像进行两次单独的增强,生成一个包含2B样本的增强批量,

 其中Aug表示随机变换图像的数据增强函数组。

对于每个图像D(i),i∈I≡{1…2B},选择一个正指数集\large I_{pos}(i)\subset I \setminus \{i\},必然存在j∈\large I_{pos}(i)的图像D(j)与D(i)属于同一类。然后,将监督对比损失定义为:

\Theta (i,j)为余弦相似性,𝑧𝑓𝑃,𝑥为𝑓𝑃提取的图像 x 经过𝑙2归一化后的特征,τ为用于重新缩放亲和评分的超参数。

最小化𝐿𝑆𝑢𝑝𝐶𝑇(D)训练模型使同一类特征(正对)之间的相似性最大化而将不同类特征(负对)推开

解读:对比学习的目的是能提取好的特征。对于一个batch图像,对每张图片进行两次数据增广。对于一个图像x,其Positive pair为同类的图像,Negative pair为不同类的图像。目的是让x和同类的特征更近,不同类的特征更远。


3、Main Encoder

教师模型提供了软标签,描述了一些彼此相对接近的事实。软标签p∈R^{|C_{base}|}是由输出logits v∈R^{|C_{base}|}通过softmax操作p = softmax (v/τ)计算出来的,其中参数τ可以scale logits,更高的τ在基类上产生更软的概率分布。

除了学生模型上的交叉熵损失外,将KL散度L_{KL}作为师生设置中知识蒸馏的目标,定义为:

 其中𝑝𝑡,𝑥, 𝑝𝑠,𝑥分别为教师模型和学生模型对同一幅图像x的输出概率分布。最小化𝐿𝐾𝐿将最小化教师软标签和学生预测之间的交叉熵H(𝑝𝑡,𝑥, 𝑝𝑠,𝑥)。当教师也被训练时,其输出−H(pt,x)的负熵被最小化。

def kd(student_hard_logits, teacher_hard_logits, temperature, weight_lambda, prefix):
    student_soft_logits = student_hard_logits / temperature
    teacher_soft_logits = teacher_hard_logits / temperature
    teacher_soft_labels = mx.symbol.SoftmaxActivation(teacher_soft_logits,
        name="teacher%s_soft_labels" % prefix)
    kd_loss = mx.symbol.SoftmaxOutput(data=student_soft_logits, label=teacher_soft_labels,
                                      grad_scale=weight_lambda, name="%skd_loss" % prefix)
    return kd_loss

由于教师模型是预先训练学习硬锚进行分类,然后通过单线性映射预测logits,因此logits输出没有很好的约束,存在绝对值较大的负logits。在[18]中通过实验证明,在学生模型训练过程中,学生预测与软标注之间的交叉熵H(pt,x, ps,x)必须设定一个较高的参数,才能减轻教师模型负对数较大的影响,使学生模型更好地工作

在使用类标签从头开始训练主编码器时,我们建议使用 Partner 提取的特征,而不是首先训练一个曾经严格优化为硬锚的模型,然后设置高参数以减少大负 logits 的影响。编码器作为提供对齐正则化的软锚。为了约束分类器的logit值,我们首先将分类器设计为特征表示和类权向量之间的余弦相似度函数。然后,除了最小化每个样本的交叉熵损失外,我们还使用 Partner Encoder 的特征对 Main Encoder 进行正则化,并在 logit 级别或特征级别对齐上设计约束方法。


3.1 Logit-Level Alignment

我们使用所有类权重向量和训练好的查询特征之间的余弦相似度来生成软标签,然后最小化交叉熵:

由于Partner Encoder经过了很好的训练,通过最大化所有正对特征之间的余弦相似度来进行聚类,所以我们固定Partner Encoder,然后提取特征作为软锚。由于主编码器也是通过最大化查询特征和类权值向量之间的余弦相似度来训练的,所以我们假设Partner和主编码器的特征共享一个共同的特征空间。因此我们将来自Partner Encoder的特征输入到共享分类器中,并计算p_{p,x'}


3.2  Feature-Level Alignment

特征级对齐是通过对由合作伙伴和主编码器提取的特征进行比较来实现的。

在使用LSupCT对Partner Encoder进行训练的过程中,将属于同一类的特征聚在一起,与其他类的特征分离。因此,基类的集群可以被视为一个池,每个特征可以被视为对齐的软锚。对于每幅图像,除了提供类别标签的监督分类信号外,从池中采样软锚子集。具体来说,类似于监督对比损失的想法,我们对特征级对齐进行了两两比较。


3.3 Main Encoder Training

总之,除了每个样本 L_{CE} = H(1_y(x),p_{m,x}) 的交叉熵损失,其中 1y(x) 表示类标签的 onehot 向量,我们还包括 logit 级别和特征级别对齐在主编码器的最终训练目标中,而用于提取软锚的伙伴编码器是固定的。在实践中,我们发现使用 L_logit 或 L_feat 都可以明显改善主编码器的正则化,而将两者相加会产生最佳性能。


实验

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值