Adaboost算法的原理推导及解释
Posted Super__Tiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Adaboost算法的原理推导及解释相关的知识,希望对你有一定的参考价值。
文章目录
Adaboost算法的原理推导及解释
前置知识:Boosting概述
Boosting方法的基本思想
该方法使用迭代方式完成对各个弱学习器的训练构造, 每次迭代对训练样本集的选择都与前面各轮的学习结果有关。
使用前面各轮学习结果更新当前各训练样本的权重,对前面被错误预测的赋予较大的权重,实现对当前训练样本集合数据分布的优化
。
Boosting方法的的学习方法
Boosting 集成学习通常使用两种方式调整训练样本集的数据分布
。
-
仅调整样本数据的权重,而不改变当前训练样本集合。
-
改变当前训练样本集合,将被前面弱学习器错误预测的样本复制到关于当前弱学习器的训练样本集合中重新进行训练。
在实际的模型训练中,常使用第一种方式调整训练样本的数据分布。第二种方式是复制被前面弱学习器错误预测样本到样本训练集当中重新进行训练。
而调整样本权重的基本思想是提高当前训练样本集合中被错误预测样本的权重
,降低已被正确预测样本的权重
,使得后续对的弱学习器的训练构造更加重视那些被错误预测的样本。
关于权重的理解(非常重要!!!):
-
一方面,指的是分类错误率方向的影响,指的是计算学习器L对样本集D的分类错误率时候的样本比重,即假如样本dj分类错误,本来该样本权重系数应该是1/n(n为样本集D的样本总数目),然后经过调整,dj的权重系数修改为1/2;相应的di分类正确的样本权重修改为1/2。
-
另一方面,指的是模型参数训练优化方向的影响,指的是模型不断优化的梯度或者决策方向,朝着哪一个或者哪些方向去迭代优化,例如: w i + 1 = w i + ∑ k = 1 n w i k φ ( w i k X k ) \\mathbfw_\\mathbfi+1=\\mathbfw_\\mathbfi+\\sum_\\mathbfk=1^\\mathbfn\\mathbfw_\\mathbfik\\mathbf\\varphi \\left( \\mathbfw_\\mathbfik\\mathbfX_\\mathbfk \\right) wi+1=wi+∑k=1nwikφ(wikXk),当模型参数的更新公式中涉及到输入样本时,权重将会影响模型参数的优化方向。
方法的流程如下:
- 对于n个样本的训练集,初始样本权重为1/n,则对所有被预测错误样本集Q,其整体权重等于ε。
- 若规定权重更新后Q的整体权重为1/2,则需将其初始权重ε乘以1/(2ε), 即ε*1/(2ε)=1/2。
- 为了保证更新后的概率之和为1,则剩余样本应乘以1/[2(1-ε)]。
例题:现有均匀分配权重样本集训练得到的分类器𝐶1,其分类结果如表所示。试更新该训练样本集的权重并求出分类器𝐶1基于更新权重后样本集的分类错误率。
依题意可知,共有60个分类正确样本、共40个分类错误样本,分类错误率为𝜀 =0.4。错误分类样本权重更新因子𝛼 = 1/(2𝜀)= 1.25,正确分类样本权重更新因子𝛽 = 1/[2(1 − 𝜀)]=5/6,则权重更新后分类结果 表所示,此时错误率𝜀′ = 0.5,结果如下表。
核心部分:Adaboost算法的原理推导和解释
Adaboost算法的基本思想
AdaBoost是一种具有自适应性质的Boosting集成学习算法,自适应性主要表现在自动提升被错误预测样本的权重,自动减少被正确预测样本的权重,使得弱学习器训练过程能够根据模型预测性能自动进行调整。
Adaboost算法的算法流程
现以二分类任务为例介绍该算法的具体过程:
-
对于训练样本集𝐷 = 𝑋1, 𝑦1 , 𝑋2, 𝑦2 , ⋯ , (𝑋𝑛, 𝑦𝑛),其中𝑦𝑖𝜖−1, +1,由 AdaBoost 集成学习算法构造集成模型的基本步骤如下:
(1)令𝑖=1并设定弱学习器的数目𝑚。使用均匀分布初始化训练样本集的权重分布,令𝑛维向量𝑤𝑖表示第𝑖次需更新的样本权重,则有:𝑤1= (𝑤11, 𝑤12, ⋯ , 𝑤1𝑛)𝑇 =(1/n, 1/n, …, 1/n)T。 (w12代表第1次迭代,第2个样本对应的样本权重,一个样本的权重主要影响的是模型不断优化的梯度或者决策方向,朝着哪一个或者哪些方向去迭代优化,例如: w i + 1 = w i + ∑ k = 1 n w i k φ ( w i k X k ) \\mathbfw_\\mathbfi+1=\\mathbfw_\\mathbfi+\\sum_\\mathbfk=1^\\mathbfn\\mathbfw_\\mathbfik\\mathbf\\varphi \\left( \\mathbfw_\\mathbfik\\mathbfX_\\mathbfk \\right) wi+1=wi+∑k=1nwikφ(wikXk),当模型参数的更新公式中涉及到输入样本时,权重将会影响模型参数的优化方向)
(2)使用权重分布为𝑤𝑖的训练样本集𝐷𝑖学习得到第𝑖个弱学习器𝑓i 。
(3)计算𝑓𝑖在训练样本集𝐷𝑖上的分类错误率𝑒𝑖:
e i = ∑ k = 1 n w i k I ( f i ( X k ) ≠ y k ) \\mathbfe_\\mathbfi=\\sum_\\mathbfk=1^\\mathbfn\\mathbfw_\\mathbfik\\mathbfI\\left( \\mathbff_\\mathbfi\\left( \\mathbfX_\\mathbfk \\right) \\ne \\mathbfy_\\mathbfk \\right) ei=k=1∑nwikI(fi(Xk)=yk)
(4)确定弱学习器𝑓𝑖的组合权重𝛼𝑖。由于弱学习器𝑓𝑖的权重取值应与其分类性能相关,对于分类错误率𝑒𝑖越小的𝑓𝑖,则其权重𝛼𝑖应该越大,故有 α i = 1 2 ln 1 − e i e i \\mathbf\\alpha _\\mathbfi=\\frac12\\ln \\frac1-\\mathbfe_\\mathbfi\\mathbfe_\\mathbfi αi=21lnei1−ei。(5)依据弱学习器𝑓𝑖对训练样本集𝐷𝑖的分类错误率𝑒𝑖更新样本权重,更新公式为 w i + 1 , j = w i j e ( − α i y j f i ( X j ) ) z i \\mathbfw_\\mathbfi+1,\\mathbfj=\\frac\\mathbfw_\\mathbfij\\mathbfe^\\left( -\\mathbf\\alpha _\\mathbfi\\mathbfy_\\mathbfj\\mathbff_\\mathbfi\\left( \\mathbfX_\\mathbfj \\right) \\right)\\mathbfz_\\mathbfi wi+1,j=ziwije(−αiyjfi(Xj)),其中为 z i = ∑ j = 1 n w i j e ( − α i y j f i ( X j ) ) \\mathbfz_\\mathbfi=\\sum_\\mathbfj=1^\\mathbfn\\mathbfw_\\mathbfij\\mathbfe^\\left( -\\mathbf\\alpha _\\mathbfi\\mathbfy_\\mathbfj\\mathbff_\\mathbfi\\left( \\mathbfX_\\mathbfj \\right) \\right) zi=∑j=1nwije(−αiyjfi(Xj))归一化因子,保证更新后权重向量是概率之和等于1。(其中yj∈1,-1,而fi(Xj)∈1,-1,如果第i次迭代,分类正确,则相对之前的权重降低了 e i 1 − e i \\sqrt\\frac\\mathbfe_\\mathbfi1-\\mathbfe_\\mathbfi 1−eiei;否则,权重则提升了 1 e i − 1 \\sqrt\\frac1\\mathbfe_\\mathbfi-1 ei1−1。)
(6)若𝑖 < 𝑚,则令𝑖 = 𝑖 + 1并返回步骤(2),否则执行步骤(7)。
(7)对于𝑚个弱分类器𝑓1, 𝑓2, ⋯ , 𝑓𝑚,分别将每个𝑓𝑖按权重𝛼𝑖进行组合: G = s i g n ( ∑ i = 1 m α i f i ( X ) ) \\mathbfG=\\mathbfsign\\left( \\sum_\\mathbfi=1^\\mathbfm\\mathbf\\alpha _\\mathbfi\\mathbff_\\mathbfi\\left( \\mathbfX \\right) \\right) G=sign(∑Adaboost 算法的原理与推导——转载及修改完善