参考资料:神经网络与深度学习
这里写自定义目录标题
-
- [集成学习(Ensemble Learning)](#集成学习(Ensemble Learning))
- 集成学习与联邦学习的区别
集成学习(Ensemble Learning)
通过某种策略将多个模型集成起来,通过群体决策来提高决策准确率,对于 M 个不同的模型 f 1 ( x ) , ⋯ , f M ( x ) f_1(\boldsymbol{x}), \cdots, f_M(\boldsymbol{x}) f1(x),⋯,fM(x),每个模型的期望错误为:
R ( f m ) = E x [ ( f m ( x ) − h ( x ) ) 2 ] = E x [ ϵ m ( x ) 2 ] \mathcal{R}\left(f_m\right)=\mathbb{E}{\boldsymbol{x}}\left[\left(f_m(\boldsymbol{x})-h(\boldsymbol{x})\right)^2\right]=\mathbb{E}x\left[\epsilon_m(\boldsymbol{x})^2\right] R(fm)=Ex[(fm(x)−h(x))2]=Ex[ϵm(x)2],其中 h ( ⋅ ) h(\cdot) h(⋅)表征输入与输出间的真实关系, ϵ m ( x ) \epsilon_m(\boldsymbol{x}) ϵm(x)即为误差项。则全部模型等权重"聚合"的平均错误为:
R ‾ ( f ) = 1 M ∑ m = 1 M E x [ ϵ m ( x ) 2 ] \overline{\mathcal{R}}(f)=\frac{1}{M} \sum{m=1}^M \mathbb{E}{\boldsymbol{x}}\left[\epsilon_m(\boldsymbol{x})^2\right] R(f)=M1m=1∑MEx[ϵm(x)2]
基于等权重"聚合"(投票)的集成模型为:
F ( x ) = 1 M ∑ m = 1 M f m ( x ) F(\boldsymbol{x})=\frac{1}{M} \sum_{m=1}^M f_m(\boldsymbol{x}) F(x)=M1m=1∑Mfm(x)
对于 M M M 个不同的模型 f 1 ( x ) , ⋯ , f M ( x ) f_1(\boldsymbol{x}), \cdots, f_M(\boldsymbol{x}) f1(x),⋯,fM(x) ,其平均期望错误为 R ‾ ( f ) \overline{\mathcal{R}}(f) R(f) 。基于简单投票机制的集成模型 F ( x ) = 1 M ∑ m = 1 M f m ( x ) , F ( x ) F(\boldsymbol{x})=\frac{1}{M} \sum_{m=1}^M f_m(\boldsymbol{x}), F(\boldsymbol{x}) F(x)=M1∑m=1Mfm(x),F(x) 的期望错误在 1 M R ‾ ( f ) \frac{1}{M} \overline{\mathcal{R}}(f) M1R(f) 和 R ‾ ( f ) \overline{\mathcal{R}}(f) R(f) 之间.
证明:
R ( F ) = E x [ ( 1 M ∑ m = 1 M f m ( x ) − h ( x ) ) 2 ] = E x [ ( 1 M ∑ m = 1 M ϵ m ( x ) ) 2 ] = 1 M 2 E x [ ∑ m = 1 M ∑ n = 1 M ϵ m ( x ) ϵ n ( x ) ] = 1 M 2 ∑ m = 1 M ∑ n = 1 M E x [ ϵ m ( x ) ϵ n ( x ) ] , \begin{aligned} \mathcal{R}(F) & =\mathbb{E}{\boldsymbol{x}}\left[\left(\frac{1}{M} \sum{m=1}^M f_m(\boldsymbol{x})-h(\boldsymbol{x})\right)^2\right] \\ & =\mathbb{E}{\boldsymbol{x}}\left[\left(\frac{1}{M} \sum{m=1}^M \epsilon_m(\boldsymbol{x})\right)^2\right] \\ & =\frac{1}{M^2} \mathbb{E}{\boldsymbol{x}}\left[\sum{m=1}^M \sum_{n=1}^M \epsilon_m(\boldsymbol{x}) \epsilon_n(\boldsymbol{x})\right] \\ & =\frac{1}{M^2} \sum_{m=1}^M \sum_{n=1}^M \mathbb{E}_{\boldsymbol{x}}\left[\epsilon_m(\boldsymbol{x}) \epsilon_n(\boldsymbol{x})\right], \end{aligned} R(F)=Ex (M1m=1∑Mfm(x)−h(x))2 =Ex (M1m=1∑Mϵm(x))2 =M21Ex[m=1∑Mn=1∑Mϵm(x)ϵn(x)]=M21m=1∑Mn=1∑MEx[ϵm(x)ϵn(x)],
其中 E x [ ϵ m ( x ) ϵ n ( x ) ] \mathbb{E}{\boldsymbol{x}}\left[\epsilon_m(\boldsymbol{x}) \epsilon_n(\boldsymbol{x})\right] Ex[ϵm(x)ϵn(x)] 为两个不同模型错误的相关性.如果每个模型的错误不相关,即 ∀ m ≠ n , E x [ ϵ m ( x ) ϵ n ( x ) ] = 0 \forall m \neq n, \mathbb{E}{\boldsymbol{x}}\left[\epsilon_m(\boldsymbol{x}) \epsilon_n(\boldsymbol{x})\right]=0 ∀m=n,Ex[ϵm(x)ϵn(x)]=0 .如果每个模型的错误都是相同的,则 ∀ m ≠ \forall m \neq ∀m= n , ϵ m ( x ) = ϵ n ( x ) n, \epsilon_m(\boldsymbol{x})=\epsilon_n(\boldsymbol{x}) n,ϵm(x)=ϵn(x) 。并且,由于 ϵ m ( x ) ≥ 0 , ∀ m \epsilon_m(\boldsymbol{x}) \geq 0, \forall m ϵm(x)≥0,∀m ,可以得到
R ‾ ( f ) ≥ R ( F ) ≥ 1 M R ‾ ( f ) \overline{\mathcal{R}}(f) \geq \mathcal{R}(F) \geq \frac{1}{M} \overline{\mathcal{R}}(f) R(f)≥R(F)≥M1R(f)
从上述定理可知,为了得到更好的集成效果,要求每个模型之间具备一定的差异性。并且随着模型数量的增多,其错误率也会下降,并趋近于 0 。 ( 模型之间具备一定的差异性,这其实是与联邦学习所追求的目标相悖,(单层)联邦学习是追求local model的一致性以减少drift )
Boosting类方法
为了增加模型之间的差异性,Boosting 类方法是按照一定的顺序来先后训练不同的基模型,每个模型都针对前序模型的错误进行专门训练。根据前序模型的结果,来调整训练样本的权重,从而增加不同基模型之间的差异性。
AdaBoost算法
系统内存在M个基分类器(Base Classifier),共同生成一个加性模型,每个弱分类器对应的权重为 α m \alpha_m αm
F ( x ) = ∑ m = 1 M α m f m ( x ) F(\boldsymbol{x})=\sum_{m=1}^M \alpha_m f_m(\boldsymbol{x}) F(x)=m=1∑Mαmfm(x)
Boosting 类方法的关键是如何训练每个弱分类器 f m ( x ) f_m(\boldsymbol{x}) fm(x) 及其权重 α m \alpha_m αm .为了提高集成的效果,应当尽量使得每个弱分类器的差异尽可能大 .一种有效的算法是采用迭代(sequencial)的方法来学习每个弱分类器,即按照一定的顺序依次训练每个弱分类器 .假设已经训练了 m m m 个弱分类器,在训练第第 m + 1 m+1 m+1 个弱分类器时,增加已有弱分类器分错样本的权重,使得第 m + 1 m+1 m+1 个弱分类器"更关注"于已有弱分类器分错的样本(由于后面的弱分类器总是专注于前面的弱分类器做的不好之处 ),每个弱分类器的差异可足够大,最终提升集成分类器的准确率,即AdaBoost在每一轮训练中,增加分错样本的权重,减少分对样本的权重,从而得到一个新的数据分布。
对于二分类: f m ( x ) ∈ { + 1 , − 1 } f_m(x) \in\{+1,-1\} fm(x)∈{+1,−1}:
上述算法的数学解释:(基分类器权重 与 样本权重设定)
对于 F ( x ) = ∑ m = 1 M α m f m ( x ) F(\boldsymbol{x})=\sum_{m=1}^M \alpha_m f_m(\boldsymbol{x}) F(x)=∑m=1Mαmfm(x),其损失函数定义为:
L ( F ) = exp ( − y F ( x ) ) = exp ( − y ∑ m = 1 M α m f m ( x ) ) , \mathcal{L}(F) =\exp (-y F(\boldsymbol{x})) =\exp \left(-y \sum_{m=1}^M \alpha_m f_m(\boldsymbol{x})\right), L(F)=exp(−yF(x))=exp(−ym=1∑Mαmfm(x)),
其中 y ∈ { + 1 , − 1 } y\in\{+1,-1\} y∈{+1,−1}为真实结果。上述函数表明:若某个基分类器 f m f_m fm结果与y异号,则需调整样本权重与分类器权重以降低损失函数值。
假设经过 m − 1 m-1 m−1 次迭代,得到
F m − 1 ( x ) = ∑ t = 1 m − 1 α t f t ( x ) F_{m-1}(\boldsymbol{x})=\sum_{t=1}^{m-1} \alpha_t f_t(\boldsymbol{x}) Fm−1(x)=t=1∑m−1αtft(x)
则第 m m m 次迭代的目标是找一个 α m \alpha_m αm 和 f m ( x ) f_m(\boldsymbol{x}) fm(x) 使得下面的损失函数最小.(变量为 α m \alpha_m αm 和 f m ( x ) f_m(\boldsymbol{x}) fm(x) )
L ( α m , f m ( x ) ) = ∑ n = 1 N exp ( − y ( n ) ( F m − 1 ( x ( n ) ) + α m f m ( x ( n ) ) ) ) . 令 w m ( n ) = exp ( − y ( n ) F m − 1 ( x ( n ) ) ) , 则损失函数可以写为 L ( α m , f m ( x ) ) = ∑ n = 1 N w m ( n ) exp ( − α m y ( n ) f m ( x ( n ) ) ) . \begin{gathered} \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right)=\sum_{n=1}^N \exp \left(-y^{(n)}\left(F_{m-1}\left(\boldsymbol{x}^{(n)}\right)+\alpha_m f_m\left(\boldsymbol{x}^{(n)}\right)\right)\right) . \\ \text { 令 } w_m^{(n)}=\exp \left(-y^{(n)} F_{m-1}\left(\boldsymbol{x}^{(n)}\right)\right), \text { 则损失函数可以写为 } \\ \qquad \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right)=\sum_{n=1}^N w_m^{(n)} \exp \left(-\alpha_m y^{(n)} f_m\left(\boldsymbol{x}^{(n)}\right)\right) . \end{gathered} L(αm,fm(x))=n=1∑Nexp(−y(n)(Fm−1(x(n))+αmfm(x(n)))). 令 wm(n)=exp(−y(n)Fm−1(x(n))), 则损失函数可以写为 L(αm,fm(x))=n=1∑Nwm(n)exp(−αmy(n)fm(x(n))).
因为 y , f m ( x ) ∈ { + 1 , − 1 } y, f_m(\boldsymbol{x}) \in\{+1,-1\} y,fm(x)∈{+1,−1} ,有
y f m ( x ) = 1 − 2 I ( y ≠ f m ( x ) ) y f_m(\boldsymbol{x})=1-2 I\left(y \neq f_m(\boldsymbol{x})\right) yfm(x)=1−2I(y=fm(x))
其中 I ( x ) I(x) I(x) 为指示函数.
将损失函数在 − α m y ( n ) f m ( x ( n ) ) = 0 -\alpha_m y^{(n)} f_m\left(\boldsymbol{x}^{(n)}\right)=0 −αmy(n)fm(x(n))=0 处进行二阶泰勒展开( e x = ∑ n = 0 ∞ 1 n ! x n = 1 + x + 1 2 ! x 2 + ⋯ ∈ ( − ∞ , + ∞ ) e^x=\sum_{n=0}^{\infty} \frac{1}{n!} x^n=1+x+\frac{1}{2!} x^2+\cdots \in(-\infty,+\infty) ex=∑n=0∞n!1xn=1+x+2!1x2+⋯∈(−∞,+∞)),有
L ( α m , f m ( x ) ) = ∑ n = 1 N w m ( n ) ( 1 − α m y ( n ) f m ( x ( n ) ) + 1 2 α m 2 ) ∝ ∑ n = 1 N w m ( n ) ( − α m y ( n ) f m ( x ( n ) ) + 1 2 α m 2 ) ∝ α m ∑ n = 1 N w m ( n ) I ( y ( n ) ≠ f m ( x ( n ) ) ) \begin{aligned} \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right) & =\sum_{n=1}^N w_m^{(n)}\left(1-\alpha_m y^{(n)} f_m\left(\boldsymbol{x}^{(n)}\right)+\frac{1}{2} \alpha_m^2\right) \\ & \propto \sum_{n=1}^N w_m^{(n)}\left(-\alpha_m y^{(n)} f_m\left(x^{(n)}\right)+\frac{1}{2} \alpha_m^2\right) \\ & \propto \alpha_m \sum_{n=1}^N w_m^{(n)} I\left(y^{(n)} \neq f_m\left(\boldsymbol{x}^{(n)}\right)\right) \end{aligned} L(αm,fm(x))=n=1∑Nwm(n)(1−αmy(n)fm(x(n))+21αm2)∝n=1∑Nwm(n)(−αmy(n)fm(x(n))+21αm2)∝αmn=1∑Nwm(n)I(y(n)=fm(x(n)))
其中,第二步是忽略常数项;第三步是由于:当 α m > 0 \alpha_m>0 αm>0 时, L ( α m , f m ( x ) ) \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right) L(αm,fm(x))大小正比于 y ( n ) f m ( x ( n ) ) y^{(n)} f_m\left(\boldsymbol{x}^{(n)}\right) y(n)fm(x(n))的符号。即,最优的分类器 f m ( x ) f_m(\boldsymbol{x}) fm(x) 为使得在样本权重为 w m ( n ) , 1 ≤ n ≤ N w_m^{(n)}, 1 \leq n \leq N wm(n),1≤n≤N 时的加权错误率最小的分类器.
基于上述损失函数,得到 f m ( x ) f_m(\boldsymbol{x}) fm(x)(即 f m ( x ) f_m(\boldsymbol{x}) fm(x)固定后), L ( α m , f m ( x ) ) \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right) L(αm,fm(x))可进一步写为:
L ( α m , f m ( x ) ) = ∑ y ( n ) = f m ( x ( n ) ) w m ( n ) exp ( − α m ) + ∑ y ( n ) ≠ f m ( x ( n ) ) w m ( n ) exp ( α m ) ∝ ( 1 − ϵ m ) exp ( − α m ) + ϵ m exp ( α m ) \mathcal{L}\left(\alpha_m, f_m(\boldsymbol{x})\right)=\sum_{y^{(n)}=f_m\left(\boldsymbol{x}^{(n)}\right)} w_m^{(n)} \exp \left(-\alpha_m\right)+\sum_{y^{(n)} \neq f_m\left(\boldsymbol{x}^{(n)}\right)} w_m^{(n)} \exp \left(\alpha_m\right) \propto \left(1-\epsilon_m\right) \exp \left(-\alpha_m\right)+\epsilon_m \exp \left(\alpha_m\right) L(αm,fm(x))=y(n)=fm(x(n))∑wm(n)exp(−αm)+y(n)=fm(x(n))∑wm(n)exp(αm)∝(1−ϵm)exp(−αm)+ϵmexp(αm)
其中 ϵ m \epsilon_m ϵm 为分类器 f m ( x ) f_m(\boldsymbol{x}) fm(x) 的加权错误率: ϵ m = ∑ y ( n ) ≠ f m ( x ( n ) ) w m ( n ) ∑ n w m ( n ) \epsilon_m=\frac{\sum_{y^{(n)} \neq f_m\left(\boldsymbol{x}^{(n)}\right)} w_m^{(n)}}{\sum_n w_m^{(n)}} ϵm=∑nwm(n)∑y(n)=fm(x(n))wm(n)。求上式关于 α m \alpha_m αm 的导数并令其为 0 ,得到 α m = 1 2 log 1 − ϵ m ϵ m \alpha_m=\frac{1}{2} \log \frac{1-\epsilon_m}{\epsilon_m} αm=21logϵm1−ϵm。
集成学习与联邦学习的区别
集成学习(Ensemble Learning)的目标是通过多个模型的"误差互补"来降低泛化误差,哪怕这些模型是在同一个训练集或相似数据上训练的。差异性有助于"平均掉"某些模型的偏差,提升整体表现。
联邦学习的目标是:在保护数据隐私的前提下,训练出一个通用的、集中式的全局模型,这个模型要尽可能适配所有客户端的数据分布。
集成学习通常默认所有模型可访问同一数据分布或样本子集(如Bagging中的bootstrap),模型训练过程独立,但从相似数据中学习,差异来源于训练过程中的随机性。
联邦学习因为假设各用户数据是Non-IID的,即 D i ≠ D j D_i \neq D_j Di=Dj。理论上这提供了差异性,但这种差异并不会直接带来好处,反而导致训练不稳定、聚合后性能下降。
在集成学习中,最终模型是 F ( x ) = 1 M ∑ m f m ( x ) F(\boldsymbol{x}) = \frac{1}{M} \sum_m f_m(\boldsymbol{x}) F(x)=M1∑mfm(x),是输出级别的平均,哪怕模型结构不同也可以融合输出。对于集成学习来说,如果 ϵ m ( x ) \epsilon_m(\boldsymbol{x}) ϵm(x) 相互不相关,交叉项为 0,那么 R ( F ) \mathcal{R}(F) R(F) 会显著低于每个 R ( f m ) \mathcal{R}(f_m) R(fm)。
联邦学习做的是 w = 1 M ∑ m w m \boldsymbol{w} = \frac{1}{M} \sum_m \boldsymbol{w}_m w=M1∑mwm,这是模型参数级别的平均,假设所有模型结构一致。在联邦学习中,如果你这么"平均", ϵ m ( x ) \epsilon_m(\boldsymbol{x}) ϵm(x) 并非只是误差,而是在各自数据上的"最优偏移",这些偏移如果方向不一致(Non-IID引起的局部最优差异),它们不会互相抵消,而可能导致整体误差增加。
进一步:
R ( F ) = E X [ ( 1 M ∑ m = 1 M ϵ m ( x ) ) 2 ] = 1 M 2 ∑ m , n = 1 M E X [ ϵ m ( x ) ϵ n ( x ) ] \mathcal{R}(F)=\mathbb{E}{\boldsymbol{X}}\left[\left(\frac{1}{M} \sum{m=1}^M \epsilon_m(\boldsymbol{x})\right)^2\right]=\frac{1}{M^2} \sum_{m, n=1}^M \mathbb{E}_{\boldsymbol{X}}\left[\epsilon_m(\boldsymbol{x}) \epsilon_n(\boldsymbol{x})\right] R(F)=EX (M1m=1∑Mϵm(x))2 =M21m,n=1∑MEX[ϵm(x)ϵn(x)]
这可以进一步拆解为:
R ( F ) = 1 M σ ˉ 2 + M − 1 M ρ ˉ \mathcal{R}(F)=\frac{1}{M} \bar{\sigma}^2+\frac{M-1}{M} \bar{\rho} R(F)=M1σˉ2+MM−1ρˉ
其中: σ ˉ 2 \bar{\sigma}^2 σˉ2:每个模型误差的平均方差; ρ ˉ \bar{\rho} ρˉ:不同模型之间误差项的平均协方差。
若模型误差互不相关(或低相关性)( ρ ˉ ≈ 0 \bar{\rho} \approx 0 ρˉ≈0),则: R ( F ) ≈ 1 M σ ˉ 2 \mathcal{R}(F) \approx \frac{1}{M} \bar{\sigma}^2 R(F)≈M1σˉ2,即误差与模型数量成反比。
从信息论角度 :
假设真实目标是随机变量 Y Y Y,模型输出为 F ( X ) F(X) F(X),我们从信息论角度看模型"了解"目标 Y Y Y 的能力,即互信息 I ( F ( X ) ; Y ) I(F(X); Y) I(F(X);Y)。
根据信息融合原理,如果多个模型 f m ( X ) f_m(X) fm(X) 是从不同"子空间"或"独立子模型"学习而来,它们提供了关于 Y Y Y 的互补信息,则集成输出 F ( X ) F(X) F(X) 满足:
I ( F ( X ) ; Y ) ≥ max m I ( f m ( X ) ; Y ) I(F(X) ; Y) \geq \max _m I\left(f_m(X) ; Y\right) I(F(X);Y)≥mmaxI(fm(X);Y)
特别地,如果每个模型的预测误差是统计独立的,那么最终模型就能"集成多个互不冗余的信息源",信息量增加,从而提升泛化能力。