小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种基于度量学习小样本分类算法,在CNAPS算法的基础上,对分类器部分进行改进,引入一种新的距离度量方式,减少了参数数量并且提高了分类的准确率。下面我们首先介绍CNAPS算法。
如上图所示,CNAPS算法包含两个部分:特征提取器(黑色虚线框内的部分)和分类器(红色框内的部分)。其中特征提取器是由带有FiLM层的ResNet-18网络构成的,如下图所示
FiLM层的作用是将BN层输出的特征图进行一个仿射变换,
F
o
u
t
=
γ
F
i
n
+
β
F_{out}=\gamma F_{in}+\beta
Fout=γFin+β,然后再进入激活函数层。而
γ
\gamma
γ和
β
\beta
β两个参数则是利用特征提取器自适应模块
ψ
ϕ
f
\psi_{\phi}^f
ψϕf生成的,该模块也包含两个部分:
g
ϕ
g_{\phi}
gϕ和
ψ
ϕ
j
\psi_{\phi}^j
ψϕj。
g
ϕ
g_{\phi}
gϕ由一个深层网络构成,根据支持集
S
τ
\mathcal{S}^{\tau}
Sτ生成对应的任务表征
g
ϕ
(
S
τ
)
g_{\phi}(\mathcal{S}^{\tau})
gϕ(Sτ),而
ψ
ϕ
j
\psi_{\phi}^j
ψϕj则是根据任务表征
g
ϕ
(
S
τ
)
g_{\phi}(\mathcal{S}^{\tau})
gϕ(Sτ)生成每个残差块对应的
γ
\gamma
γ和
β
\beta
β参数。经过该特征提取网络后得到查询图像和支持集图像对应的特征
f
θ
τ
(
x
i
∗
)
f_{\theta}^{\tau}(x_i^*)
fθτ(xi∗)和
f
θ
τ
(
S
τ
)
f_{\theta}^{\tau}(\mathcal{S}^{\tau})
fθτ(Sτ)。对于支持集中每幅图像的特征
f
θ
τ
(
S
τ
)
f_{\theta}^{\tau}(\mathcal{S}^{\tau})
fθτ(Sτ)按照类别通过平均池化的方式得到每类图像对应的类别特征
μ
k
\mu_k
μk,然后再经过类别自适应模块
ψ
ϕ
c
\psi_{\phi}^c
ψϕc,生成分类器中每各类别对应的权重
w
k
w_k
wk和偏置
b
k
b_k
bk。最后利用下式得到查询集图像属于各个类别的概率值
p
(
y
i
=
k
∣
f
θ
τ
(
x
i
∗
)
,
S
τ
)
=
s
o
f
t
m
a
x
(
w
k
×
f
θ
τ
(
x
i
∗
)
+
b
k
)
p(y_i=k|f_{\theta}^{\tau}(x_i^*),\mathcal{S}^{\tau})=softmax(w_k\times f_{\theta}^{\tau}(x_i^*)+b_k)
p(yi=k∣fθτ(xi∗),Sτ)=softmax(wk×fθτ(xi∗)+bk)
本文保留了CNAPS算法中特征提取的部分,但改进了分类器部分,使用一种新的距离度量方式取代了CNAPS算法中的类别自适应模块,查询集图像属于各个类别的概率值计算过程如下
式中
Q
k
τ
Q_k^{\tau}
Qkτ是针对类别
k
k
k和任务
τ
\tau
τ的协方差矩阵,其计算过程如下
式中
∑
k
τ
\sum^{\tau}_k
∑kτ表示任务
τ
\tau
τ中类别
k
k
k内各个图像间的协方差矩阵,计算过程如下
而
∑
τ
\sum^{\tau}
∑τ表示任务
τ
\tau
τ中所有类别的图像之间的协方差矩阵,计算过程与
∑
k
τ
\sum^{\tau}_k
∑kτ相似,只不过将
S
k
τ
\mathcal{S}_k^{\tau}
Skτ改为
S
τ
\mathcal{S}^{\tau}
Sτ。
β
\beta
β表示正则化参数,权重
λ
k
τ
\lambda_k^{\tau}
λkτ计算过程如下
当每个类别仅包含一张图像,即
∣
S
k
τ
∣
=
1
\left | \mathcal{S}_k^{\tau}\right |=1
∣Skτ∣=1时,
λ
k
τ
=
0.5
\lambda_k^{\tau}=0.5
λkτ=0.5,则
Q
k
τ
Q_k^{\tau}
Qkτ主要依赖于正则化参数
β
\beta
β的取值,而随着每个类别中包含的图像越多,
λ
k
τ
\lambda_k^{\tau}
λkτ的值越接近于1,且任务
τ
\tau
τ中类别
k
k
k内各个图像间的协方差矩阵
∑
k
τ
\sum^{\tau}_k
∑kτ估计的约准确,则
Q
k
τ
Q_k^{\tau}
Qkτ主要依赖于
∑
k
τ
\sum^{\tau}_k
∑kτ。作者指出该方法不仅减少了大量的网络参数(相对于CNAPS的分类器部分),且能够关注到不同类别图像之间的分布情况,之前采用的欧式距离度量方式是假设所有类别图像的协方差是统一的,而本文采用的方式则是考虑到不同类别的图像其协方差是不同的,更加接近于真实情况,如下图所示
实现过程
网络结构
特征提取网络是由带有FiLM层的ResNet-18网络构成,分类器部分不需要网络结构。
创新点
- 设计了新的距离度量方式,考虑不同类别图像之间的协方差关系,取代了CNAPS算法中分类器部分
算法评价
本文是在对CNAPS算法进行的改进,虽然CNAPS算法对应的这篇文章《Fast and flexible multi-task classification using conditional neural adaptive processes》我并没有读过,但在本文中做了非常详细的说明。相对于CNAPS算法,本文主要是改进了分类器部分,用一种无参数的距离度量方式取代原有的分类器网络,在减少参数数量的同时,提高了分类的效果。而且本文中有一幅图非常有趣,利用一个散点图表示出各种类型的小样本学习算法之间的关系,如下图所示
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。