小样本学习&元学习经典论文整理||持续更新
核心思想
为解决小样本分类问题,本文提出了一种使用深度强化学习的主动学习算法。不同于之前的小样本学习方法使用有监督学习的模式,本文提出的算法让模型学习一种策略决定是给出标记(labeling)还是索要标记(request a label),并且使用强化学习的方式训练这一策略。主动学习是半监督学习的一种特殊情况,在训练过程中由模型给出决策,选择出哪些数据点应该有标记。具体而言,对于当前输入的训练数据,模型可以选择自己预测对应的标记(如果预测对了就会给一个奖励,预测错了会给一个惩罚),也可以选择索要正确的标记(直接给一个小的惩罚)。这种方式非常适用于预测错误成本很高,但是标记成本较低的情景。本文采用LSTM构建模型,并采用强化学习的方式对该模型进行训练。强化学习的过程是由策略
π
\pi
π根据当前的状态
s
t
s_t
st,给出相应的动作
a
t
a_t
at使得回报函数
Q
(
s
t
,
a
t
)
Q(s_t,a_t)
Q(st,at)尽可能的大。
这一过程非常符合主动学习的需求,本文就是为了训练一种策略,让其根据观察和状态输出动作
a
t
a_t
at,动作包含:预测标记或索要标记,得到的回报
r
t
r_t
rt包含:预测对了——奖励,预测错了——惩罚,索要标记——小惩罚,最终目标是使回报尽可能高。
如图所示,每个时刻模型都会接受当前时刻的输入和上个时刻的输出,并决定是否对当前输入
x
t
x_t
xt的标签进行预测,如果不预测,选择索要标记,那么输出一个0向量和数字1表示索要标记
[
0
⃗
,
1
]
[\vec{0},1]
[0,1],如果选择预测标记,则输出一个独热向量(one-hot vector)表示预测的类别和数字0表示预测标记
[
y
^
,
0
]
[\hat{y},0]
[y^,0]。对于索要标记这一动作,会直接得到一个惩罚
r
t
=
−
0.05
r_t=-0.05
rt=−0.05;对于预测标记这一动作,会根据预测结果得到相应的回报,预测对了则得到奖励
r
t
=
+
1
r_t=+1
rt=+1,错了则得到惩罚
r
t
=
−
1
r_t=-1
rt=−1。如果选择索要标记,那么会在下一时刻得到对应的正确标记
y
t
y_t
yt,这要求模型必须记住当前这个类别的表示,并且要与相应的标记对应起来,这里应该是参考了《Meta-Learning with Memory-Augmented Neural Networks》这篇文章的思想。
实现过程
网络结构
模型主干部分采用了普通的LSTM网络,并连接一个线性输出层,用于获得预测的独热向量。
损失函数
本文使用一个函数近似器(function approximator)来表示回报函数
Q
(
s
t
,
a
t
)
Q(s_t,a_t)
Q(st,at),并不断最小化Bellman误差来优化参数,如下式
Θ
\Theta
Θ表示函数近似器中的参数,该近似器是根据观察
o
t
o_t
ot,而不是状态
s
t
s_t
st来预测动作的,
r
t
r_t
rt表示
t
t
t时刻的回报,
γ
\gamma
γ表示一个衰减系数。
训练策略
与先前的许多文章一样,将训练集分成多个Episode,每个Episode 中包含多个任务,将多个任务当成一个图像序列输入到LSTM中,并且每两个Episode间都会打乱图像序列的顺序。
创新点
- 采用主动学习的方式实现小样本分类任务
- 采用深度强化学习策略对LSTM模型进行训练
算法评价
本文非常新颖的采用主动学习的方式实现小样本分类任务,与直接提供标记的监督学习不同,由网络模型自己去评估能够给出正确的预测,是预测标记还是索要标记。所采用的的LSTM模型和深度强化学习策略非常适合于该任务的训练。虽然本文提出的算法只在手写字符数据集上进行了实验,并且效果相对于有监督学习提升也非常有限,但是这一思想仍然是很有创意,很有趣的。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。