从优化角度推导Adaboost

本文从优化角度深入推导Adaboost算法,首先回顾其基本原理和流程,然后详细阐述了从第一次迭代到第k次迭代的优化过程,每次迭代中如何选择最优分类器并更新样本权重,最终得出加权弱分类器的组合方式。通过这种方式,Adaboost有效地解决了优化问题,避免过拟合的同时保证了算法性能。
摘要由CSDN通过智能技术生成

1 回顾AdaBoost算法流程

Adaboost基本原理是将多个弱分类器加权组合,最终形成一个强分类器。算法中有两个重要的权重:样本权重分类器权重。算法每一次迭代中只投入一个弱分类器进行训练,当前加权样本上计算得到误差,并通过误差来计算此分类器的权重,并更新样本的权重

1.1 模型参数

样本 { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x n , y n ) } \{(x_1,y_1),(x_2,y_2)...(x_n,y_n)\} { (x1,y1),(x2,y2)...(xn,yn)},其中 y i ∈ { − 1 , 1 } y_i\in\{-1,1\} yi{ 1,1}

分类器 { k 1 , k 2 . . . k l } \{k_1,k_2...k_l\} { k1,k2...kl},其中 k j ( x i ) ∈ { − 1 , 1 } k_j(x_i)\in\{-1,1\} kj(xi){ 1,1}

样本初始权重 w ( 1 ) = ( w 1 ( 1 ) , w 2 ( 1 ) . . . w n ( 1 ) ) = ( 1 , 1 , . . . , 1 ) w^{(1)}=(w^{(1)}_1,w^{(1)}_2...w^{(1)}_n)=(1,1,...,1) w(1)=(w1(1),w2(1)...wn(1))=(1,1,...,1)

1.2 算法流程

假设我们进行T次迭代(:迭代次数不一定要等于分类器数量),则

对于 t = 1,2…,T

  1. 选择使得误差 E t E_t Et 最小的分类器 k,并设其为 C t C_t Ct
    E t = ∑ i = 1 n w i ( t ) ∑ j = 1 n w j ( t ) I { y i ≠ C t ( x i ) } E_t = \sum\limits^{n}_{i=1}\frac{w^{(t)}_i}{\sum\limits^{n}_{j=1}w^{(t)}_j}I\{y_i\neq C_t(x_i)\} Et=i=1nj=1nwj(t)wi(t)I{ yi̸=Ct(xi)}
  2. 通过误差可以计算该分类器的权重
    a t = 1 2 l n ( 1 − E t E t ) a_t=\frac{1}{2}ln(\frac{1-E_t}{E_t}) at=21ln(Et1Et)
  3. 接下来更新样本权重
    w i ( t + 1 ) = w i ( t ) ∑ j = 1 n w j ( t ) e x p { 2 a t I { y i ≠ C t ( x i ) } } w^{(t+1)}_i=\frac{w^{(t)}_i}{\sum\limits^{n}_{j=1}w^{(t)}_j}exp\{2a_t I\{y_i\neq C_t(x_i)\}\} wi(t+1)=j=1nwj(t)wi(t)exp{ 2atI{ yi̸=Ct(xi)}}

end

1.3 算法结果

最终得到弱分类器的加权和
f ( x i ) = ∑ t = 1 T a t C t ( x i ) f(x_i)=\sum\limits^{T}_{t=1}a_tC_t(x_i) f(xi)=t=1TatCt(xi)

2 从优化角度推导Adaboost

2.1 推导过程

2.1.1 第一次迭代

首先我们考虑Adaboost第一次迭代,对于分类器的选择和权重的确定,可以化为一个简单的优化问题:

y ∈ { − 1 , 1 } , 设 分 类 器 f ( x i ) = a 1 C 1 ( x i ) , 其 中 C 1 ( x i ) ∈ { − 1 , 1 } y\in\{-1,1\},设分类器f(x_i)=a_1C_1(x_i),其中C_1(x_i)\in\{-1,1\} y{ 1,1}f(xi)=a1C1(xi)C1(xi){ 1,1}
损 失 函 数 : L ( y i , f ( x i ) ) = e − y i f ( x i ) 损失函数: L(y_i,f(x_i))=e^{-y_if(x_i)} L(yi,f(xi))=eyif(xi)
总 误 差 为 : L ( a 1 , C 1 ) = ∑ i = 1 n e − y i f ( x i ) = ∑ i = 1 n e − y i a 1 C 1 ( x i ) 总误差为:L(a_1,C_1)=\sum\limits^{n}_{i=1}e^{-y_if(x_i)}=\sum\limits^{n}_{i=1}e^{-y_ia_1C_1(x_i)} L(a1,C1)=i=1neyif(xi)=i=1neyia1C1(xi)
则我们目标是求解优化问题: ( a 1 ^ , C 1 ^ ) = a r g m i n a 1 , C 1 L ( a 1 , C 1 ) (\hat{a_1},\hat{C_1})=argmin_{a_1,C_1}L(a_1,C_1) (a1^,C1^)=argmina1,C1L(a1,C1)

证明:
L ( a 1 , C 1 ) = ∑ i = 1 n e − y i a 1 C 1 ( x i ) L(a_1,C_1)=\sum\limits^{n}_{i=1}e^{-y_ia_1C_1(x_i)} L(a1,C1)=i=1neyia1C1(xi)
      = ∑ i = 1 n e − a 1 I { y i = C 1 ( x i ) } + ∑ i = 1 n e a 1 I { y i ≠ C 1 ( x i ) }   ( ∗ ) =\sum\limits^{n}_{i=1}e^{-a_1}I\{y_i=C_1(x_i)\}+\sum\limits^{n}_{i=1}e^{a_1}I\{y_i\neq C_1(x_i)\} (*) =i=1nea1I{ yi=C1(xi)}+i=1nea1I{ yi̸=C1(xi)} ()
      = ∑ i = 1 n e − a 1 I { y i = C 1 ( x i ) } + ∑ i = 1 n e − a 1 I { y i ≠ C 1 ( x i ) } =\sum\limits^{n}_{i=1}e^{-a_1}I\{y_i=C_1(x_i)\}+\sum\limits^{n}_{i=1}e^{-a_1}I\{y_i\neq C_1(x_i)\} =i=1nea1I{ yi=C1(xi)}+i=1nea1I{ yi̸=C1(x<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值