【Few-Shot Incremental Learning】ALICE in ECCV 2022 个人理解

一、简介

题目: Few-Shot Class-Incremental Learning from an Open-Set Perspective
会议: ECCV 2022
任务: 数据/任务依次到来,新的数据/任务到来后旧的就不再可获取,并且新的数据相比旧数据可能是稀缺的(例如,旧的类别每类可能有100个样本,但新的类别每类可能只有5个样本),要求模型在学习新数据/任务的同时不要忘记旧数据/任务。
Idea:
(1)利用初始样本充足的训练数据训练一个强大的特征提取器: 首先,通过类增强策略(取自Mixup)创造大量新类;其次,通过数据增强策略(取自SimCLR)创造两个不同的增强样本;最后,通过Angular Penalty Loss(APL,取自cosFace)训练特征提取器。
(2)根据余弦相似度以最近类均值(Nearest Class Mean, NCM)规则进行分类: k k k-shot为例,首先,确定支撑集(Support Set),计算各类特征均值,取与特征均值的余弦相似度最大的 k k k个特征作为原型组成支撑集;其次,确定类特征均值,根据支撑集计算各类特征均值;最后,计算查询特征与各类特征均值的余弦相似度,分类为相似度最大的类。
Note: 该工作是纯粹的少样本类增量学习(Few-Shot Class-Incremental Learning),不执行开放集识别(Open Set Recognition, OSR),但用到了OSR的数据增强策略,详情可参考Mixup in NeurIPS 2019。

框架如图,作者用类增强和数据增量以及APL训练特征提取器,然后根据最近类均值规则进行分类。

二、详情

1. 特征提取器

特征提取器的训练仅使用有充足样本的初始训练集,它所包含的类与后续出现的增量类无重叠。如上图所示,其结构包括Backbone(ResNet18)+ 映射层(两层全连接)+ 分类头(一层全连接)。当训练结束进行特征提取时,映射层和分类头会被移除,Backbone会被冻结。

1.1 类增强

原始Mixup通过合并两个随机图像及它们的标签实现增强,公式如下:
x ~ = λ x i + ( 1 − λ ) x j y ~ = λ y i + ( 1 − λ ) y j \tilde{x}=\lambda x_i+(1-\lambda)x_j \\ \tilde{y}=\lambda y_i+(1-\lambda)y_j x~=λxi+(1λ)xjy~=λyi+(1λ)yj 其中, x ~ \tilde x x~ y ~ \tilde y y~为生成的组合样本和组合标签, x i x_i xi x j x_j xj为两个原始训练数据, y i y_i yi y j y_j yj是它们的one-hot硬标签, λ \lambda λ采样自 B e t a ( α , α ) Beta(\alpha,\alpha) Beta(α,α) α = 0 \alpha=0 α=0时,生成的样本就是 x i x_i xi x j x_j xj α = 1 \alpha=1 α=1时,生成的样本就是 x i x_i xi x j x_j xj的平均。合并结果如下图所示:

原始Mixup是通过上述操作软化one-hot硬标签以解决分类器过分自信的问题的,这里被作者用来生成新类。 所以,作者不进行标签软化,而是将两个图像组合后作为一个新类。假设原本有 C C C个初始类,两两组合就可以形成 C × ( C − 1 ) 2 \frac{C\times (C-1)}{2} 2C×(C1)个新类,得到总共 C × ( C + 1 ) 2 \frac{C\times (C+1)}{2} 2C×(C+1)个类,这就是分类头的单元数。

1.2 数据增强

原始SimCLR使用自监督对比损失进行训练(不需要标签),公式如下:

其中, N N N是样本数量,每个样本都进行两次随机增强所以有 2 N 2N 2N个增强样本。 z i \boldsymbol{z}_i zi z j \boldsymbol{z}_j zj是同一样本两次随机增强后提取的特征, z k \boldsymbol{z}_k zk是剩余的 2 ( N − 1 ) 2(N-1) 2(N1)个特征(未增强的样本不再使用)。

原始SimCLR使用该公式使来自同一样本的特征彼此靠近,并远离来自其它样本的特征。 这里作者仅使用其样本增强策略,并且增强操作也同样作用于组合而成的新类样本。每次进行特征提取器的训练时,都会输入两次随机增强的样本,并计算它们的APL损失和,而不是自监督对比损失。

1.3 APL

APL是有监督损失(需要标签)。标准交叉熵(Cross-Entropy, CE)公式如下:

其中, p j p_j pj为SoftMax输出的在第 j j j个图像真实类上的预测概率; N N N为样本个数。而APL将 y j y_j yj替换为了余弦相似度,计算公式如下:

其中, f f f为分类头的归一化后的输出, W i T W_i^T WiT为分类头中关于第 i i i类的归一化后的权重(它可以视为第 i i i类的中心)。输出 f f f与中心 W i T W_i^T WiT的余弦相似度越高,则 y i y_i yi越大。于是损失函数变成如下形式:

APL为了使类内特征余弦相似度更高,类间余弦相似度更低,给上式增加了一个缩放因子 s = 30 s=30 s=30和间距系数 m = 0.4 m=0.4 m=0.4,公式如下:

简单来说, m m m类似一个裕量, − m -m m可以使 y j y_j yj降低。具体来说,如果有三个类,某样本的相似度计算结果为 [ 0.9 , − 0.5 , − 0.8 ] [0.9,-0.5,-0.8] [0.9,0.5,0.8],则通过SoftMax所得在各类上的预测分数就是 [ 0.7 , 0.17 , 0.13 ] [0.7,0.17,0.13] [0.7,0.17,0.13],如果在 cos ⁡ ( θ 1 ) \cos(\theta_1) cos(θ1)上减去 m m m,则预测分数变为 [ 0.61 , 0.22 , 0.17 ] [0.61,0.22,0.17] [0.61,0.22,0.17]。显然,最大的分数降低了,其余的分数增加了,降低与增加的部分即为 m m m所产生的裕量。这样,在 − m -m m的情况下训练出来的模型,样本与所属类中心的相似度就会更高,从而达到类内紧缩,类间远离的目标。作者达到该目标是为了使当前类所占的特征空间更小,从而为未来的增量类留下更多空间。 s s s则是用来调整 − m -m m的影响程度。

最终达到的效果如下图,类内更加紧缩,类间更加远离了:

2. 查询分类

分类根据特征进行,采取NCM规则并以余弦相似度为度量。

2.1 确定支撑集

根据木桶效应,取最小的类别样本数作为 k k k,形成 k k k-shot支撑集。例如,三个类各有15,5,10个样本,则最少类别样本数为5,则 k = 5 k=5 k=5,每个类取5个样本组成支撑集。

对于样本数多于5的类别来说,样本的选取需要先计算类别特征均值,然后计算各样本特征与特征均值的余弦相似度,保留前 k k k个相似度较高的特征。

2.2 分类

计算支撑集各类别特征的均值,查询样本到来输入特征提取器得到特征,计算该特征与各类别特征均值的余弦相似度,根据相似度进行分类(归为相似度最高的对应类)。

3. 评估指标

在少样本增量学习中,要求模型能够同时识别初始类和此前的增量类,但初始类较多,增量类较少。该场景下,常用的类平均准确率便不再合适。例如,初始类有60个,增量类每次5个,在第一次增量后的评估时假设增量类预测全错,初始类全对,则类平均准确率约为92.3%,这显然是不合适的。于是,作者提出谐波准确率:

其中, A b A_b Ab为初始类的平均准确率, A i A_i Ai为增量类的平均准确率,最后调和两者得到 A h A_h Ah

总的来说,该工作重心在特征提取上,类增强和数据增强结合APL得到一个强大的特征提取器是关键。

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fulin_Gao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值