文章目录
What is Meta-learning doing?
元学习Meta Learning,含义为学会学习,即learn to learn,带着对人类的“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种 “学会学习” 的能力,使其可以在获取已有“知识”的基础上快速学习新的任务。
在了解什么是Meta Learning之前还是要了解一下什么是Meta。
What is Meta?
meta就是描述数据的数据。
比如照片,我们看到的是它呈现出来的数据, 即Data,但它还含有许多描述它拍摄参数的数据,比如光圈、快门速度、相机品牌等,即Meta。
对于一片博客而言,博客内容就是Data,博客的网址,标题,作者信息等就是Meta。
Motivation of Meta-learning
传统的机器学习方法是针对一个特定的,一般是有大量数据的数据集 ,试图学习出一个预测模型 ,使得模型对于测试集上的数据的预测有最小的误差。这个思路在数据集 D 有大量可得数据的情况下是行得通的。然而事实上在很多情况下,有的数据集数据量非常少,我们很难在上面直接训练出来一个有用的机器学习模型。那么这个问题如何解决呢?
也就是说,机器学习模型一般要求训练集样本量足够大,才能取得不错的预测效果。但对于人来说却不需要,对于一个从没有见过小猫和小狗的小朋友来说,给他几张照片他就能轻松的学会如何分辨两只动物。如果一个人已经掌握了如何骑自信车,那么学习如何骑摩托车对他来说会非常轻松。我们能否设计一个模型,让模型仅从一点点训练样本就能学会新的“知识”呢?即让模型“自己学会去学习”。
展开解释:从人类学习分类物体的过程来看,人类认识新的物体并不需要很多的样本作为支撑,这从某些角度说明人类在学习一个新任务的时候,比机器学习模型拥有更多的先验知识。比如说,我小的时候知道了书本是方的,杯子是圆的,那么我不光知道了如何分类书本和杯子,我还同时建立了这么一个概念:“形状不同的物体很可能不是同一类物体”。同理我有很多其它的知识,比如”颜色不同,物体不同“,”查克拉不同,物体不同“。这些知识归结起来,可以认为是规定了我 “如何去学习一个新知识” 的方法。所以很多年以后我再看到鼠标和键盘的时候,我不需要见识特别多的键盘和鼠标,只要根据以往的经验,看看颜色,看看形状,识别一下查克拉,我发现根据形状能很轻易地判断鼠标和键盘,于是我就很快知道了该如何区分这两者。所以有的人就这么想:虽然我要做的这个数据集数据很少,但是我有很多其它数据很多的数据集呀。如果模型可以先在其它数据比较多的数据集上学到这些有关“该如何学习新的知识”的先验知识,由此让模型先学会“如何快速学习一个新的知识”,岂不美哉?到这里差不多就是meta-learning的motivation了。
举个简单的例子,一个小朋友去动物园,里面有些动物他没有见过所以不知道叫什么名字,然后你给他一些小卡片,卡片上有各个动物的照片和名称,小朋友就可以自己学习,从这些卡片中找出这些动物的名字。这里的未知动物叫做query,小卡片叫做support set。培养小朋友从小卡片中自主学习就叫做meta learning。如果一个类别的小卡片只有一张,那么就叫做one-shot learning。
Comparison between Machine learning and Meta-learning
- 机器学习:通过训练数据,在输入 X 与输出 Y 之间找到映射函数 f 。
- 通过很多训练任务 T 及对应的训练数据 D ,找到函数F。F可以输出一个函数 f ,f 可用于新的任务。 也就是说,函数 F 可以找到新任务所适合的映射函数 f 。而原学习的任务就是找到这个会学习的函数 F 。 在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。 在元学习中,训练单位分层级了,第一层训练单位是任务,也就是说,元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据。也就是说,Meta learning是一种学习其它机器学习任务输出的机器学习算法。Machine learning algorithm从历史数据中学习知识,然后泛化到新的数据样本中。而meta learning是从其它学习算法(learning algorithm)的输出中学习,这就要求其它学习算法被预训练过。即meta learning算法将其它机器学习算法的输出作为输入,然后进行回归和分类预测。> Meta Learning Algorithm: Learn from the output of learning algorithms and make a prediction given predictions made by other models.如果说machine learning是如果使用信息做出更好的预测,那么meta learning就是利用machine learning的预测作出最好的预测。
How to realize Meta-learning?
首先我们先来明确一下meta-learning的目标:从多个给定的数据丰富的数据集捕捉跨数据集的总体信息(颜色,形状和查克拉很重要),从而当我们有一个新的数据较少的数据集时,可以根据其特征( 比如根据数据集的特征来看,可能得出内的分类和形状比较相关)。来利用这些从其它数据集学到的先验知识来做出判断。
然后根据解决方案的建模方法不同,meta-learning可以分为两种思路:
Reference
- 一文入门元学习(Meta-Learning)(附代码)
- 知乎:作者SleepyBag
- 一位学有余力的同学:什么是Few-shot Learning
版权归原作者 想变厉害的大白菜 所有, 如有侵权,请联系我们删除。