目录
2.1 Define a set of learning algorithm
2.2 Defining the goodness of a function F
2.3 Data sets for meta learning
3 Summary of the process of meta learning
4 Omniglot: Few-shot Classification
8 The difference between pre train, MAML and replile
0 Write on the front
Meta Learning翻译为元学习,本篇文章主要讲解什么是Meta Learning,元学习研究小白,若有不对,请各位大佬批评指正。
1 What is meta learning?
《强化学习-什么是强化学习?白话文告诉你!》《强化学习-你在游戏中对战的人机是如何对付你的!》这两篇主要讲了强化学习的内容,那么元学习又是什么呢?它和传统的强化学习或者说跟传统的机器学习又什么不一样的地方呢?
若我们把训练模型比喻成在学校学习,传统的机器学习学习的任务对应的是每个科目上分别训练一个模型,以后再碰到相同科目的东西,这个模型就能解决这个问题了。
但是元学习是培养学生的学习能力,即让学生学会学习,让学生以后碰到任何问题都能自己想办法学习它,给出模型,从而解决它。
那么在学校中,有很多同学会偏科,也有一些学霸,各科成绩都很好。
这是说的什么意思呢?
各科成绩好说明学生“元学习”的能力强。学会了如何迅速适应不同科目的学习特点,从而能够迅速学习,拿到不错的结果。
有偏科现象说明“元学习”能力比较弱,不会举一反三。
那么现有的大多是算法,都属于“偏科”的,一个算法在一个场景下得到的结果比较好,但是稍微换一个任务,就凉凉了。这显然在某些场景下是不好的。
传统的方法都是learning from scratch,一股脑的训练下去。
元学习是基于不同小任务样本来进行学习,以致于对不同类型的任务,它都能处理得更好。
2 Meta Learning
meta learning的核心就是让机器学会学习(learn to learn)
假如我们的机器之前学习了100个task,之后机器学习第101个task的时候,会因为之前学习的100个task所具有的学习能力,而让第101个task表现得更好。
什么意思呢,例如第一个任务是语音识别,第二个任务是图像识别,第一百个任务是文本分类,机器会因为之前所学到得任务,在处理第101个任务的时候(假如是商品分类)会因为前面100个任务积累的经验而表现的更好。
你可能问,这个和life long learning有什么区别吗!
相同之处是life long learning和meta learning都是要根据以往的task,希望对现在的task有所帮助
不同之处是但是meta learn所要求的是学习新的task时候有新的model,但是life long learning始终是一个模型。
传统的机器学习流程是:我们有多训练数据,经过学习算法,得到一些参数,这些参数实际上就是一个model(也就是上图中的f*),这个model就可以解决我们的问题了。
meta learning方法是:依旧给模型很多训练数据,我们将Learning Algorithm当作是一个F(function),我们需要F做的事生成另一个f(function),而这个f可以用来实现具体的任务(比如说影像识别)。我们meta learning的方法就是找到这个F。
machine learning和meta learning都是要找一个function,但是两者所要寻找的function是不相同的,前者寻找的是解决一个问题的f,后者寻找的是生成f的F。F的输入是训练数据,输出是解决一个小问题的f。
机器学习的方法可以简单理解为三步:
(1)找到一个f的集合 。(2)找到一个判别f的方法(loss function)。(3)在这个集合中寻找最好的f。
meta learning的方法也是三步:
(1)找到一个learning algorithm的集合。(2)之后寻找到一个判别learning algorithm好坏的方法 。(3)最后得到一个最好的learning algorithm做为F。
2.1 Define a set of learning algorithm
那说了这么多,具体的是哪些东西是meta learning具体做的事情呢?请看下图:
首先,我们先来搞清楚一个learning algorithm set是如何成型的。
传统的机器学习中:
先是定义了一个神经网络结构,之后初始化参数值,之后根据训练数据计算梯度,更新参数,最后得到最优的参数。
这个过程是我们机器学习的过程。在这