机器学习中的元学习是指从其他学习算法中学习的学习算法。
最常见的情况是,这意味着在集成学习领域中,使用机器学习算法来学习如何最好地组合来自其他机器学习算法的预测。
然而,元学习也可能指从业者在机器学习项目上执行的手动模型选择和算法调优过程,而现代 AutoML 算法旨在自动化此过程。它也指跨多个相关预测建模任务的学习,称为多任务学习,其中元学习算法学习如何学习。
在本教程中,您将探索机器学习中的元学习。
完成本教程后,您将了解:
- 元学习是指从其他机器学习算法的输出中学习的机器学习算法。
- 元学习算法通常指集成学习算法,例如堆叠(stacking),它们学习如何组合集成成员的预测。
- 元学习也指跨一组相关预测任务学习如何学习的算法,这被称为多任务学习。
通过我的新书《使用 Python 的集成学习算法》启动您的项目,包括分步教程和所有示例的Python 源代码文件。
让我们开始吧。

什么是机器学习中的元学习?
图片由 Ryan Hallock 拍摄,保留部分权利。
教程概述
本教程分为五个部分;它们是:
- 什么是元?
- 什么是元学习?
- 元算法、元分类器和元模型
- 模型选择和调优作为元学习
- 多任务学习作为元学习
什么是元?
元(Meta)是指更高一个级别。
“元”通常意味着将抽象级别提高一步,并且通常指关于其他事物的信息。
例如,您可能熟悉“元数据”,即关于数据的数据。
关于数据的数据通常被称为元数据……
— 第 512 页,《数据挖掘:实用机器学习工具和技术》,2016 年。
您将数据存储在一个文件中,一个常见的元数据示例是关于文件中存储的数据的数据,例如
- 文件的名称。
- 文件的大小。
- 文件的创建日期。
- 文件的最后修改日期。
- 文件的类型。
- 文件的路径。
现在我们熟悉了“元”的概念,让我们考虑这个术语在机器学习中的使用,例如“元学习”。
什么是元学习?
元学习是指关于学习的学习。
机器学习中的元学习最常见的是指从其他机器学习算法的输出中学习的机器学习算法。
在我们的机器学习项目中,我们试图弄清楚(学习)哪种算法在我们的数据上表现最好,我们可以认为机器学习算法在某种程度上取代了我们自己。
机器学习算法从历史数据中学习。例如,监督学习算法学习如何将输入模式的示例映射到输出模式的示例,以解决分类和回归预测建模问题。
算法直接在历史数据上训练以生成模型。然后,该模型可以稍后用于预测新输入示例的输出值,例如数字或类别标签。
- 学习算法:从历史数据中学习,并根据新数据示例进行预测。
元学习算法从其他学习算法的输出中学习,这些学习算法从数据中学习。这意味着元学习需要存在已在数据上训练过的其他学习算法。
例如,监督元学习算法学习如何将来自其他学习算法的输出示例(例如预测的数字或类别标签)映射到分类和回归问题的目标值示例上。
类似地,元学习算法通过将现有机器学习算法的输出作为输入并预测数字或类别标签来进行预测。
- 元学习算法:从学习算法的输出中学习,并根据其他模型做出的预测进行预测。
通过这种方式,元学习发生在机器学习的更高一个层次上。
如果机器学习学习如何最好地利用数据中的信息进行预测,那么元学习或元机器学习学习如何最好地利用机器学习算法的预测进行预测。
现在我们熟悉了元学习的概念,让我们看一些元学习算法的例子。
想开始学习集成学习吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
元算法、元分类器和元模型
元学习算法通常简称为元算法或元学习器。
- 元算法:元学习机器学习算法的简写。
类似地,用于分类任务的元学习算法可以称为元分类器,用于回归任务的元学习算法可以称为元回归器。
- 元分类器:用于分类预测建模任务的元学习算法。
- 元回归:用于回归预测建模任务的元学习算法。
元学习算法训练完成后,会产生一个元学习模型,即从数据中学习到的具体规则、系数或结构。然后,元学习模型或元模型可以用于进行预测。
- 元模型:运行元学习算法的结果。
最广为人知的元学习算法是堆叠泛化(stacked generalization),简称堆叠(stacking)。
堆叠可能是最流行的元学习技术。
— 第 82 页,《使用集成方法进行模式分类》,2010 年。
堆叠是一种集成学习算法。集成学习是指结合两个或多个预测模型预测的机器学习算法。堆叠使用另一个机器学习模型(元模型)来学习如何最好地组合贡献的集成成员的预测。
为了引导一个元分类器,首先训练基础分类器(第一阶段),然后训练元分类器(第二阶段)。在预测阶段,基础分类器将输出它们的分类,然后元分类器将进行最终分类(作为基础分类器的函数)。
— 第 82 页,《使用集成方法进行模式分类》,2010 年。
因此,堆叠集成算法被称为一种元学习,或者元学习算法。
- 堆叠:一种集成机器学习算法,它使用元学习来组合集成成员所做的预测。
还有一些鲜为人知的集成学习算法,它们使用元模型来学习如何组合来自其他机器学习模型的预测。最值得注意的是,专家混合(mixture of experts)使用一个门控模型(元模型)来学习如何组合专家模型的预测。
通过使用元学习器,这种方法试图确定哪些分类器可靠,哪些不可靠。
— 第 82 页,《使用集成方法进行模式分类》,2010 年。
更一般地,用于监督学习的元模型几乎总是集成学习算法,任何使用另一个模型来组合集成成员预测的集成学习算法都可以被称为元学习算法。
相反,堆叠引入了元学习器概念 […] 堆叠尝试使用另一种学习算法——元学习器——来发现如何最好地组合基础学习器的输出,从而学习哪些分类器是可靠的。
— 第 497 页,《数据挖掘:实用机器学习工具和技术》,2016 年。
模型选择和调优作为元学习
在历史数据集上训练机器学习算法是一个搜索过程。
构成模型的内部结构、规则或系数会根据某些损失函数进行修改。
这种搜索过程被称为优化,因为我们不仅仅是在寻找一个解决方案,而是一个能够最大化分类等性能指标或最小化预测误差等损失分数的解决方案。
这种将学习视为优化的想法不仅仅是一个有用的比喻;它是大多数机器学习算法核心执行的字面计算,无论是分析地(最小二乘法)还是数值地(梯度下降法),或是一些混合优化过程。
在模型训练之上,元学习涉及寻找一个数据准备过程、学习算法和学习算法超参数(完整的建模管道),从而在测试工具上获得最佳性能指标分数。
这同样是一个通常由人类执行的优化过程。
因此,我们可以将自己视为机器学习项目中的元学习者。
这不是该术语的常见含义,但它是一种有效用法。这涵盖了模型选择和算法超参数调优等任务。
自动化该过程通常被称为自动化机器学习,简称“AutoML”。
……用户只需提供数据,AutoML 系统就会自动确定最适合特定应用程序的方法。因此,AutoML 使最先进的机器学习方法可供对应用机器学习感兴趣但没有资源详细了解其背后技术的领域科学家使用。
— 第 ix 页,《自动化机器学习:方法、系统、挑战》,2019 年。
AutoML 可能不会被称为元学习,但 AutoML 算法可能会利用跨学习任务的元学习,这被称为学习如何学习。
元学习,或称学习如何学习,是一门系统地观察不同机器学习方法在广泛学习任务上的表现,然后从这些经验或元数据中学习,以便比其他方式更快地学习新任务的科学。
— 第 35 页,《自动化机器学习:方法、系统、挑战》,2019 年。
多任务学习作为元学习
学习如何学习是一个相关的研究领域,也被俗称为元学习。
如果学习涉及算法在任务上通过经验提高性能,那么学习如何学习就是一种跨多个任务使用的算法,它通过经验和任务提高性能。
……如果一个算法在每个任务上的性能随着经验和任务数量的增加而提高,则称其为学习如何学习。
— 学习如何学习:介绍和概述,1998 年。
学习如何学习算法不是为每个任务手动开发算法,也不是为每个任务选择和调整现有算法,而是根据一组相似的任务来调整自身。
元学习提供了一种替代范式,其中机器学习模型在多个学习情节中(通常涵盖相关任务的分布)积累经验,并利用这些经验来提高其未来的学习性能。
— 神经网络中的元学习:一项调查,2020 年。
这被称为多任务学习问题。
为多任务学习问题开发的算法会学习如何学习,并可能被称为执行元学习。
利用学习来学习或元学习来获取知识或归纳偏差的想法由来已久。
— 通过梯度下降学习如何通过梯度下降学习,2016 年。
- 学习如何学习:将学习算法应用于多任务学习问题,其中它们在任务中执行元学习,例如,学习任务中的学习。
这包括熟悉的技术,例如在计算机视觉的深度学习算法中常见的迁移学习。在这种情况下,深度神经网络在一个计算机视觉任务上进行训练,然后作为起点,可能只需要很少的修改或训练,就可以用于相关的视觉任务。
当网络从输入图像中自动提取的特征在多个相关任务中都很有用时,例如从照片中的常见物体中提取的抽象特征,迁移学习就能很好地发挥作用。
这通常在监督学习的语境中理解,即输入相同但目标可能性质不同。例如,我们可能在第一个设置中学习一组视觉类别,例如猫和狗,然后在第二个设置中学习另一组视觉类别,例如蚂蚁和黄蜂。
— 第 536 页,《深度学习》,2016 年。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
相关教程
- 使用 Python 的堆叠集成机器学习
- 如何在 Python 中使用 Keras 为深度学习神经网络开发堆叠集成
- 如何用 Python 从零开始实现堆叠泛化(Stacking)
- Keras 中的计算机视觉模型迁移学习
- 深度学习的迁移学习入门
论文
- 学习如何学习:介绍与概述, 1998.
- 通过梯度下降学习如何通过梯度下降学习, 2016.
- 神经网络中的元学习:一项调查, 2020.
书籍
- 集成方法, 2012.
- 使用集成方法进行模式分类, 2010.
- 《数据挖掘:实用机器学习工具与技术》(Data Mining: Practical Machine Learning Tools and Techniques), 2016.
- 深度学习, 2016.
- 自动化机器学习:方法、系统、挑战, 2019.
文章
总结
在本教程中,您了解了机器学习中的元学习。
具体来说,你学到了:
- 元学习是指从其他机器学习算法的输出中学习的机器学习算法。
- 元学习算法通常指集成学习算法,例如堆叠(stacking),它们学习如何组合集成成员的预测。
- 元学习也指跨一组相关预测任务学习如何学习的算法,这被称为多任务学习。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
谢谢 Jason,请问如何在 Python 中应用它,谢谢法文。
不客气。
谢谢 Jason。
元学习是否指*教机器如何使用其他方法和手段自行学习,而不是仅仅依赖数据*,因为目标是让机器像我们一样学习?
你觉得呢?
也许吧,尽管那可能是“自学习”。
非常感谢 Jason
不客气。
谢谢你,Jason。
不客气。
Jason,感谢您发布这个引人入胜的话题。我想知道您是否会展示“通过梯度下降学习如何通过梯度下降学习,2016 年”的 Keras 实现。那将有助于具体理解这个问题。
不客气。
感谢您的建议。
元学习的精彩概述和介绍!
谢谢 Junhoe 的反馈和支持!
Hi @Jason。我有一个关于元学习器使用的问题。假设我们正在构建堆叠交叉验证分类器。对于第一层,我们使用决策树和朴素贝叶斯分类器。在选择元分类器时,除了逻辑回归之外,我还可以选择其他任何分类算法吗?提出这个问题是因为我接触到的大部分文献都使用逻辑回归作为元分类器。
你好 Sriram……以下资源可能会引起您的兴趣
https://towardsdatascience.com/understanding-meta-learners-8a9c1e340832
你好
我可以在元分析中使用元学习方法吗?
你好 fereshteh……以下资源可能会引起您的兴趣
https://www.analyticsvidhya.com/blog/2022/09/meta-learning-structure-advantages-examples/
你好,
元学习和迁移学习是一回事吗?
你好 Barsha……它们是不同的。迁移学习在这里解释
https://machinelearning.org.cn/?s=transfer+learning&post_type=post&submit=Search