Meta-Learning:MAML

什么是元学习meta-learning

Meta-Learning:MAML_第1张图片Meta-Learning:MAML_第2张图片

一般的机器学习,由人来设计一套学习算法,然后这个算法会根据一堆样本D_train学习其中的参数。

而Meta Learning做的事情与上述描述不同的地方在于,将其中由人来设计学习方法的过程,改成了由机器来设计一套学习方法。在Meta Learning中的训练资料变为一堆D_train和一堆f的组合,由此来学习F。

再抽象点就是传统机器学习是根据资料找一个函数f的能力。而meta lerning是根据资料找一个找一个函数f的函数F的能力

Meta-Learning:MAML_第3张图片

现在大致的元学习可以分为 4 类:

  1. 基于优化的:其中最火的就是 MAML,还有之前的 Meta-LSTM 等等。
  2. 基于度量的:包括原型网络,孪生网络,匹配网络,关系网络。
  3. 基于模型的:利用 RNN 网络和外部存储来实现“记忆”
  4. 基于 GNN

meta learnig的一般过程:

一般的机器学习任务是单任务的,所以数据集是一堆训练数据,和测试数据。但是在meta learning的任务是多任务的,所以在这种情况下,我们需要做的是将很多的任务分为训练任务和测试任务,之后每一个小的任务都有训练数据和测试数据。比如说一共有十个任务,我们将其中的八个作为是训练任务,剩余的两个作为测试任务,其中每一个任务都有自己的测试数据和训练数据。以此来检测meta learning的学习能力。我们为了名字混淆,我们将每一个任务的训练数据称为support set,并且将每一个任务的测试数据称为query set。

我们先设定一个总得损失函数,就是L(F),其实就是每一个训练子任务得小loss function的总的值。之后我们用梯度下降的方法不断的更新F的参数,得到一个最好的F*,之后我们将训练好的F*放入到测试任务集中进行测试,比如第一个测试任务是一个自行车汽车识别器,我们将小的训练数据放入到F*中,之后得到一个分类器f,之后我们将该任务的测试数据放入到f中,得到最终的loss,作为这次测试的结果

Meta-Learning:MAML_第4张图片                Meta-Learning:MAML_第5张图片

 

 

MAML

下面我们重点介绍下MAML模型。

MAML本质是对模型初始化参数的优化。这个初始化参数在训练 task 上表现或许并不出色,但以这个参数为起点,去学习新的 task 时,学得会又快又好。而普通的 Learning,则是着眼于解决当前的 task,不会考虑如何面对新的 task。

MAML 专注于提升模型整体的学习能力,而不是解决某个具体问题的能力,因此,它的训练数据是以 task 为基本单位的,每个 task 都有自己独立的损失函数。训练时,不停地在不同的 task 上切换,从而达到初始化网络参数的目的,最终得到的模型,面对新的 task 时可以学习得更快。

我们用θn来表示第n个任务训练出来的初始化参数θ,ln来表示第n个任务测试集上的损失函数loss function。

如上图,Task 1 是猫狗分类任务,而 Task 2 是苹果橘子分类任务。Learning Algorithm F 即 Meta Learning 的算法,它在 Task 1 上经过训练,吐出一个分类器f1用于分类猫和狗(参数为θ1),在测试集上算出的损失为l1,在 Task 2 上又吐出一个分类器f2 (参数是θ2),损失函数是l2 。最后把所有任务的损失  ln(θn)(l1+l2)加在一起就是最后的损失函数L。

Meta-Learning:MAML_第6张图片

 

 

Meta-Learning:MAML_第7张图片

Meta-Learning:MAML_第8张图片

 

 

你可能感兴趣的:(元学习,meta,深度学习)