MAML:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
元学习的目标是在各种学习任务上训练一个可以仅仅使用少量训练样本就可以解决新任务的模型,在本文中,模型的参数训练很明确,所以从新任务的少量样本做几步梯度下降就可以在新任务上得到好的泛化性。同时,由于模型可应用于一系列使用梯度下降训练的模型,包括分类,回归,强化学习等等,所以也叫作模型无关的模型。
本文的关键思想在于训练模型的初始参数,使得模型的参数在某个新任务上仅适用少量样本经过一步或者几步梯度下降更新后就可以早新任务上有很好的表现。从特征学习的角度来看,这是一个建立适应多种任务的内部特征表达的过程,使得其可以更容易,更快速的fine-tune;从动态系统的角度来看,学习过程可以被看做是最大化loss function对于和新任务有关的参数的敏感度,当敏感度高时,参数的小的局部改变可以使loss得到巨大的提高。
模型
任务设定
考虑一个模型,用\mathcal{f}表示,将观察值x映射到输出a上。在元学习过程中,模型被训练以适应于大量或无限的任务。任务可以形式化地定义如下,
\mathcal{T} = \{\mathcal{L}(x_1,a_1,...,x_H,a_h),q(x_1),q(x_{t+1}|x_t,a_t),H\}
由损失函数\mathcal{L},基于初始观察值的分布q(x_1),一个transition分布q(x_{t+1}|x_t,a_t),eposide length H组成。
对于模型要适应的任务分布p(\mathcal{T}),在K-shot learning的设定下,模型从p(\mathcal{T})采样任务\mathcal{T}_i,再从q_i中采样K个样本,产生由\mathcal{T}产生的反馈\mathcal{L_{T_i}}。在K个样本上训练,然后在\mathcal{T}_i的新样本上进行测试。然后,通过考虑新样本的测试误差改变相应的参数以提升模型效果,实际上,在元学习过程中,这个测试误差被当做是训练误差。
算法

在学习过程中,一些特征比其他的更具有迁移性。比如,一个神经网络可能学到广泛适应于p(\mathcal{T})中所有任务内部特征,而不是对于某个单独的任务。为了提取这种更具有一般性的特征,在新任务上使用基于梯度下降的fine-tune的方式去训练模型。实际上,我们希望找到对于任务改变敏感的参数。

形式上,考虑参数为\theta的函数f_\theta表示的模型,当在新任务\mathcal{T}_i执行一步或者几步梯度下降后,模型的参数变成了\theta\prime,当执行一步梯度更新时,
\theta_i\prime=\theta-\alpha\nabla_\theta\mathcal{L_{T_i}}f(\theta)
模型的参数通过从与\theta对应的p(\mathcal{T})中采样的所有任务对应的f_{\theta_i\prime}进行优化,
\min_\theta \sum_{\mathcal{L}_i\sim p(\mathcal{T})}\mathcal{L_{T_i}}(f_{\theta_i\prime}) = \sum_{\mathcal{L}_i\sim p(\mathcal{T})}L(f_{\theta-\alpha\nabla_\theta\mathcal{L_{T_i}}f(\theta)})
需要注意的是元优化过程是针对模型参数\theta的,但是是通过更新后的参数\theta\prime计算的。在任务间的优化通过SGD,所以参数更新后,
\theta\leftarrow\theta-\beta\nabla_\theta\sum_{\mathcal{L}_i\sim p(\mathcal{T})}\mathcal{L_{T_i}}(f_{\theta_i\prime})
MAML的梯度计算包含二阶导数,计算时,需要额外的反向传播来计算海瑟矩阵。本文中,同时实验了不进行这次反向传播,使用一阶导近似的情况,最终准确度是差不多的。说明了MAML的大部分提升来自于基于任务目标优化得到的梯度,而不是通过梯度的二次微分
分类或者回归问题

- 对于分类问题,使用交叉熵损失函数
- 对于回归问题,使用MSE
实验

