目录
-
背景 -
Meta-Learning的数据划分 -
MAML算法 -
MAML的思考 -
参考
背景
咱们知道如今深度学习在使用大型数据集掌握一项任务(检测,分类等)方面取得了巨大的成功,但这并非真正咱们追求的“人工智能”。具体来讲,咱们可能训练了一个能作物理题很高分的学生,可是他也只能作物理题而已,面对数学题他只能吞下零分的命运;其次,在面对新的任务(数学题)的时候,咱们的学生仍然须要大量的数据(数学题)进行训练,而在学习物理的时候积累下的学习方法(先验知识)却基本帮不上忙。web
以上的问题能够抽象为一个具体的问题:如今的深度学习每每只是在学习某一类特定的任务,而不是在学习自身“学习”的能力,这也是Meta-Learning的定义:学习如何学习的能力,而不是学习具体的某一个任务。假如咱们的算法学会了怎么学习,当面对一个新的任务的时候,有了学习能力(先验知识)就能够只用少许的数据进行快速的学习,而这种学习如何学习的方式才是真正的“人工智能”。算法
Meta-Learning 的算法有不少,有些算法能够针对不一样的训练任务,输出不一样的神经网络结构和超参数,例如 如今很火的 Neural Architecture Search (NAS) 和 AutoML。本文主要介绍另一种Meta-Learning算法:MAML,它不改变深度神经网络的结构,只改变网络的初始化参数。微信
Meta-Learning的数据划分
首先我先用一段不严谨的语言描述一下Meta-Learning:咱们假定传统的深度学习算法是给100道化学题让他学会作化学题(再用50道化学题进行测试),MAML算法则是用5道数学题,5道语文题,5道物理题来让算法学会作5道化学题,具体来讲先经过5道数学、5道语文、5道物理题来让算法掌握学习的能力(分别用2道数学、2道语文、2道物理题来验证学习效果),而后再给一点点化学题(5题)训练就可让算法掌握化学题的作法。若是说传统深度学习是在学习一个任务,那么MAML则是在遍历多个任务后找到一组敏感的参数,在新任务到来的时候帮助模型利用这组参数快速地将先验知识转移到新任务上。天然地,Meta-Learning的数据集确定不是像传统DL那样简单划分为训练集和测试集:如上图所示,在Meta-Learning上,咱们再也不直接叫train和test了,而是叫Meta-train和Meta-test。在上图中,每一行都是一个task(例如数学题、物理题),包含了task的train set和test set,图中展现就是所谓的5way 1shot 设定,也就是一个task包含5个类,每个类一个训练样本,而后给你2个测试样本测试。咱们能够把每个task当作一个Meta-Learning的训练样本。咱们要经过多种task的训练,从而在Meta-test的时候也就是在新的task上取得好效果。出于习惯,咱们把meta-training中的training data叫作support set、test set叫作query set。网络
这部分主要是掌握Meta-Learning的数据集是如何划分的便可,具体MAML的细节下一部分会具体阐述。编辑器
MAML算法
MAML算法主要分红三步:学习
-
(1) 采样任务数据:首先会从meta-training里面采样一个batch size的training data,好比batch size为3的时候咱们就会随机采样3个任务的数据(好比作数学题,作物理题,作语文题)。 -
(2) 计算梯度和参数:对 training data 中每个 task 以及其对应的 label 计算属于每一个 Task 的 gradient 与更新后的 model 参数。(这里是 第一次计算梯度) -
(3) 更新模型:当有了每一个 task 利用 training data of meta-train(即support set)获得的新模型参数后,能够利用test data of meta-train(即query set)验证,並且加总全部任务的loss,对本来模型参数(注意不是对第一次求的梯度参数)微分并真正的更新一次参数。( 第二次计算梯度)
MAML的思考
整个算法的流程仍是比较简洁的,读者可能会以为为何不和往常同样计算一次梯度就行了,为何要算两次,个人理解是:对于一个有不少任务要学习的模型,咱们要优化这个模型,第一个想法多是找到一个点(参数空间上)让全部的任务在这个点是最优解,听起来很强,但想一想都以为很困难,平时咱们训练单一任务SGD找最优解都要迭代那么久,怎么可能一会儿就能够找到一个点是全部任务的最优解?因此MAML把问题转换为找到一个点,让这个点距离各个任务的最优解最近,让这个点只须要简单地梯度降低一次就能够找到最优解,显然这种想法更加的科学。回到咱们一开始的例子:咱们想在计算机视觉漫谈公众号发掘一位有考上清华潜力的全才,只计算一次梯度的想法至关于我先在这些人里面找语文满分的,而后在语文满分的中找数学满分的,再在数学满分里面找英语满分的……,这确定很难。而计算两次梯度的想法至关于我在全部关注计算机视觉漫谈公众号中的人中找到很聪明的那个,这我的不必定语文第一名,但他很聪明,全能型选手,学啥都很快很好,显然经过第二种方法更能挖掘出一位有考上清华潜力的全才。测试
另外有接触过迁移学习的同窗可能会以为元学习和迁移学习很像,在个人理解上二者其实没有明显的界限,这里引用王晋东博士的话:你能够说元学习是强调从不一样的若干小任务小样原本学习一个对未知样本未知类别都有好的判别和泛化能力的模型,但其实你想一想,难道这不就是知识迁移吗?从迁移上来看,你能够说学习一个可迁移的特征或模型,能够从A迁移到B。但这些能够被迁移过提纯的东西,难道不能被叫作元知识吗?因此实际上是异曲同工的,都应该一块儿联系起来看。优化
参考
-
(1)论文:https://arxiv.org/pdf/1703.03400.pdf -
(2)Chelsea Finn ‘s blog https://bair.berkeley.edu/blog/2017/07/18/learning-to-learn/
本文分享自微信公众号 - 计算机视觉漫谈(gh_41e38694bc19)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。人工智能