0. 摘要
MAML学习一个好的网络初始化参数,期望在新任务上可以快速泛化。
1. 动机
学习一个网络初始化参数,能够快速泛化到新任务上。
2. 方法
α
\alpha
α是base-learner的学习率;
β
\beta
β是meta-learner的学习率。
- 随机初始化元学习参数 θ \theta θ
- while循环迭代
- 采样一个批次的任务 T i \mathcal T_i Ti
- 对于每一个采样任务
- 计算K个训练样本下,任务 T i \mathcal T_i Ti的梯度
- 用 θ \theta θ初始化网络参数,然后用梯度下降法更新base-learner参数为 θ ′ \theta' θ′
- 对于每一个采样任务
- 计算所有任务测试集上的损失,根据梯度下降更新meta-learner的参数 θ \theta θ。
- 结束循环
3. 实验
4. 分析
MAML只是学习一个初始化参数,限制是所有任务使用同样的网络结构和更新规则。
MAML用的网络是浅层网络,为了不在小样本上过拟合。
5. 讨论
-
pre-train为什么只走一步?pre-train也走两步,不就是reptile?
tianyu的解释:pre-train只能走一步吧 他只是在一个大的数据集上预训练 本质上就是个train 怎么走两步 -
如何理解MAML、Reptile、Pre-train走一步,走两步?