[论文分享] Self-Promoted Prototype Refinement for Few-Shot Class-Incremental Learning
作者:互联网
这篇论文是CVPR’ 2021的一篇Few-Shot增量学习(FSCIL)文章
No. | content |
---|---|
PAPER | {CVPR’ 2021} Self-Promoted Prototype Refinement for Few-Shot Class-Incremental Learning |
URL | https://openaccess.thecvf.com/content/CVPR2021/papers/Zhu_Self-Promoted_Prototype_Refinement_for_Few-Shot_Class-Incremental_Learning_CVPR_2021_paper.pdf |
CODE | https://github.com/zhukaii/SPPR |
1.1 Motivation
· 小样本增量学习增量类别样本过少,不足以训练好分类和蒸馏过程,不能像现有增量学习方法那样促进表示空间进一步扩展。
· 新类别样本不足以支撑在维持旧类性能的同时在新类上学习到区分性很好的分类器。
· 新类样本不足,用于分类的prototype在增量学习后容易与其他类混淆,从而极大地影响后续任务的完成。
1.2 Contribution
· 采用随机episode选择策略(RESS),通过强制特征自适应于各种随机模拟的增量过程来增强特征表示的可扩展性。
· 引入了一种自提升的原型细化机制(SPPR),利用新类样本和旧类prototype表示之间的关系矩阵来更新现有的prototype。
1.3 Method
模型结构
1.3.1 Standard Learning Paradigm
对于增量任务中base classes的训练过程,采用标准的分类pipeline。采用VGG或ResNet等分类器提取特征
KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ R_q=f_e(Q;\th…
然后通过参数为
θ
m
\theta_m
θm分类器
f
m
f_m
fm进行分类(包括非参数的最近临分类器和余弦分类器、有参数的线性分类器),
θ
p
\theta_p
θp是可学习的原型
S
=
s
o
f
t
m
a
x
(
f
m
(
R
q
,
θ
p
;
θ
m
)
)
S=softmax(f_m(R_q,\theta_p;\theta_m))
S=softmax(fm(Rq,θp;θm))
例如余弦分类器上述公式可以写为:
S
i
=
e
x
p
(
η
(
θ
p
i
T
⋅
R
q
)
)
∑
j
e
x
p
(
η
(
θ
p
j
T
⋅
R
q
)
)
S_i=\frac{exp(\eta(\theta^{i^T}_{p}\cdot R_q))}{\sum_jexp(\eta(\theta^{j^T}_{p}\cdot R_q))}
Si=∑jexp(η(θpjT⋅Rq))exp(η(θpiT⋅Rq))
其中
η
\eta
η是scale。通过随机采样query图像样本来训练优化
θ
\theta
θ,通过如下共识最小化损失函数
L
L
L
θ
∗
=
arg
min
θ
L
(
S
i
,
T
)
\theta_*=\arg\min\limits_{\theta}L(S_i,T)
θ∗=argθminL(Si,T)
上式中的
θ
\theta
θ包括
θ
e
,
θ
p
,
θ
m
\theta_e,\theta_p,\theta_m
θe,θp,θm等。分类任务中,
L
L
L大多采用CE Loss。
1.3.2 Incremental Prototype Learning
这部分作者提出了一个增量原型学习策略来解决standard learning中表示缺少可扩展性的问题。
Random Episode Selection
通过随机采集episode强制梯度适应随机生成的不同模拟增量过程,提高了特征表示的可扩展性。
与few-shot任务中识别一个episode的 N w a y N way Nway目的不同,作者提到设计模拟增量过程的目标是通过 N w a y N way Nway的少量样本来识别所有看到的类。
具体来说,除了上面查询的图像
Q
Q
Q之外,模型的输入还包含一个随机从
b
a
s
e
base
base训练集
X
1
X^1
X1中选取的
N
−
w
a
y
K
−
s
h
o
t
N-way \ \ K-shot
N−way K−shot集合
C
C
C。如图所示,在每次迭代中,从标签空间
Y
1
Y^1
Y1中随机选择
N
N
N个类,然后选择
K
K
K个样本用于特征提取器。得到的嵌入对每个类取平均值:
R
S
=
m
e
a
n
(
f
e
(
C
;
θ
e
)
)
R_S = mean(f_e(C;\theta_e))
RS=mean(fe(C;θe))
最后,假设这
N
N
N个类在此迭代之前没有出现过,因此它们对应的原型将被删除
θ
p
N
=
C
∣
Y
1
∣
∣
Y
1
∣
−
N
(
θ
p
)
\theta^N_p=\mathbb{C}^{|Y^1|-N}_{|Y^1|}(\theta_p)
θpN=C∣Y1∣∣Y1∣−N(θp)
∣
Y
1
∣
|Y^1|
∣Y1∣即为标签集
Y
1
Y^1
Y1的类别数,
C
\mathbb{C}
C表示确定项目集合中可能分配的数学操作。
最终的分类过程如下
S
=
P
(
R
q
∣
R
s
,
θ
P
N
)
S=P(R_q|R_s,\theta^N_P)
S=P(Rq∣Rs,θPN)
Dynamic Relation Projection
为了保持旧类间的依赖并增强新类间的区分度,作者提出了自促进prototype精炼机制,
θ
p
′
=
f
u
(
R
s
,
θ
p
N
;
θ
u
)
\theta^{'}_p=f_u(R_s,\theta^N_p;\theta_u)
θp′=fu(Rs,θpN;θu)
首先通过变换将标准学习与增量学习原型转换到统一隐空间
T
s
=
f
t
1
(
R
s
;
θ
t
1
)
T
p
=
f
t
2
(
θ
p
N
;
θ
t
2
)
T_s=f_{t_1}(R_s;\theta_{t_1})\\ T_p=f_{t_2}(\theta^N_p;\theta_{t_2})
Ts=ft1(Rs;θt1)Tp=ft2(θpN;θt2)
f
t
1
f_{t_1}
ft1和
f
t
2
f_{t_2}
ft2由标准1x1卷积、BatchNorm、ReLU组成。随后在新旧类之间计算余弦相似度
T
Y
1
=
C
o
n
c
a
t
(
[
T
s
,
T
p
]
)
C
o
r
r
=
T
p
⋅
T
Y
1
T
T_{Y^1}=Concat([T_s,T_p])\\ Corr=T_p\cdot T^T_{Y^1}
TY1=Concat([Ts,Tp])Corr=Tp⋅TY1T
由此可以获得新旧类之间的关系矩阵,将其作为原型优化的过渡系数
θ
p
′
=
C
o
r
r
T
⋅
θ
p
N
\theta_{p}^{'}=Corr^T\cdot \theta^N_p
θp′=CorrT⋅θpN
由于精炼机制不仅明确考虑了新旧类之间的关系,而且在随机选择过程的指导下,原型动态地向维护已有知识和增强新类辨别能力的方向移动。
作者认为,在设计的这种学习机制下,模型不仅学习表示,而且鼓励网络向更利于后续增量任务的方向优化。
1.4 Analysis
作者分析了伪增量设置更新次数的影响,
发现在base classes上,更新两次效果最好,也就是说,最后60个类的原型将通过50个类的伪base prototype(每次5个类)的两次增量更新获得。如上图(a)所示。
作者还探讨了train、test的way/shot大小的影响以及不同测试方法的影响如上图所示。
【参考文献】
[1] Zhu K, Cao Y, Zhai W, et al. Self-Promoted Prototype Refinement for Few-Shot Class-Incremental Learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 6801-6810.
标签:Shot,样本,分类器,Few,原型,随机,增量,theta,Prototype 来源: https://blog.csdn.net/qq_40825479/article/details/122199901