元学习 (Meta Learning - MAML)
通常在机器学习里会使用某个场景的大量数据来训练模型;然而当场景发生改变,模型就需要重新训练. 元学习Meta Learning,含义为学会学习,即learn to learn. 它希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,如:
- 让Alphago(围棋)迅速学会下象棋
- 让一个猫咪图片分类器,迅速具有分类其他物体的能力
虽然同样有“预训练”(让网络具有一些先验知识)的意思在里面,但是元学习的内核区别于迁移学习(Transfer Learning)
Purpose | Input | Function | Output | Flow | |
---|---|---|---|---|---|
Machine Learning | 通过训练数据, 学习到输入X与输出Y之间的映射, 找到函数f | X | f | Y | 1. 初始化f参数 2. 喂数据 3. 计算loss,优化f参数 4. 得到: y=f(x) |
Meta Learning | 通过(很多)训练任务T 以及 对应的训练数据D, 找到函数F. F可以输出一个函数f, f可用于新的任务 | (很多)训练任务T 以及 对应的训练数据D | F | f | 1. 初始化F参数 2. 喂训练任务T 以及对应的训练数据D, 优化F参数 3. 得到: f=F(x) 4. 新任务中: y=f(x) |
- 在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集
- 在元学习中,训练单位分层级了,第一层训练单位是任务,即元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据
- 二者的目的都是找一个Function,只是两个Function的功能不同,要做的事情不一样
- 机器学习中的Function直接作用于特征和标签,去寻找特征与标签之间的关联
- 而元学习中的Function是用于寻找新的f,新的f才会应用于具体的任务