最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Model-Agnostic Meta-Learning (MAML) 理解

来源:博客园

模型不可知元学习(Model-Agnostic Meta-Learning, MAML)的目标是使模型每次的梯度更新更有效、提升模型的学习效率、泛化能力等,它可以被看做一种对模型进行预训练的方法,适用于小样本学习。

原文:http://proceedings.mlr.press/v70/finn17a/finn17a.pdf


(相关资料图)

其它理解可以看:https://zhuanlan.zhihu.com/p/57864886

看论文中Algorithm 2,在有监督分类任务上进行理解。为了表达更清晰,下面的符号表示与论文算法中的表示不同:

假设模型$f_\theta$要执行小样本分类任务$\mathcal{T}$,其训练集和测试集分别是$\mathcal{D}_T$和$\mathcal{D}_E$。$\mathcal{D}_T$与$\mathcal{D}_E$都包含$N$个类别,$\mathcal{D}_T$每个类别$K_T$个样本,$\mathcal{D}_E$每个类别$K_E$个样本。

为了增强模型对任务$\mathcal{T}$的训练效率和泛化能力,MAML使用另一个更大的数据集$\mathcal{D}_M$对模型进行预训练。$\mathcal{D}_M$即为文中Algorithm 2的$p(\mathcal{T})$。

对于MAML的每次迭代(也就是Algorithm 2第2行),MAML从$\mathcal{D}_M$中随机抽取一批与任务$\mathcal{T}$有相同类别数和样本量的数据集$\{(\mathcal{D}^1_T,\mathcal{D}^1_E),...,(\mathcal{D}^n_T,\mathcal{D}^n_E)\}$。然后模拟任务$\mathcal{T}$使用$\mathcal{D}^i_T$对模型$f_\theta$进行训练并更新参数,得到$n$个更新参数后的模型$\{f_{\theta"_1},...,f_{\theta"_n}\}$。参数更新式子如下:

$\theta"_i=\theta-\alpha\nabla_\theta\mathcal{L}(\theta,\mathcal{D}^i_T),i=1,2,...,n$

其中$\alpha$为学习率。以上只进行了一次训练,也可以进行多次。在本次MAML迭代中,下面就是MAML对模型$f_\theta$正式的参数更新,即文中Algorithm 2的第10行。MAML的思想是使模型$f_\theta$在不同训练集上进行少量的训练就能对测试集有良好的泛化性能。因此,MAML对$f_\theta$正式的参数更新表达如下:

$\theta=\theta-\beta\nabla_\theta\sum\limits_{i=1}^n\mathcal{L}(\theta"_i,\mathcal{D}^i_E)$

其中$\beta$为学习率。经过多次以上MAML迭代,模型对于任务$\mathcal{T}$的学习效率和泛化能力得到了有效提升。接下来就是使用MAML预训练的模型$f_\theta^*$,在$\mathcal{D}_T$训练集上进行微调(Fine-tune),以完成任务$\mathcal{T}$的训练。最后使用$\mathcal{D}_E$进行测试。

需要注意的是,由于上式会计算二重梯度,代码实现中第一次导数的计算与参数更新需要将计算图保留。又由于计算两次梯度会导致计算量激增,文中用一次梯度来代替,具体如何实现,懒得记录了。另外,由于MAML是增强模型对某种任务的适应能力,而不是对单个数据集的性能,所以,$\mathcal{D}_M$无需包含$\mathcal{D}_T$或$\mathcal{D}_E$中的类别,当然包含的话效果更好。比如,你有猫狗二分类任务数据集,但样本量很小,你可以先使用ImageNet对模型进行MAML,然后再使用MAML后的模型进行猫狗分类的微调。

关键词: 学习效率 完成任务 监督分类