小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种基于神经网络结构搜索(NAS)的小样本学习算法(MetAdapt),整体的思路其实与直接解读过的一篇文章《Meta-Learning of Neural Architectures for Few-Shot Learning》非常相似,但在一些具体的实现方法上还是各有特色的。首先,作者也是采用了经典的可微分NAS算法DARTS对网络结构进行搜索;为了适应小样本学习任务,作者在此基础上提出了MetAdapt Controllers结构,用于调整每个操作的权重系数;最后,作者采用了两级训练的方式,依次对神经网络中的参数和神经网络的结构参数进行训练。
DARTS进行神经网络结构搜索的过程,就是要构建一个有向无环图(DAG),图中的每个节点表示一组特征图,每个边表示一种操作(1*1卷积,3*3卷积,池化,跳跃连接等),每两个节点之间可能有不止一条边进行连接,每个边上的权重就表示这种操作的重要性,且两个节点之间每条边上的权重是经过归一化处理的,通过加权求和的形式得到一种混合操作(Mixed Operation)。节点
i
i
i和
j
j
j之间的混合操作计算方法如下式
O
\mathcal{O}
O表示所有操作的集合,
α
o
(
i
,
j
)
\alpha_{o}^{(i,j)}
αo(i,j)表示节点
i
i
i和
j
j
j之间操作
o
o
o对应的权重.为了适应小样本学习的需求,提高对于特定任务的自适应能力,作者设计了一个MetAdapt Controllers结构,用于修正每个边上的权重系数。直接搜索和自适应修正后的网络结构如下图所示
MetAdapt Controllers结构的处理方法如下图所示
将每个Episode中支持集
S
S
S所包含所有样本对应的特征图
x
i
0
,
.
.
.
,
x
i
∣
S
∣
x_i^0,...,x_i^{|S|}
xi0,...,xi∣S∣,全部拼接起来构成一个
[
S
,
D
,
M
,
M
]
[S,D,M,M]
[S,D,M,M]维的张量,
D
D
D表示特征图的通道数,
M
M
M表示特征图的尺寸。经过全局平均池化后,将所有特征图压缩为一个值,得到
[
S
,
D
]
[S, D]
[S,D]维张量,接着利用带有ReLU激活层的线性层将特征图通道数进行压缩,得到
[
S
,
D
b
o
t
t
l
e
n
e
c
k
]
[S, D_{bottleneck}]
[S,Dbottleneck]维张量。最后将张量展开为
S
⋅
D
b
o
t
t
l
e
n
e
c
k
S·D_{bottleneck}
S⋅Dbottleneck维的向量,经过一个线性层后输出权重调整值
Δ
α
(
i
,
j
)
\Delta\alpha^{(i,j)}
Δα(i,j),将其与先前搜索得到的权重值
α
^
\hat{\alpha}
α^相加,就得到修正后的权重系数
实现过程
网络结构
最原始结构采用ResNet-12,并且保持前3个残差块(ResNet-9)的结构不变,只对最后一个残差块的结构进行搜索。
训练策略
本文不仅需要对神经网络中各个网络层中的参数
w
w
w进行训练,还需要对神经网络各个操作的权重参数
α
\alpha
α进行训练,如果同时对二者进行训练的话,会导致过拟合的问题。为了减轻过拟合问题,本文采用了两级迭代优化(bi-level iterative optimization)的训练方式。整个训练集分成两部分,一部分用于训练网络参数
w
w
w,另一部分用于训练权重参数
α
\alpha
α。首先利用SGD方式训练网络参数,过程如下
然后在此基础上再训练权重参数
创新点
- 利用NAS的方法寻找最优的网络结构
- 提出了MetAdapt Controllers结构用于修正不同操作的权重,提高对于小样本学习任务的适应能力
- 采用两级迭代优化的训练方式,缓解了过拟合的问题
算法评价
本文与Meta NAS都采用了DARTS方法对网络结构进行搜索,不同的是Meta NAS算是是将其与MAML等元学习算法相结合,并且对两种参数(权重参数和网络参数)同时进行训练和优化。而本文提出的MetAdapt的算法,引入了权重修正结构,并且采用两级迭代优化的训练方式。根据实验结果来看,本文提出的算法是很有竞争力的,是目前为止,基于参数优化的小样本学习算法中,精度最高的。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。