您现在的位置是:首页 >技术杂谈 >机器学习强基计划10-1:为什么需要集成学习?核心原理是什么?网站首页技术杂谈
机器学习强基计划10-1:为什么需要集成学习?核心原理是什么?
0 写在前面
机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编写、测试与文章配套的各个经典算法,不依赖于现有库,可以大大加深对算法的理解。
1 集成学习概念与优势
集成学习(ensemble learning)并非一种机器学习算法,而是一种通过结合多个学习器来获得比单一学习器显著优越泛化性能的算法框架。集成学习的基本概念整理如下,可以收藏一下~
集成学习的算法框架如图所示
那么为什么需要集成学习呢?是因为相比个体学习器,集成学习具有特别的优势:
- 统计意义:学习任务的假设空间往往很大,若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器会减小这一风险;
- 计算意义:学习算法往往会陷入局部极小值——有的局部陷阱对应的泛化性能可能很糟糕, 结合多个学习器可降低陷入局部陷阱的风险;
- 表示意义:某些学习任务的真实假设可能不在当前学习算法的假设空间中,结合多个学习器扩大总体假设空间,有可能学得更好的近似。
2 结合策略梳理
在结合策略中,设集成包含 T T T个个体学习器 { h 1 , h 2 , ⋯ , h T } left{ h_1,h_2,cdots ,h_T ight} {h1,h2,⋯,hT}, H H H是结合 T T T个个体学习器后的集成模型
2.1 加权平均法
加权平均法(weighted averaging)表示如下
H ( x ) = ∑ i = 1 T w i h i ( x ) , ( w i ⩾ 0 且 ∑ i = 1 T w i = 1 ) Hleft( oldsymbol{x} ight) =sum_{i=1}^T{w_ih_ileft( oldsymbol{x} ight)}, left( w_igeqslant 0 ext{且}sum olimits_{i=1}^T{w_i}=1 ight) H(x)=i=1∑Twihi(x),(wi⩾0且∑i=1Twi=1)
其中 w i w_i wi为个体学习器 h i h_i hi的权重,权重一般由训练数据中学习得到,例如估计出个体学习器的误差,然后令权重大小与误差大小成反比。特别地,当 w i = 1 / T w_i={{1}/{T}} wi=1/T时,加权平均法退化为简单平均法(simple averaging)。一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。平均法策略常用于回归任务。
2.2 投票法
投票法(voting)策略常用于分类任务。设类别集合为 { c 1 , c 2 , ⋯ , c N } left{ c_1,c_2,cdots ,c_N ight} {c1,c2,⋯,cN},则个体学习器 h i h_i hi在样本 x oldsymbol{x} x上的输出是一个 N N N维向量 [ h i 1 ( x ) h i 2 ( x ) ⋯ h i N ( x ) ] T left[ egin{matrix} h_{i}^{1}left( oldsymbol{x} ight)& h_{i}^{2}left( oldsymbol{x} ight)& cdots& h_{i}^{N}left( oldsymbol{x} ight)\end{matrix} ight] ^T [hi1(x)hi2(x)⋯hiN(x)]T,其中 h i j h_{i}^{j} hij表示 h i h_i hi在类标记 c j c_j cj上的输出。绝对多数投票法(majority voting)核心原理是若某标记得票过半数则预测为该标记,否则拒绝预测
H ( x ) = { c j , i f ∑ i = 1 T h i j ( x ) > 1 2 ∑ k = 1 N ∑ i = 1 T h i k ( x ) r e j e c t , o t h e r w i s e Hleft( oldsymbol{x} ight) =egin{cases} c_j, mathrm{if} sum_{i=1}^T{h_{i}^{j}left( oldsymbol{x} ight)}>frac{1}{2}sum_{k=1}^N{sum_{i=1}^T{h_{i}^{k}left( oldsymbol{x} ight)}}\ mathrm{reject}, mathrm{otherwise}\end{cases} H(x)={cj,if∑i=1Thij(x)>21∑k=1N∑i=1Thik(x)reject,otherwise
相对多数投票法(plurality voting)核心原理是得票最多的标记即为预测,若同时有多个最高票,则随机选择一个输出
H ( x ) = c a r g max j ∑ i = 1 T h i j ( x ) Hleft( oldsymbol{x} ight) =c_{mathrm{arg}max _jsum olimits_{i=1}^T{h_{i}^{j}left( oldsymbol{x} ight)}} H(x)=cargmaxj∑i=1Thij(x)
加权投票法(weighted voting)则是在相对多数投票法基础上考虑了个体学习器的权重
H ( x ) = c a r g max j ∑ i = 1 T w i h i j ( x ) Hleft( oldsymbol{x} ight) =c_{mathrm{arg}max _jsum olimits_{i=1}^T{w_ih_{i}^{j}left( oldsymbol{x} ight)}} H(x)=cargmaxj∑i=1Twihij(x)
绝对多数投票法提供了拒绝预测选项,这在可靠性要求较高的学习任务中是一个很好的机制。但若要求必须提供预测结果,则不能采用绝对多数投票法。
根据 h i j h_{i}^{j} hij的取值类型分为两种情形
- 当 h i j ∈ { 0 , 1 } h_{i}^{j}in left{ 0,1 ight} hij∈{0,1}时,称为硬投票(hard voting)
- 当 h i j ∈ [ 0 , 1 ] h_{i}^{j}in left[ 0,1 ight] hij∈[0,1]时可视为后验概率 ,称为软投票(soft voting)
在软投票中,对能在预测出类别的同时产生分类置信度的学习器(如贝叶斯分类),其分类置信度可直接转化为投票概率。若不存在概率语义(如支持向量机分类间隔),则必须校准后才能作为投票概率。值得注意的是,在异质集成中,不同个体学习器的输出投票概率没有可比性,此时需要根据后验概率将软投票转换成硬投票处理。
2.3 学习法
学习法的核心原理是构造一个元学习器,建立个体学习器 { h 1 , h 2 , ⋯ , h T } left{ h_1,h_2,cdots ,h_T ight} {h1,h2,⋯,hT}预测输出到集成输出的映射
f : [ h 1 ( x ) h 2 ( x ) ⋯ h T ( x ) ] T ↦ H ( x ) f:left[ egin{matrix} h_{1}^{}left( oldsymbol{x} ight)& h_{2}^{}left( oldsymbol{x} ight)& cdots& h_{T}^{}left( oldsymbol{x} ight)\end{matrix} ight] ^Tmapsto Hleft( oldsymbol{x} ight) f:[h1(x)h2(x)⋯hT(x)]T↦H(x)
这类结合策略的典型是Stacking算法,算法流程如表所示。
3 误差-分歧分解
误差-分歧分解是分析集成学习对个体学习器性能要求的工具,假设结合策略采用加权平均法
定义个体学习器的分歧(ambiguity)为 A ( h i ∣ x ) = ( h i ( x ) − H ( x ) ) 2 Aleft( h_i|oldsymbol{x} ight) =left( h_ileft( oldsymbol{x} ight) -Hleft( oldsymbol{x} ight) ight) ^2 A(hi∣x)=(hi(x)−H(x))2,则集成学习的分歧
A ˉ ( h ∣ x ) = ∑ i = 1 T w i A ( h i ∣ x ) = ∑ i = 1 T w i h i 2 ( x ) − H 2 ( x ) egin{aligned}ar{A}left( h|oldsymbol{x} ight) &=sum_{i=1}^T{w_iAleft( h_i|oldsymbol{x} ight)},, \ &=sum_{i=1}^T{w_ih_{i}^{2}left( oldsymbol{x} ight)}-H^2left( oldsymbol{x} ight)end{aligned} Aˉ(h∣x)=i=1∑TwiA(hi∣x)=i=1∑Twihi2(x)−H2(x)
表征了个体学习器间在样本 x oldsymbol{x} x上的不一致性——也一定程度上反应了个体学习器的多样性。设真实模型为 f f f,则个体学习器 h i h_i hi与集成模型 H H H的偏差为
{ E ( h i ∣ x ) = ( f ( x ) − h i ( x ) ) 2 , i = 1 , 2 , ⋯ , T E ( H ∣ x ) = ( f ( x ) − H ( x ) ) 2 egin{cases} Eleft( h_i|oldsymbol{x} ight) =left( fleft( oldsymbol{x} ight) -h_ileft( oldsymbol{x} ight) ight) ^2, i=1,2,cdots ,T\ Eleft( H|oldsymbol{x} ight) =left( fleft( oldsymbol{x} ight) -Hleft( oldsymbol{x} ight) ight) ^2\end{cases} {E(hi∣x)=(f(x)−hi(x))2,i=1,2,⋯,TE(H∣x)=(f(x)−H(x))2
设个体学习器的加权偏差为 E ˉ ( h ∣ x ) = ∑ i = 1 T w i E ( h i ∣ x ) ar{E}left( h|oldsymbol{x} ight) =sum olimits_{i=1}^T{w_iEleft( h_i|oldsymbol{x} ight)} Eˉ(h∣x)=∑i=1TwiE(hi∣x),则有 A ˉ ( h ∣ x ) = E ˉ ( h ∣ x ) − E ( H ∣ x ) ar{A}left( h|oldsymbol{x} ight) =ar{E}left( h|oldsymbol{x} ight) -Eleft( H|oldsymbol{x} ight) Aˉ(h∣x)=Eˉ(h∣x)−E(H∣x)对 ∀ x forall oldsymbol{x} ∀x都成立,设 x p ( x ) oldsymbol{x}~pleft( oldsymbol{x} ight) x p(x),在样本空间有
∫ A ˉ ( h ∣ x ) p ( x ) d x = ∫ E ˉ ( h ∣ x ) p ( x ) d x − ∫ E ( H ∣ x ) p ( x ) d x ⇒ ∑ i = 1 T w i ∫ A ( h i ∣ x ) p ( x ) d x = ∑ i = 1 T w i ∫ E ( h i ∣ x ) p ( x ) d x − ∫ E ( H ∣ x ) p ( x ) d x int{ar{A}left( h|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}=int{ar{E}left( h|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}-int{Eleft( H|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}\Rightarrow sum_{i=1}^T{w_iint{Aleft( h_i|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}}=sum_{i=1}^T{w_iint{Eleft( h_i|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}}-int{Eleft( H|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}} ∫Aˉ(h∣x)p(x)dx=∫Eˉ(h∣x)p(x)dx−∫E(H∣x)p(x)dx⇒i=1∑Twi∫A(hi∣x)p(x)dx=i=1∑Twi∫E(hi∣x)p(x)dx−∫E(H∣x)p(x)dx
令个体学习器 h i h_i hi在全样本空间的泛化误差、分歧,以及集成模型的泛化误差为
{ E i = ∫ E ( h i ∣ x ) p ( x ) d x A i = ∫ A ( h i ∣ x ) p ( x ) d x E = ∫ E ( H ∣ x ) p ( x ) d x egin{cases} E_i=int{Eleft( h_i|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}\ A_i=int{Aleft( h_i|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}\ E=int{Eleft( H|oldsymbol{x} ight) pleft( oldsymbol{x} ight) mathrm{d}oldsymbol{x}}\end{cases} ⎩ ⎨ ⎧Ei=∫E(hi∣x)p(x)dxAi=∫A(hi∣x)p(x)dxE=∫E(H∣x)p(x)dx
则误差-分歧分解为
E = E ˉ − A ˉ {E=ar{E}-ar{A}} E=Eˉ−Aˉ
其中 E ˉ = ∑ i = 1 T w i E i ar{E}=sum olimits_{i=1}^T{w_iE_i} Eˉ=∑i=1TwiEi表示个体学习器泛化误差的加权均值, A ˉ = ∑ i = 1 T w i A i ar{A}=sum olimits_{i=1}^T{w_iA_i} Aˉ=∑i=1TwiAi表示个体学习器分歧的加权均值。
误差-分歧分解表明个体学习器性能越好、多样性越大,则集成模型总体的泛化误差 越小。因此,集成学习要求个体学习器满足“好而不同”。
? 更多精彩专栏: