这篇文章在元学习领域笔记重要,之前一直想读,这次正好有机会就把它给刷了。
本篇论文属于小样本学习领域,但是本篇论文中的Matching Networks常被用于与Meta-learning任务中的方法进行比较。这篇论文出自Google DeepMind团队,发表于2016年。
1 Motivation
人类可以可以通过非常少量的样本学习到一个新的概念,比如一个小孩子看完一张长颈鹿的照片之后就认识了长颈鹿这个动物。但是最好的深度学习模型依然需要成百上千的例子来学习到一个新的概念。因此本文就考虑如何通过一个样本就让深度学习模型学会一个新概念。
传统上训练出一个模型需要使用很多样本进行很多次的参数更新,因此作者认为可以使用一个无参数的模型。参考KNN这种度量式的做法,作者将有参数的模型和无参数的模型进行了结合。
2 Contribution
- 在模型层面上,作者提出了一个Matching Networks, 将注意力机制和记忆机制引入快速学习任务中。
- 在训练流程上,作者训练模型时遵循了一个很简单的规则,即测试和训练条件必须匹配。作者在训练时仅用每个类别中很少的样本进行训练,因为在测试时也使用的是很少的样本。(即训练条件和测试条件匹配)
3 Method
3.1 Model Architecture
g θ g_{\theta} gθ和 f θ f_\theta fθ分别是对训练数据和测试数据的编码函数。Matching Networks可以简洁表示为计算一个无标签样本的标签为 y ^ \hat{y} y^的概率,这个计算方法跟KNN很像,相当于是加权后的KNN:
P ( y ^ ∣ x ^ , S ) = ∑ i = 1 k a ( x ^ , x i ) y i P(\hat{y}|\hat{x},S) = \sum^{k}_{i=1}a(\hat{x},x_i)y_i P(y^∣x^,S)=i=1∑ka(x^,xi)yi
其中 x i , y i x_i,y_i xi,yi是输入的支撑集(support set)中的样本 S = { ( x i , y i ) } i = 1 k S = \{(x_i,y_i)\}^k_{i=1} S={
(x