#Paper Reading# Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
论文题目: Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks论文地址: http://proceedings.mlr.press/v70/finn17a论文发表于: ICML 2017(CCF A类会议)论文所属单位: OpenAI论文大体内容:本文主要提出了与模型无关的Meta Learning框架,能够用于有效解
论文题目: Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
论文地址: http://proceedings.mlr.press/v70/finn17a
论文发表于: ICML 2017(CCF A类会议)
论文所属单位: OpenAI
论文大体内容:
本文主要提出了与模型无关的Meta Learning框架,能够用于有效解决few-shot learning下的分类、回归、强化学习等问题。
Motivation:
传统的few-shot做法不够好,因此作者提出MAML来优化;
Contribution:
提出了与模型无关的Meta Learning框架,使得在新任务上实现fast adaptation
1. MAML的过程可以看作是最大化loss function的敏感度,敏感度高时,小更新也会导致loss大幅提升。
2. 作者提出的元学习算法与专门为监督分类而设计的one-shot学习方法相比具有优势,同时使用的参数更少,它也可以轻松地应用于回归并可以加速强化学习在存在任务可变性的情况下,其性能远胜于预训练作为初始化。
3. MAML学习一个好的初始化权重(预训练,产出 M_meta 模型),从而在新任务上实现fast adaptation,即在小规模的训练样本上迅速收敛并完成fine-tune[1]。
预训练学习的伪代码(M_meta 模型)如下:
4. 如上伪代码,MAML中对数据划分为support set与query set,梯度更新是分为2轮(gradient by gradient)。假定模型是M,第一轮是复制出模型M',用support set更新M'的参数;support set计算完后,使用query set的数据去进行第二轮更新。
两轮更新的区别是:
①数据集不一样,第一轮是support set,第二轮是query set,目的是增强模型在task上的泛化能力,避免过拟合support set;
②第一轮使用每个task的loss分别去更新梯度,而第二轮使用的是loss总和;
5. 上面训练的 M_meta 模型只是一个基底模型,而MAML还需要对新任务进行fine-tune(类似transfer的过程),主要过程如下[1]:
①fine-tune使用 M_meta 进行初始化参数;
②fine-tune同样使用task中的support set训练模型,query set测试模型(只进行1轮梯度更新,没有第2轮);
6. 在不同任务下的MAML伪代码:
实验
本文的实验需要证明下面3个问题:
①新的task是否能快速学习(冷启动);
②MAML框架是否具有通用性,能否适合分类、回归、强化学习等问题;
③MAML是否有效;
7. 实验结果
①回归任务
②分类任务
③强化学习任务
8. Meta-Learning以及底下的分类:
Meta-Learning = Learning to learn
①MAML
②Lifelong Learning
③Active Learning
④多任务学习
⑤迁移学习
(i)Zero-shot Learning:对于训练集中没有出现过的类别,能自动创造出相应的映射 X -> Y
(ii)One-shot Learning = Few-shot Learning:训练集中,每个类别都有样本,但都只是少量样本
参考资料:
[1] 论文伪代码详细解读 https://zhuanlan.zhihu.com/p/57864886
[2] https://github.com/cbfinn/maml
[3] https://github.com/cbfinn/maml_rl
以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!
更多推荐
所有评论(0)