小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种基于最大熵图块采样算法的强化学习模型来解决小样本学习问题。作者首先提出常见的目标分类网络都是把一整张图片作为输入,进行特征提取,然后分类。而人类在观察事物的时候通常都会把注意力集中在部分感兴趣的区域,也就是所谓的注意力机制,而且当我们第二次看一个物体时,我们的注意力会沿着一定的轨迹移动,也就是说我们每次观察物体的一部分图块,经过多次观察后识别该物体。本文正是利用这一思想,将一幅图片分割成多个图块,组成一个图片序列,依次输入到一个强化学习网络中,经过多次观察后给出分类结果。网络的结构如下图所示
每个图块
p
i
p_i
pi都先经过一个图像特征提取网络
f
e
f_e
fe得到对应的特征向量
e
i
e_i
ei,然后与上一阶段的状态输出
s
i
−
1
s_{i-1}
si−1和环境信息
c
i
−
1
c_{i-1}
ci−1一起进入状态编码器
f
s
f_s
fs,得到当前时刻对应的状态输出
s
i
s_i
si。这一状态有两个用途,一方面作为输入传递到下一时刻的状态编码器,另一方面输入到最大熵图块采样器(Maximum Entropy Sampler)提取下一个阶段的图块
p
i
+
1
p_{i+1}
pi+1。简单点说,这个最大熵图块采样器就是以原图
x
x
x和当前时刻的状态信息
s
i
s_i
si作为输入,输出下一时刻的动作信息
a
i
a_i
ai(也就是图块的坐标)。但具体来说,最大熵图块采样器由两个部分组成:Q函数
f
Q
f_Q
fQ和采样策略
π
θ
\pi_{\theta}
πθ,其中
f
Q
f_Q
fQ用来评价当前采取动作有多么“好”,而
π
θ
\pi_{\theta}
πθ会输出下一时刻动作信息
a
i
a_i
ai和原图
x
x
x对应的特征信息
g
g
g,而这两部分信息又进入动作环境编码器
f
a
f_{a}
fa用于输出当前时刻的环境信息
c
i
c_i
ci。最后经过
N
N
N次观察之后,输出状态
s
N
s_N
sN并利用分类器
f
c
f_c
fc得到最终的预测类别标签
y
^
\hat{y}
y^。整个过程看似复杂,但其实还是比较常规的强化学习流程,问题的难点在于最大熵图块采样器是如何选择出最合适的图块的?
作者提出了一种基于最大熵的强化学习算法用于输出采样策略,该算法的优化目标如下
不仅要求最大化回报函数
r
t
r_t
rt,并且在给定状态
s
s
s的同时最大化策略的熵
H
(
π
(
⋅
∣
s
)
)
H(\pi(\cdot|s))
H(π(⋅∣s)),该问题可采用柔性Q学习的方法来解决
式中
Q
s
o
f
t
(
s
t
,
a
t
)
Q_{soft}(s_t,a_t)
Qsoft(st,at)表示Q函数,
V
s
o
f
t
V_{soft}
Vsoft表示价值函数,用于评定状态的价值,而最大熵策略如下
基于上述的研究,本文提出一种正负样本采样的策略,所谓正样本就是指在感兴趣区域内的图块,而负样本是指背景处的图块。相应的负样本采样策略标识如下
可以看做是正样本采样策略的相反数。每次正向过程(处理一张图片)都会随机选择是采用正样本采样策略还是负样本采样策略,如果是正样本采样策率则希望分类器输出的预测结果是对应的目标物体,如果是负样本采样策略则希望分类器输出的预测结果是背景,根据这一要求设计了回报函数
作者指出采用这一采样策略有双重优势:第一,编码器能够“看到”并学习为错误选择的图块进行编码;第二,这有助于为不同的动作提供不同价值,避免了无论采用何种动作其价值得分都几乎相同的情况。
实现过程
网络结构
图像特征提取器 f e f_e fe是一个CNN网络,状态编码器 f s f_s fs是一个RNN网络,Q函数 f Q f_Q fQ和采样策略 π θ \pi_{\theta} πθ的结构完全相同,都是一个带有全连接层的小型CNN,动作环境编码器 f a f_a fa和分类器 f c f_c fc结构未介绍。
损失函数
分类损失根据采取不同的采样策略,计算正负样本对应的损失
M
1
M_1
M1和
M
2
M_2
M2分别表示两种采样模式,
j
j
j表示第
j
j
j幅图片。图像特征提取器
f
e
f_e
fe,状态编码器
f
s
f_s
fs,动作环境编码器
f
a
f_a
fa和分类器
f
c
f_c
fc利用该损失进行更新。
训练策略
整个网络的训练过程如下
创新点
- 通过将图片分割成图块序列,采用深度强化学习的方式,实现小样本分类任务
- 设计了最大熵图块采样策略
算法评价
本文采用深度强化学习的方式实现小样本分类任务,在本质上可以看做是一种基于数据增强的方法,只不过作者是将一幅图片分割成若干个图块,并组成图块序列进行学习。这一方法能够引导网络有针对性的选取图片中有价值的部分进行观察,而不需要在背景区域浪费精力,这在一定程度上提高了模型的学习效率,使得其在少量样本的情况下就能够有效学习分类方法。根据实验结果来看,该算法效果改进不大,但作为一种全新的思路和结构,该算法仍具有进一步研究和改进的价值。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。