0%

Meta-learning学习

一、与ML的比较

​ 可以从目标、步骤等方面进行比较。

​ Machine Learning的目的是寻找一个函数解决某个任务,通过一轮轮迭代更新模型参数以达到目的。常规步骤:定义一个含有未知参数的模型、定义模型的损失函数、根据损失函数使用优化器迭代模型。

​ Meta Learning则是指learning about learning。目的是使机器具有学习的能力,通过在任务A、B、C上的学习,能迅速掌握解决任务D的方法。具体的,根据李宏毅老师的课程:我们相当于要学习到一种Learning algorithm,以分类任务为例,我们可以输入二分类任务,如分类苹果和香蕉、太阳和月亮的任务,通过训练掌握Learning algorithm后可以很快解决猫猫和狗狗的分类问题。也有三个步骤:先决定what is learnable?典型的learnable component有网络框架、初始化参数、学习率等;随后定义损失函数;第三步依旧是优化器优化learnable component。在训练过程中每轮迭代解决一个训练任务,任务具有训练数据与测试数据,在训练数据上训练,损失函数定义在训练任务的测试数据上以评估该任务上训练出模型的好坏。最终meta-learning会在测试任务上进行测试,根据表现判断learnable component是否被学到了。

二、一些术语

​ 每轮训练的输入是一个training tasks, training tasks的数据分为Support set和Query set,分别用于该任务的训练和测试。一次训练成为一个Episode。

三、损失函数

Meta-learning-1

采用批量数据训练,Machine Learning的Loss是累和一个batch中所有example的预测值与Label之间的误差;

Meta Learning是一个Batch中所有task上面Loss的累和

四、Learnable component

1.Learning to initialize

经典论文Model-Agnostic Meta-Learning(MAML)

Reptile: https://arxiv.org/abs/1803.02999

How to train your MAML?

2.Optimizer
3.Network Architecture Search(NAS)

……