最近开始研究元学习,目前正在从2020年的两篇综述入手,争取对元学习的概念、研究现状等内容有一个初步的认识。这里,简单记录一下自己的阅读笔记,供大家参考学习,不足之处欢迎指正。
参考论文:
1. Huisman, Mike, Jan N. van Rijn, and Aske Plaat. "A Survey of Deep Meta-Learning." arXiv preprint arXiv: 2010.03522.
2. Hospedales, Timothy, et al. "Meta-learning in neural networks: A survey." arXiv preprint arXiv:2004.05439.
目录
1 为什么研究元学习?
2 什么是元学习?
2.1 回顾传统的机器学习
2.1.1 公式化定义
2.2 元学习的概念和定义
2.3 元学习的流程和公式化定义
2.4 与相关研究领域对比
3 方法分类Taxonomy
3.1 Taxonomy1: Metric, Model, Optimization-based Methods
3.2 Taxonomy 2: Meta-Representation, Meta-Optimizer, Meta-Objective
3.2.1 Meta-Representation
3.2.2 Meta-Optimizer
3.2.3 Meta-Objective
4 元学习的应用
5 现有问题和挑战
6 总结
7 参考文章
虽然深度学习在很多领域都取得了非常大的成功,但是也具有非常明显的局限性:(1)训练深度学习模型往往需要大量的数据; (2)深度学习训练和计算需要大量的计算资源。这些因素导致深度学习在在数据很难获得,或者计算资源不足的场景下捉襟见肘。
近年来,虽然人工智能得到了快速的发展,但是仍与人类智能有着明显的差距,主要体现在:(1)人类能够基于先验知识或经验,快速的学习新的任务和领域知识,并不断强化自身的学习能力,而人工智能模型则很难实现“learning to learn";(2)此外,人类往往能够快速的、从少量样本中学习到新的知识并将其泛化到其它样本/领域,而人工智能模型则需要对大量的有监督样本进行学习才有可能保证其泛化性。
元学习(Meta learning,也叫Learning to learn)的目的就是为了解决这一问题,即:在学习的过程中不断强化模型的学习能力,以更好的的应对将来的任务。
A meta learning model gains experience over multiple learning episodes - often covering a distribution of related tasks - and uses the experience to improve its future learning performance. It aims to provide the next step of integrating joint feature, model, and algorithm learning.
Meta-learning: Learning to learn, in principle, it aims to learn meta-knowledge that can be used to learn new tasks more quickly.
元学习,也叫“Learning to learning”,即:学习元知识(meta-knowledge),使其能够快速的应用于新的task。在介绍元学习的具体内容之前,首先要理解两个概念:(1)什么是元知识;(2)什么是一个任务Task。
接下来,在介绍这两个概念之前,我们先回顾一下传统的机器学习过程。
Contemporary machine learning is the process of improving model predictions over multiple data instances for a specific task.
传统的机器学习的主要目的是:针对一个特定任务,训练一个模型,使其对属于该任务的其他样本具有很高的准确性和泛化性。
给定一个任务,该任务对应的数据集为,在其上训练一个模型
,参数为,满足:
。其中,
为损失函数,度量真实标签
与
之间的距离。
,表示与决定“如何学习”相关的一些条件因素,即:how to learn。常用的
包括:
训练结束后,再i使用一些从未出现过的数据作为测试集,测试模型的泛化能力。
在传统的机器学习中,优化过程通常是从i头开始学习,并且需要预先指定如何去学习("how to learn"),即。而与之相对的是,meta-learning的目标是learning "how to learn",即:学习到最好的
,而不是预先指定
。
到此,我们也了解了meta-knowledge和Task的基本概念,并对传统的机器学习和元学习,以及二者之间的差异有了初步的认识。
元学习的主要目的是:通过学习“how to learn”来提高模型性能。换句话说,即:学习到最优的元知识,使其能够学习到一个通用的学习器,该学习器能够更快、更好的泛化并应用到其他新的任务。
元学习的目标函数:设表示一组任务的概率分布,定义一个任务
由一个数据集和一个损失函数组成,记为
, 那么元学习的目标可以表示为:
其中,代表元知识,即"how to learn"。一个好的
能够在inner-level快速的对一个新任务进行学习。
Machine Learning VS Meta Learning
|
如下图所示,元学习包括两个阶段:Meta-training和Meta-testing。
step1: 随机初始化w step2: while not done: (a) Sample a batch of training/source dataset (b) For 基于w,在训练集上训练得到最优的 End For (c) 基于每个 End while |
Meta learning vs Transfer learning:迁移学习将在一个Source Task上的获得学习经验(如:初始化参数,特征提取器等)迁移到另一个Target task, 以提高模型在Target Task上的学习性能(包括:速度,准确率等)。Meta Learning和Transfer Learning有一定联系,但是不完全相等。二者的主要区别在于看待问题的角度。迁移学习强调对某一具体任务进行学习;而元学习的主要目的是学习meta-knowledge,通过学习“how to learn”来提高模型性能,使其能够更快、更好的泛化并应用到其他的新任务。而与Meta Learning相比,迁移学习不一定总会具有meta-objective。
Meta learning vs Domain adaptation/Domain generalization:Source和Target任务可能存在Domain-Shift(即:二者的分布会存在差异),在迁移过程中会影响模型的性能。Domain adaptation是迁移学习的一个变体,用来减少将source任务中训练的模型迁移到target任务中,因为domain-shift所带来的影响。Domain generalization的目标是选择一个模型,该模型具有domain-shift不变性。二者与Meta-learning的区别都在于没有meta-objective。
Meta Learning vs continual/lifelong learning:持续学习/终身学习指的是从潜在的非平稳分布中提取一系列任务进行学习的能力,特别是在加速学习新任务和不忘记旧任务的同时进行学习。其强调的重点是使用一个模型,应对过去的和将来的所有任务。然而,大多数持续学习方法并不是元学习方法,因为没有明确的解决meta-objective。并且,元学习关注的是在学习的过程中不断强化学习的能力,它会为每个任务使用一个对应的模型。(源自李宏毅视频课中的解释)
Meta Learning vs Multi-task learning:多任务学习的目的是:联合训练一个模型,使其在多个固定任务上表现良好。而元学习的主要目的是训练一个模型,能够快速的学习新的任务。
Meta Learning vs Hyperparameter Optimization (HO):严格来说,超参数优化(hyperparameter optimization)侧重学习率、网络架构等参数的设计,HO属于meta-learning的一个应用场景。
Meta Learning vs Hierarchical Bayesian Models (HBM):从生成模型的角度,为meta-learning提供了一个看问题的角度
Meta Learning vs Auto ML:Auto ML涵盖了相当广泛的内容,只要是能够使得传统机器学习算法中手工操作的部分更自动化的方法都被包含在内,例如:数据准备和清洗工作,特征选择,算法选择,调参,架构选择等。因此,元学习属于AutoML的一个特例。
两篇综述从不同的角度对现有的元学习方法进行分。
《A Survey of Deep Meta-Learning》将元学习方法分为三类,分别为:Metric-based Methods, Model-based Methods和Optimization-based Methods。
《Meta-learning in neural networks: A survey》将元学习问题拆解为三各部分,即:如何定义meta-representation;如何选择meta-optimizer;确定元学习的目标。并从这三个部分对不同的方法进行归类和整理。
下面将分别对两篇综述中定义的分类方法进行相应的介绍。
如下图所示,《A Survey of Deep Meta-Learning》将元学习方法分为三类,分别为
《Meta-learning in neural networks: A survey》一文中将Meta-Learning问题拆解为三个基本问题:
围绕这三大基本问题,可以对近年来元学习领域出现了诸多研究成果进行分类。下图给出了元学习的研究框架:
有了元表征之后,下一步便是决定如何进行元优化。
设定好元表征和元优化器后,最后一步便定义是元学习的学习目标,将内层学习和外层学习相关联起来。
元学习很多场景下都有着广泛的应用。
元学习作为机器学习的一种学习方法,可以和绝大多数的机器学习问题和相关领域进行结合,碰撞出不一样的火花。
元学习在近些年来得到了长足的发展,但是仍有很多问题亟待解决,这两篇文献都是对现有方法进行了总结和分类,并为未来的研究指明了一个方向。