集成学习可结合多个学习器来提高预测性能。采用这种方法是为了解决数据集有限造成的问题。
集成学习是一种机器学习技术,它将两个或多个学习器(例如回归模型、神经网络)来生成更好的预测。换句话说,集成模型将多个单独的模型组合在一起,以产生比单独使用单个模型更准确的预测。1 有时,资料来源可能会将这种技术称为基于委员会的学习。集成学习基于这样一个原则,即学习器的集体比单个学习器产生更高的整体准确性。2 事实上,研究通过机器学习模型和卷积神经网络 (CNN) 支持其功效。
术语说明:基础学习器、基础模型以及(某些情况下的)基础估算器是指在集成算法中使用的单个模型或模型。文献进一步将基础学习器划分为强学习器和弱学习器。弱模型或学习器被定义为那些表现比随机猜测好一点的模型或学习器。对于二元分类问题,更正式地说,弱分类器是那些准确率达到大约 50% 的分类器。相比之下,强大的模型或学习器可实现出色的预测性能,在二元分类中,预测性能被正式确定为准确率等于或大于 80%。3
请注意,一些来源将弱学习器和基础学习器混为一谈,因为集成方法(尤其是顺序方法)可以有效地将弱学习器提升为强学习器。4
偏差-方差权衡是机器学习中一个众所周知的问题,也是许多正则化技术背后的激励原则。我们可以将它们定义为:
- 偏差可衡量预测值与真实值之间的平均差异。随着偏差的上升,模型对训练数据集的预测精度会降低。高偏差是指训练中的高误差。优化意味着尝试减少偏差。
- 方差可衡量给定模型的不同实现中各预测之间的差异。随着方差的上升,模型对未知数据的预测精度会降低。高方差是指测试和验证期间的误差较大。泛化是指试图减少差异。
偏差和方差分别反映了对训练和测试数据的模型准确性。5 它们是构成模型总误差率的三个项中的两个,第三个是不可约误差。第三个项表示数据集固有随机性造成的误差。总模型误差可以通过以下公式定义:6
任何一种模型训练算法都由许多变量组成,例如训练数据、超参数等,这些因素会影响后续模型的总误差。因此,即使是单一的训练算法也可以生成不同的模型,每个模型都有自己的偏差、方差和不可约错误率。通过组合多个不同的模型,集成算法可以产生较低的总体错误率,同时保留每个模型自身的复杂性和优势,例如特定数据子集的偏差非常低。7
研究表明,一般来说,组合模型之间的多样性越大,得到的集成模型就越准确。因此,集成学习可以解决过度拟合等回归问题,而无需消除模型偏差。事实上,研究表明,由不同的欠规范化模型(即过度拟合训练数据的模型)的性能优于单个正则化模型。8 此外,集成学习技术可以帮助解决源于高维数据的问题,因此可以有效地作为降维的替代方案。
文献广泛地将机器学习中的集成学习方法分为两组:并行和顺序。
- 并行方法将每个基础学习器与其他学习器分开训练。顾名思义,并行集合就是并行地、独立地训练基础学习器。
- 顺序方法训练一个新的基础学习器,使其最大限度地减少上一步训练的前一个模型所产生的误差。换句话说,顺序方法分阶段按顺序构建基础模型。9
并行方法进一步分为同质方法和异构方法。同构并行集成使用相同的基础学习算法来生成所有组件基础学习器。异构并行集成使用不同的算法来生成基础学习器。10
集成方法如何将基础学习器合并到最终学习器中?某些技术,例如 Stacking——使用单独的机器学习算法从基本学习器中训练集成学习器。但是,合并基本学习器预测的一种常见方法是投票,更准确地说,是多数投票。
多数投票考虑每个基础学习器对给定数据实例的预测,并输出最终预测,该预测由大多数学习器的预测所决定。例如,在二元分类问题中,多数投票从每个基础分类器中针对给定数据实例进行预测,并将多数派预测作为最终预测。加权多数投票是这种技术的延伸,它赋予某些学习器的预测比其他预测更大的权重。11
也许最流行的三种集成学习技术是 bagging、boosting 和 stacking。事实上,这些共同体现了顺序、并行、同质和异构类型的集成方法之间的区别。
请注意,本概述并不详尽;还有其他几种集成方法,例如混合和加权平均集合。这只是为了调查文献中一些比较突出的方法。
装袋是一种同构的并行方法,有时也称为自助法聚合。它使用给定训练数据集的修改后重复来训练具有相同训练算法的多个基础学习器。12 Scikit-learn 的 Python 集成模块包含用于实现装袋的函数,例如 BaggingClassifier。
更具体地说,装袋使用一种称为自助法重采样的技术从一个初始训练数据集获得多个新数据集,从而训练多个基础学习器。这是如何工作的?假设一个训练数据集包含 n 个训练示例。自助法重采样将该数据集中的 n 个数据实例复制到一个新的子样本数据集中,其中一些初始实例会出现不止一次,另一些则完全排除在外。这些是自助法样本。重复此过程 x 次会产生原始数据集的 x 次迭代,每次迭代包含来自初始集合的 n 个样本。然后,使用初始集的每次迭代来训练具有相同学习算法的单独基础学习器。13
随机森林是装袋的扩展,具体表示使用装袋构建随机决策树的集合。这与标准决策树不同,因为后者对每个特征进行采样以确定最佳分割。相比之下,随机森林以迭代方式对特征的随机子集进行采样以创建决策节点。14
堆叠或堆叠泛化15 是一种异构并行方法,是所谓的元学习的例证。元学习包括从多个基本学习器的输出中训练元学习器。堆叠对每个学习器使用不同的训练算法,专门训练来自同一数据集的多个基础学习器。每个基础学习器都会对未知的数据集进行预测。然后编译这些首个模型预测并用于训练最终模型,即元模型。16
请注意,使用与用于训练基本学习器的数据集不同的数据集来训练元学习器非常重要。使用相同的数据集来训练基本学习器和元学习器可能会导致过度拟合。这可能需要从基础学习器训练数据中排除数据实例,以作为其测试集数据,这些数据反过来又成为元学习器的训练数据。文献通常建议使用交叉验证等技术,以确保这些数据集不会重叠。17
与 Bagging 非常相似,Python 中的 sklearn.ensemble 模块也提供了用于实现 Stacking 技术的各种函数。
Boosting 算法是一种顺序集合方法。Boosting 有许多不同的方法,但都遵循相同的一般程序。Boosting 在某个初始数据集 d 上训练学习器,得到的学习器通常比较弱,会对数据集中的许多样本进行错误分类。与 Bagging 类似,Boosting 也会从初始数据集中抽取实例,创建新的数据集 d2。但与 Bagging 不同的是,Boosting 会优先处理来自第一个模型或学习器中分类错误的数据实例。在新数据集 d2 上训练新的学习器。然后根据 d1 和 d2 编制第三个数据集 d3,优先处理第二个学习器分类错误的样本以及 d1 和 d2 有分歧的实例。该过程重复 n 次,产生 n 个学习器。然后,Boosting 会对所有学习器进行组合和加权,得出最终预测结果。18
Boosting 算法在创建新数据集时如何确定错误预测的数据实例的优先级方面存在很大差异。有两种最突出的 Boosting 方法可以说明这一点:
- 自适应提升 (AdaBoost) 对模型错误进行加权。也就是说,在创建数据集的新迭代以训练下一个学习器时,AdaBoost 会为前一个学习器的错误分类样本添加权重,从而使下一个学习器优先考虑这些错误分类样本。
- 梯度提升在训练新学习器时使用残差。梯度残差不是对错误分类的样本进行加权,而是使用前一个模型的残差来为下一个模型设置目标预测。通过这种方式,它试图缩小一个模型留下的误差差距。19
遗憾的是,sklearn 不包含用于实现 Boosting 的预定义函数。然而,极端 Gradient Boosting (XGBoost) 开源库提供了在 Python 中实现 Gradient Boosting 的代码。
鉴于很难为培训学员获取大型、合理使用、带标签的数据集,集成学习已应用于许多领域,试图用更少的数据提高学习器的表现。例如,最近的几项研究表明,使用集成方法来完成计算机视觉任务,例如使用数据集20 的不同表示形式训练多个模型或组合多个有偏见的模型,可以提高模型的泛化性。21
尽管集成方法能够提高泛化性,但它们仍然可能会遭受不公平。在机器学习中,公平性是指尝试减轻自动化系统中的算法偏见(通常是针对少数群体),这些算法偏见通常是由使用敏感数据进行训练的学习器造成的。一些研究提出了提高集成模型公平性的指标、预处理和后处理技术。22 继续努力改善 AI 的公平性和道德实践仍然是未来研究急需的领域。
1 Zhi-Hua Zhou,“集成方法:基础和算法”,CRC Press,2012 年。
2 Gavin Brown,“集成学习”,机器学习和数据挖掘百科全书,Springer,2017 年。
3 Gautam Kunapuli,“机器学习的集成方法”,Manning Publics,2023 年。Lior Rokach,“使用集成方法的模式分类”,World Scientific Publishing Company,2010 年。
4 Zhi-Hua Zhou,“集成方法:基础和算法”,CRC 出版社,2012 年。
5 Gareth James、Daniela Witten、Trevor Hastie、Robert Tibshirani 和 Jonathan Taylor,“Python 应用统计学概论”,Springer,2023 年。
6 George Kyriakides 和 Konstantinos G. Margaritis,“使用 Python 进行实践集成学习”,Packt Publishing,2019 年。
7 Zhi-Hua Zhou,机器学习,Shaowu Liu 译,Springer,2021 年。George Kyriakides 和 Konstantinos G. Margaritis,“使用 Python 进行实践集成学习”,Packt Publishing,2019 年。
8 Peter Sollich 和 Anders Krogh,“集成学习:过拟合如何发挥作用”,《神经信息处理系统进展》,第 8 卷,1995 年,https://papers.nips.cc/paper_files/paper/1995/hash/1019c8091693ef5c5f55970346633f92-Abstract.html。
9 Gautam Kunapuli,“机器学习的集成方法”,Manning Publications,2023 年。
10 Zhi-Hua Zhou,“集成方法:基础和算法”,CRC Press,2012 年。
11 Ibomoiye Domor Mienye 和 Yanxia Sun,“集成学习调查:概念、算法、应用和前景”,IEEE Access,第 10 卷,2022 年,第 99129-99149 页,https://ieeexplore.ieee.org/document/9893798。Lior Rokach,“基于集成的分类器”,《人工智能评论》,第 33 卷,2010 年,第 1-39 页,https://link.springer.com/article/10.1007/s10462-009-9124-7。
12 M. Galar、A. Fernandez、E. Barrenechea、H. Bustince 和 F. Herrera,“类不平衡问题的评论:基于装袋、提升和混合的方法”,《IEEE 系统、人和控制论汇刊》,第 42 卷,第 4 期,2012 年,第 463-484 页,https://ieeexplore.ieee.org/document/5978225。
13 Zhi-Hua Zhou,“集成方法:基础和算法”,CRC Press,2012 年。
14 Gautam Kunapuli,“机器学习的集成方法”,Manning Publications,2023 年。
15 Robi Palikar,“集成学习”,《集成机器学习:方法和应用》,Springer,2012 年。
16 Ibomoiye Domor Mienye 和 Yanxia Sun,“集成学习调查:概念、算法、应用和前景”,IEEE Access,第 10 卷,2022 年,第 99129-99149 页,https://ieeexplore.ieee.org/document/9893798。
17 Zhi-Hua Zhou,“集成方法:基础和算法”,CRC Press,2012 年。Gautam Kunapuli,“集成机器学习方法”,Manning Publics,2023 年。
18 Robi Palikar,“集成学习”,《集成机器学习:方法和应用》,Springer,2012 年。Zhi-Hua Zhou,“集成方法:基础和算法”,CRC Press,2012 年。
19 Gautam Kunapuli,“集成机器学习方法”,Manning Publications,2023 年。
20 Devesh Walawalkar、Zhiqiang Shen 和 Marios Savvides,“使用知识蒸馏的在线集成模型压缩”,2020 年,第 18-35 页,https://link.springer.com/chapter/10.1007/978-3-030-58529-7_2。
21 Xinzhe Han、Shuhui Wang、Chi Su、Qingming Huang 和 Qi Tian,“用于稳健视觉问答的贪婪梯度集成”,《IEEE/CVF 国际计算机视觉会议 (ICCV) 会议录》,2021 年,第 1584-1593 页,https://openaccess.thecvf.com/content/ICCV2021/html/Han_Greedy_Gradient_Ensemble_for_Robust_Visual_Question_Answering_ICCV_2021_paper.html。
22 Usman Gohar、Sumon Biswas 和 Hridesh Rajan,“理解集成机器学习中的公平性及其构成”,2023 IEEE/ACM 第 45 届国际软件工程会议 (ICSE),2023 年,第 1533-1545 页,https://ieeexplore.ieee.org/abstract/document/10172501。Khaled Badran、Pierre-Olivier Côté、Amanda Kolopanis、Rached Bouchoucha、Antonio Collante、Diego Elias Costa、Emad Shihab 和 Foutse Khomh,“集成预处理算法能否带来更好的机器学习公平性?”,《计算机》,第 56 卷,第 4 期,2023 年,第 71-79 页,https://ieeexplore.ieee.org/abstract/document/10098174。Swanand Kadhe、Anisa Halimi、Ambrish Rawat 和 Nathalie Baracaldo,“FairsISA:集成后处理以提高 LLM 中忘学的公平性,”社会责任语言建模研究研讨会,2023 年,https://neurips.cc/virtual/2023/78908。