引言:MAML是元学习的经典论文,也是基于optimization based meta-learning方法的开山之作,后序很多工作都是follow这篇工作。目前已经有13140的引用,其算法思想很巧妙,值得反复品读。
论文链接:http://proceedings.mlr.press/v70/finn17a/finn17a.pdf
Motivation:这里参考李宏毅老师的讲解,MAML的目的是找到最适合优化的初始化参数,这样在泛化到新的任务的时候,模型就能只进行少量的优化,就能达到一个比较好的性能。
MAML与传统的pretrain算法的对比:
而传统的预训练是为了找到一组在预训练的所有任务上表现得都比较好的参数。
也就是说MAML是为了使得模型具有适应新任务的潜力,而预训练更加关注模型在当前任务上的表现如何。
算法:伪代码如下:
这里参考知乎用户的回答:https://zhuanlan.zhihu.com/p/57864886
总体思想:先尝试在各个任务上只进行一步或几步梯度更新计算梯度并更新权重,然后边更新边在挡前任务的test(测试集上)测试模型的loss,循环仿佛不断的采集任务,更新,保留每个任务计算的loss。然后在见过了所有任务的loss了之后,再用第10步的公式对原本的模型参数进行更新,注意第十步是对原始的模型参数进行更新,只是使用了每个任务计算得到的loss(总体的loss是每个任务的loss之和在进行参数的更新),这样就能同时考虑所有任务的loss,使得每一个任务都能通过少量的优化之后得到较低的loss。并将这一组参数作为模型经过meta-train之后找到最适合优化的初始化参数。之后再进行meta-test。
对整个过程进行可视化,参考:https://zhuanlan.zhihu.com/p/349578874