《神经网络与深度学习》-模型独立的学习方式

本文详细介绍了模型独立的学习方式,包括集成学习、自训练、协同训练、多任务学习、迁移学习和元学习。重点讨论了AdaBoost算法、协同训练的两种形式以及多任务学习的共享机制。还提到了迁移学习的归纳和转导迁移,以及终身学习和元学习如何解决灾难性遗忘问题,旨在提高模型在新任务上的学习效率和泛化能力。
摘要由CSDN通过智能技术生成

  本文介绍集成学习、协同学习、自训练、多任务学习、迁移学习、终身学习、小样本学习、元学习等学习方式。这些学习方式不限于具体的模型,不管是前馈神经网络、RNN或其他模型。然而一种学习方式,往往会对具有一定特性的模型效果更佳,如集成学习对方差较大的模型组合时效果显著。

1. 集成学习

  给定学习任务,假设输入 x \pmb{x} xxx y \pmb{y} yyy 的真实关系是 y = h ( x ) \pmb{y} = h(\pmb{x}) yyy=h(xxx)。对于M个不同模型 f 1 ( x ) , ⋯   , f M ( x ) f_1(\pmb{x}) , \cdots ,f_M(\pmb{x}) f1(xxx),,fM(xxx) ,每个模型的期望错误为:
在这里插入图片描述
其中 ϵ m ( x ) \epsilon_m(\pmb{x}) ϵm(xxx) 为模型m在样本x上的错误。
  所有模型的平均错误:
在这里插入图片描述
  集成学习(Ensemble Learning)是通过某种策略将多个模型集成在一起,通过群体决策来提高决策准确率。常见的集成策略有直接平均加权平均

直接平均即“投票”,基于投票的集成模型为:
在这里插入图片描述
   F ( x ) F(\pmb{x}) F(xxx)的期望错误 R ( F ) R(F) R(F) 1 M R ‾ ( f ) \frac{1}{M}\overline{R}(f) M1R(f) R ‾ ( f ) \overline{R}(f) R(f)之间,证明如下:
在这里插入图片描述
其中 E x [ ϵ m ( x ) ϵ n ( x ) ] E_x[\epsilon_m(\pmb{x})\epsilon_n(\pmb{x})] Ex[ϵm(xxx)ϵn(xxx)] 为两个不相同模型错误的相关性,如果每个模型的错误不相关,即 ∀ m ≠ n , E x [ ϵ m ( x ) ϵ n ( x ) ] = 0 \forall m\neq n, E_x[\epsilon_m(\pmb{x})\epsilon_n(\pmb{x})]=0 m=n,Ex[ϵm(xxx)ϵn(xxx)]=0.如果每个模型的错误都是相同的,则 ∀ m ≠ n , ϵ m ( x ) = ϵ n ( x ) \forall m\neq n, \epsilon_m(\pmb{x})=\epsilon_n(\pmb{x}) m=n,ϵm(xxx)=ϵn(xxx).并且 ∀ m , ϵ m ( x ) ≥ 0 \forall m ,\epsilon_m(\pmb{x}) \geq 0 m,ϵm(xxx)0可以得到:
在这里插入图片描述
   为了得到更好的集成效果,要求每个模型之间具备一定的差异性,并且随着模型数量的增多,其错误率也会下降,并趋近于0.
   集成学习思想类似“三个臭皮匠赛过诸葛亮”,一个有效的集成需要各个基模型的差异尽量大,为增加模型间的差异性可采用BaggingBoosting两类方法。

Bagging类方法 Bagging类方法随机构造训练样本、随机选择特征,进而提高每个基模型的独立性,代表性方法有Bagging、随机森林。
   Bagging(Bootstrap Aggregating)通过不同模型的训练数据集的独立性来提高不同模型间的独立性。在原始训练集上进行有放回的随机采样,得到M个比较小的训练集并训练M个模型,然后通过投票的方法进行模型集成。
   随机森林(Random Forest)在Bagging的基础上,引入了随机特征,进一步提高每个基模型间的独立性,在随机森林中,每个基模型都是一颗决策树。

Boosting 类方法 Boosting 类方法按照一定的顺序先后训练不同的基模型,每个基模型都针对前序模型的错误进行专门训练,根据前序模型的结果,来调整训练样本的权重,从而增加不同模型之间的差异性。只要基模型的准确率比随机猜测高,就可以用Boosting类方法来显著提高集成模型的准确率,Boosting类方法的代表性方法有AdaBoost

1.1 AdaBoost算法

   Boosting类集成模型的目标是学习一个加性模型(Additive Model):
在这里插入图片描述
其中 f m ( x ) f_m(\pmb{x}) fm(xxx)弱分类器,或基分类器 α m \alpha_m αm为弱分类器的集成权重, F ( x ) F(x) F(x)强分类器
  Boosting类方法的关键是如何训练每个弱分类器权重。应该尽量使得每个分类器之间的差异变大,一有效的算法是采用迭代的方法学习每个弱分类器,即按照一定顺序训练弱分类器。假设已经有m个弱分类器,训练第m+1个弱分类器时,增加已有弱分类器分错样本的权重,使得第m+1个分类器更关注已有分类器分错的样本。称为AdaBoost(Adaptive Boosting)算法.
  AdaBoost算法是一种迭代式的训练算法,通过改变数据分布来提高弱分类器的差异,每一轮训练中,增加分错样本的权重,减少对样本的权重,从而得到一个新的数据分布。
  以二分类为例,弱分类器 f m ( x ) ∈ { + 1 , − 1 } f_m(x)\in\{+1, -1\} fm(x){ +1,1},AdaBoost的训练过程如下,最初赋予每个样本相同权重,每一轮迭代中,根据当前样本的样本权重重新训练一个新的弱分类器,然后根据这个弱分类器的错误率来计算其集成权重,并调整权重。
在这里插入图片描述
AdaBoost算法的统计学解释 AdaBoost算法可看做是一种分步的加性模型,其损失函数定义为:
在这里插入图片描述
其中 y , f m ( x ) ∈ { + 1 , − 1 } y, f_m(\pmb{x})\in\{+1,-1\} y,fm(xxx){ +1,1}
  假设经过 m-1 次迭代,得到:
在这里插入图片描述
则第m次迭代的目标就是找一个 α m \alpha_m αm f m ( x ) f_m(\pmb{x}) fm(xxx)使得下面的损失函数最小:
在这里插入图片描述
  令 w m ( n ) = e x p ( − y ( n ) F m − 1 ( x ( n ) ) ) w_m^{(n)}=exp(-y^{(n)}F_{m-1}(x^{(n)})) wm(n)=exp(y(n)Fm1(x(n))) ,则损失函数改写为:
在这里插入图片描述
   因 y , f m ( x ) ∈ { + 1 , − 1 } , I ( x ) y, f_m(\pmb{x})\in\{+1,-1\} ,I(x) y,fm(xxx){ +1,1}I(x)为指示函数,则:
在这里插入图片描述
  将损失函数在 − α m y ( n ) f m ( x ( n ) ) = 0 -\alpha_my^{(n)}f_m(\pmb{x}^{(n)})=0 αmy(n)f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值