论文笔记 | Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

本文提出了模型无关(model-agnostic)的meta learning算法,被称为MAML. 该算法可以用于任何通过梯度下降来更新参数的模型。

算法内容

该算法通过最大化损失函数对新任务敏感性,来获得更好的初始参数,使得模型只需要少数几步梯度下降即可快速学习新任务。

Set-Up

一个任务应该具有以下的形式

其中$\mathcal{L}$为损失函数,$q(x_1)$为先验分布,$q(x_{t+1}|x_t, a_t)$为转移分布,$H$为episode长度。

同时,tasks都符合分布$p(\mathcal{T})$。

对于K-shot learning,模型通过取自$q_i$的K个样本,以及$\mathcal{T}_i$生成的损失函数$\mathcal{L}_{\mathcal{T}_i}$,学习到$\mathcal{T_i}\sim p(\mathcal{T})$.

对于meta learning,对于一个$\mathcal{T}_i\sim p(\mathcal{T})$,模型利用K个样本,以及对应的$\mathcal{L}_{\mathcal{T}_i}$进行训练。

模型$f$通过考虑新数据上的test error相对于参数的变化,而获得提升。

算法详情

首先算法随机初始化$\theta$.

接下来不断重复以下步骤:

  • 选取一批任务$\mathcal{T}_i \sim p(\mathcal{T})$
  • 利用梯度下降更新每一个任务对应的参数$\theta_i’ = \theta - \alpha \nabla_\theta \mathcal{L}_{\mathcal{T}_i}(f_\theta)$
  • 二次求导,更新$\theta$: $\theta \leftarrow \theta - \beta\nabla_\theta \sum_{\mathcal{T}_i \sim p(\mathcal{T})}\mathcal{L}_{\mathcal{T}_i}(f_{\theta_i’})$

以上步骤可以写成以下的目标函数

Specify

监督的回归与分类

回归问题常选择MSE作为损失函数

而分类问题常选择cross-entropy loss

在上述算法中,对于每一个被选取的任务,从中选取K个数据$\mathcal{D} = \{ x^{(j)}, y^{(j)} \}\in \mathcal{T}_i$, 用于更新得到$\theta_i’$. 同时选取一个$\mathcal{D}_i’$,用于之后最终更新$\theta$.

强化学习

每一个强化学习任务$\mathcal{T}_i$都包含一个初始状态分布$q_i(x_1)$与一个转移分布$q_i(x_{t+1}|x_t, a_t)$,以及对应于reward function $R$的损失函数$\mathcal{L}_{\mathcal{T}_i}$.

同样对于每一个选取的任务$\mathcal{T}_i$,通过$f_\theta$选取K个trajectories $\mathcal{D} = \{ (x_1, a_1, \cdots, x_H) \}$,用于更新$\theta_i’$. 同时选取一个$\mathcal{D}_i’$,用于最后更新$\theta$.