集成学习研究现状及展望
2023-04-24罗常伟王双双尹峻松朱思宇
罗常伟 王双双 尹峻松 朱思宇 林 波 曹 江
1.军事科学院战争研究院 北京 100091 2.清华大学电子工程系 北京 100084
当前人工智能技术在军事领域的应用日趋广泛,在目标侦察、航路规划、辅助决策等方面已经发挥重要作用[1-2]. 以目标侦察为例,无人机、侦察卫星获取地面图像后,传统作业方式需要人工读图,确定地面目标的位置和类型. 人工读图费时费力,使用智能目标侦察手段后,可以由机器进行判读,显著提升作业效率. 在指挥控制领域,人工智能技术对威胁分析、态势感知、火力筹划、方案推演、打击效果评估、物资调度、身份识别等方面也具有应用价值.
机器学习是人工智能技术的重要基础,也是学术界和工业界的研究热点. 常用的机器学习模型包括逻辑回归、朴素贝叶斯、决策树、支持向量机、多层感知器、深度神经网络等. 单个机器学习模型用于分类或回归任务时,由于模型复杂度或训练数据的限制,其性能往往达不到要求. 集成学习则通过已有机器学习模型的集成组合,能够进一步提升性能. 在机器学习竞赛平台Kaggle 上,集成模型也是研究人员最常用的竞赛模型. 文献[3]对传统的集成学习方法进行了总结. 随着多核学习以及深度学习的发展,集成学习的研究有了很大进步. 本文结合集成学习的最新研究成果,对集成学习的理论和方法进行了全面总结分析,并对技术发展趋势进行了展望.
1 集成学习的概念
人们在进行重大决策前(如选择就业单位、进行重大投资等),通常会多方咨询专业人士的意见,并综合这些意见作出最终的决策. 集成学习就是模仿这种行为,通过机器学习模型对同一个问题进行多次学习,得到多个基模型(也称为基学习器,base learner),并通过一定的方法对这些基模型进行集成组合,得到集成模型. 集成模型在性能上超过其中的任何单个基模型.
HANSEN 等在1990年提出了集成学习的概念,通过组合多个相似的神经网络,显著降低了分类器的泛化误差[4]. 此后,FREUND 等提出了Adaboost 算法[5],将多个弱分类器组合成强分类器,且不需要弱分类器的先验知识.Adaboost 在机器学习领域得到很大关注. BREIMAN 提出了bagging 集成学习方法以及随机森林算法[6-7],对集成学习的发展产生了深远影响. 近年来,研究人员将集成学习的方法应用于深度神经网络,显示了深度神经网络集成模型的良好性能[8-9].
2 集成学习的理论
集成学习的理论是确保集成学习有效性的前提.集成学习研究的问题包括集成回归、集成分类这两类问题. 回归问题通常处理连续目标变量,而分类问题则处理离散目标变量. 研究人员分别对集成回归模型、集成分类模型的有效性进行了理论分析.
2.1 集成回归模型
bias-variance 分解[10]是一种解释集成回归模型有效性的理论,其基本思想是将泛化误差分解为偏差和方差,通过考察集成学习降低偏差和方差的能力来解释集成学习的有效性. 在bias-variance 分解的基础上,对方差作进一步分解,可得到bias-variancecovariance 分解[11]. 在回归模型中,通常使用均方误差来评价模型的回归精度. 令t 表示回归目标值,fi为第i 个基模型的输出,为集成回归模型的输出,则均方误差可分解为:
其中,N 为基模型的数量,E[fi]表示期望值. 从式(1)可以看到,bias2和var 为非负值,而covar 能够取负值. 当bias2和var 保持不变时,减小covar 能够使得均方误差减小. 同时,增大基本模型的数量N,能够减小var 的权重,并提高covar 的权重. 可见,只要训练多个相关性较小的基模型,通过组合就能得到均方误差更小的集成模型.
2.2 集成分类模型
bias-variance 分解也被应用于解释集成分类模型的有效性,但对于分类问题,由于类标签的离散型性,使得bias-variance 分解对于分类模型的解释并不直观[12]. 此外,研究人员还提出了margin 理论,能够很好地解释boosting 等集成算法的有效性[13-14]. margin 理论认为,在训练样本的数量和基本模型的复杂度保持不变的情况下,集成模型在训练集上的margin 分布的平均值越大,方差越小,其泛化误差越小.因此,可以通过最大化margin 分布的平均值、最小化margin 分布的方差设计集成模型.
以二分类问题为例,记样本的特征为x,类标签为y,y∈[-1,+1]. 当采用多数投票规则集成时,集成模型在第j 个样本(xj,yj)上的margin 定义为
表1 给出了一个二分类集成模型的示例,其中集成模型包含3 个基分类器. 基分类器的分类准确率均为60%,即对于5 个样本,每个基分类器能对其中3 个样本作出正确分类,具体分类结果如表1 所示. 使用多数投票规则集成,则可计算得到集成模型的准确率为80%. 集成模型的margin 均值为0.6,方差为0.8. 如果其他条件不变,仅第3 个基分类器的分类结果发生变化,如表2 所示,则集成模型的准确率变为60%,与基模型一致,并没有分类效果的提升.此时集成模型的margin 均值为0.6,方差为2.8. 可见,在margin 平均值相同情况下、margin 方差越小,集成模型的准确率越高.
表1 二分类集成模型的margin 分布示例1Table 1 Example 1 of margin distribution for binary classification and integration model
表2 二分类集成模型的margin 分布示例2Table 2 Example 2 of margin distribution for binary classification and integration model
对于二分问题,如果N 个分类器互相独立,每个基分类器的分类准确率为p,采用多数投票法进行集成,则根据二项式分布可计算得到集成模型准确率为
可以证明,p>0.5 时,不论基分类器数量N 为奇数或偶数,accuracy_rate 都是随着N 增大而单调递增[4],在极限情况下,集成模型的准确率为100%. 在实际问题中,基分类器很难做到互相独立,因此,准确率低于理论值.
3 集成学习的多样性
从上述理论可以看出,集成模型的性能取决于基模型的数量、基模型的性能、集成策略、基模型之间的关系. 基模型之间的关系主要是指基模型的多样性(diversity). 多样性是影响集成模型性能的关键因素[15-16]. bias-variance-covariance 分解是在回归问题的前提下推导出来的,不适合描述分类情况下的多样性. margin 理论也未阐释margin 分布与多样性的关系. 目前多样性没有统一的定义. 文献[15]比较了多样性的几种度量方法. 研究表明,直接优化这些多样性的度量指标并不能保证集成模型获得更好的性能. 现有集成学习主要采用启发式方法,从数据的多样性、模型参数的多样性、模型结构的多样性等方面提升基模型之间的多样性.
1)数据的多样性. 主要采用以下几种方式增加数据的多样性: 一是在数据集中,通过有放回的重采样,生成若干不同的训练集,分别用于训练不同的基模型. 二是通过在特征空间中选取不同的特征子空间,训练不同的基模型. 三是在样本中增加随机噪声或使用人造数据.
2)模型参数的多样性. 在训练过程中,可设置不同的训练参数,或者给定不同的初始值,从而训练得到不同的模型.
3)模型结构的多样性. 一是对于同类型的基模型,可以改变模型的复杂度. 二是直接集成不同类型的基模型.
4 集成学习的主要方法
集成学习的主要方法包括bagging、boosting、stacking、多核学习、集成深度学习等几类方法.
4.1 bagging 方法
bagging 是bootstrap aggregating 的缩写,该方法是最早提出的集成学习方法之一[6]. 该方法通过有放回的从数据集中采样,形成不同的训练子集,用于训练相应的基模型. 同一个样本可能会出现在几个不同的训练子集中. 基模型训练好之后,可以通过简单求平均、加权求平均、绝对多数投票法、相对多数投票法等方式进行集成. bagging 方法的基本流程如图1所示,其重要特点是能够对基模型进行并行训练. 目前,已有很多针对bagging 的改进方法[16]. 文献[17]针对训练子集选择随机性的问题,提出了增强的bagging,在决策树、支持向量机、朴素贝叶斯等模型集成时,取得了较好的分类效果. 文献[18]提出了邻域均衡bagging 方法,显著提高了非均衡数据的分类性能.
图1 bagging 方法基本流程Fig.1 Basic flow of bagging method
随机森林是bagging 方法的另一种重要的进改形式. 随机森林不仅使用bagging 方法抽取样本,还使用随机特征子空间进行分类树或回归树的训练. 随机森林在很多机器学习方法中得到了很大关注,研究人员也提出了很多改进的随机森林[19-26]. 文献[20]提出基于旋转的方法增加树的多样性,从而提高随机森林的精度. 文献[21]提出的概率随机森林,能够提升回归结果的精度和稳定性. 文献[25]对随机森林的参数对性能的影响进行了分析. 文献[26]对收敛性进行了评估分析. 可见,关于随机森林的研究仍然很活跃.
4.2 boosting 方法
boosting 是一类增强集成学习方法,每个基模型都在尝试增强集成模型的效果. boosting 方法的基本流程如图2 所示. 从初始训练集中训练一个基模型.基模型对不同的训练样本有不同的预测结果. 对于预测错误的样本,增加其权重后,再训练下一个基模型. 重复上述过程,直至基模型的数量达到上限. 最后将所有基模型进行加权. 典型的boosting 方法是Adaboost[5].Adaboost 使用指数损失函数训练弱学习器,通过线性组合一组弱学习器得到强学习器,弱学习器通常是深度为1 的决策树. Adaboost 已经有很多改进的版本,如增加了空间推理的SpatialBoost[27],以及针对回归问题的gradient boosting[28]. XGBoost、LightGBM都包含gradient boosting 的算法改进及工程实现[29-30],可用于分类和回归问题,能有效应对于大规模的训练数据和高维的特征,在数据挖掘和机器学习领域得到较为广泛应用.
图2 Boosting 方法基本流程Fig.2 Basic flow of boosting method
4.3 stacking 方法
stacking 是一类堆叠集成算法[3,31]. 通常是先利用bagging 方法生成一组基模型,然后将基模型的输出作为输入,训练另一个机器学习模型(称为元模型,meta model),从而将基模型进行集成组合,如图3 所示. 如果直接使用基模型的训练集来产生元模型的训练集,则很容易出现过拟合问题. 因此,通常采用交叉验证的方法训练基模型,并由此生成元模型的训练集. 基模型可以是非同质的,元模型通常选择比基模型更为简单的机器学习模型. 文献[31]使用随机森林、均衡bagging、支持向量机等作为基模型,逻辑回归最为元模型进行集成. 由于人工选择基模型、元模型难以达到最优性能,文献[32]提出一种遗传算法优化stacking 集成模型的结构. 文献[33]使用蚁群算法来选择基模型和元模型. 针对非均衡分类问题,文献[34]提出一种基于邻域欠采样的堆叠集成算法,根据局部邻域信息选择大类的样本形成数据子集.
图3 stacking 方法基本流程Fig.3 Basic flow of stacking method
4.4 多核学习
多核学习是机器学习领域的一个新的热点问题[35]. 核方法是解决非线性机器学习问题的有效方法. 由于数据异构,特征类型的差异、样本分布不规则等原因,单个核函数构成的机器学习模型并不能满足应用需求. 将多个核函数进行集成组合,能够获得更好的结果. 核函数的组合方式主要包括多核线性组合、多核扩展组合方法、非平稳线性组合方法等[36-42]. 多核学习的基本流程如图4 所示.
图4 多核学习方法基本流程Fig.4 Basic flow of multiple kernel learning method
可以使用固定的权重对多个核函数进行加权,得到组合的核函数. 这种方式难以达到较好的性能,因此,研究人员通常使用基于优化的方法求解核函数的权重. 例如,将组合的核函数与支持向量机结合起来,通过半正定规划[37]等优化方法进行求解核函数的权重. 文献[38]提出一种自适应二范数正则化方法求解核矩阵的权重. 为解决大规模的多核学习问题,文献[39]提出EasyMKL,能够有效集成大量核函数,并显著降低计算时间. 文献[40]提出一种基于随机方差减小的多核学习方法,实现对多种特征的最优组合. 文献[41]对传统的多核学习方法进行了总结. 文献[43-44] 分别总结了高光谱图像分类、视觉目标识别中的多核学习方法. 此外,多核学习与深度学习进行结合也逐渐成为研究热点[45-46].
4.5 集成深度学习
随着深度学习的发展,集成学习的思想逐渐应用于深度学习. 深度学习通常采用随机梯度下降方法进行训练,这使得深度学习模型对训练数据和初始参数较为敏感,从而导致模型在预测时可能具有较大的方差. 减小方差最直接的方法是,将深度学习模型作为基模型,并采用bagging 方法训练多个深度学习模型,然后使用投票法、加权平均等方法进行模型集成[47-48]. 文献[47]使用5 种不同结构的卷积神经网络进行集成,包括ResNet,Inception-v3,DenseNet等[49-51],每个卷积神经网络(convolutional neural network,CNN)单独进行训练. 最后将所有模型的输出求平均,得到集成模型的输出. 多列(multi-column)深度神经网络也是一种集成模型[48],每一列是一个卷积神经网络. 通过平均法进行集成. 文献[52]提出多列稀疏自编码网络,能够自动计算每列网络的最优权重.文献[53]使用多个不同深度的ResNet 进行集成,并用于车辆类型的识别. 由于训练多个神经网络需要较大的训练成本,文献[54]提出snapshot 集成方法. 该方法只需要训练一个神经网络,通过采用循环学习率策略,使得神经网络在训练过程中,快速收敛到多个局部最优解,并保存这些神经网络模型的参数. 在测试时,对这些模型的预测结果进行平均. 实验表明该方法在不增加训练成本的情况下,仍能得到错误率较低的集成模型. 文献[55]使用CNN 从图像块提取层次化的特征,然后根据这些特征使用Adaboost 方法判别图像块属于前景还是背景. 这种方式仅仅是在Adaboost 中利用了深度特征训练决策树. 文献[56]提出Deepboost 方法. Deepboost 与Adaboost 类似,但能够使用深度决策树作为基学习器且不会导致过拟合,这在处理复杂的分类问题时更为有利. 文献[57]对Deepboost进行了拓展,使其能够处理多分类问题.
boosting 方法也能直接用于深度神经网络集成.文献[58]使用gradient boosting 方法集成多个小型CNN,并将其应用于对图像进行目标计数. 该方法在训练第1 个CNN 之后,根据的预测误差训练下一个CNN,依次类推. 实验表明,该boosting 方法得到的集成模型在精度上优于bagging 方法得到的集成模型.文献[59]提出boosting CNN,boosting CNN 同样使用CNN 作为基模型,通过GD-MCBoost[60]方法进行集成.其他基于boosting 的深度集成学习方法还包括boosted deep belief network(BDBN)[61]、deep boosting framework(DBF)[62]、DBDnet[63]等. 文献[64]提出增量boosting CNN,用于减轻过拟合问题. 文献[65]提出了snapshot boosting 方法,能够在训练成本和集成模型的精度上取得较好的平衡.
文献[66]将深度神经网络堆叠后用于对图像去模糊,取得较好地效果. 将深度神经网络与其他机器学习模型进行堆叠,也是一种有效的集成学习策略.文献[67]提出了深度神经决策森林(deep neural decision forest,DNDF),通过在决策树的分裂节点引入可微分的决策函数及全局损失函数,使得分裂节点的参数可以通过反向传播的方式进行学习,从而将决策树与深度神经网络组合在一起进行学习. 文献[68]在上述方法的基础上进一步提出了深度标签分布学习森林(deep label distribution learning forest,DLDLF)和深度回归森林(deep regression forest,DRF),分别用于分类和回归问题. 这两种集成模型都是将深度神经网络的全连接层连接到随机森林,并可进行端到端的训练.
此外,模糊决策方法、多核学习的方法也用于深度神经网络的集成[46,69]. 文献[46]对多核学习与深度学习相结合的方法进行了总结.
深度学习模型的规模不断增加,其训练也更加困难. 文献[70]的研究结果表明,通过集成轻量级的神经网络,其性能可以超过单一的大型神经网络. 同时,将集成模型转换为级联的模型,能够减少计算量并在很大程度上保持集成模型的精度.
5 集成学习需要关注的重点问题
集成学习的研究虽然取得了较大发展,但现有方法在精度、速度以及算法复杂度等方面都还存一定的不足. 未来集成学习需要重点关注以下几个方面:
1)集成学习的理论还需进一步研究. 目前集成学习的理论对部分集成模型的有效性进行了阐释,但对集成模型多样性的定义、多样性的度量还没有形成共识. 特别是如何实现多样性,还需要更明确的理论指导.
2)集成学习需要更加注重多层次的信息融合.信息融合包括数据层、特征层、决策层等多个层次的融合. 现有的集成学习方法,主要是将多个基模型在决策层进行融合,忽视了数据层、特征层的融合.以图像分类为例,现有方法主要根据可见光图像进行目标分类. 在军事领域,除了可见光图像,还有大量的红外图像、合成孔径雷达图像等,集成学习过程中应充分融合这些图像. 在智能人机交互领域,集成学习方法需要将语音、手势、面部表情等多模态信息进行融合处理,才能实现更高水平的机器智能.
3)需要研究快速高效的集成深度学习方法. 深度学习需要的大量的训练数据,训练时间长、训练成本高. 集成深度学习使用多个深度神经网络作为基模型,对训练数据、训练时间和成本有更高地要求. 研究如何确定基模型的类型和规模、如何快速训练和测试深度集成模型,对模型的应用具有重要意义.