- The Choice of a
- 十大算法之一的原因:有非常好的特性,可以从数学上证明很多东西
- 例如,可以证明其(训练)误差的上界可以越来越小,趋近于0
- 例如,我们通常会认为a是一个参数是需要手工调整的,但其实不是,a是可以推导出来的
- 思路:怎样能够推导出模型的训练误差的上界(upper bound),如果能把它表示出来,就能够进一步推导a怎么取能够使(误差)上界越来越小
- a原来是:1/2ln(1-错误率/错误率)
- Proof:
- 第一步
- 要表示模型误差,先看看第i个样本在第t+1时刻的权重,是一个连乘的关系,最初的时候所有样本的权重相同(m个样本就是1/m)
- 往后的每一次就是后面的每个分式,它要么增加要么减少,取决于分式中的y和h(如果相等的话它的权重就减少,否则就增加),每一次都做一次调整,每个分式就是它调整的幅度
- 所有的东西乘起来,就等于在最终的t+1时刻的相应值
- 图中右侧,使用f表示这个求和,f是一个连续值(0.3、-0.5等)
- 最终模型的输出H,其实就是在f外面加了一层sign函数(看结果是大于0还是小于0,即分类结果是+1还是-1)
- [[ ]]:表示双括号中的表达式成立的话,其输出结果是1,否则输出结果是0
- 图片最后一行不等式:左侧为模型的错误率(误差),即表示出了模型误差的上界(下一步看看不等式右侧如何处理)
- 第二步
- 所有样本的权重在任何一个generation加起来等于1
- 最小化Z就可以最小化模型的训练误差上界(将上界和算法中的某一个变量联系起来)
- 问题:如何最小化
- 解决:使用了一个近似的方法,因为模型训练时是一个一个训练的,不可能同时优化50个Z,实际上是用了一种最速下降方法(或者说是一种贪婪算法),每次就把当前的Z最小化
- 思考:
- 如果当前的训练集当中,很多样本都被分对了,那么其权重就会越来越小,即当前数据集中这些样本的权重都很小,所以加起来的Z也会很小
- 也就是比较小的Z就代表了这些分类器分得都很对,否则情况就不太好,很多样本都被分类器分错了,所以这些权重越来越高
- 第三步(a值)
- 分两种情况后,求导
- D · P(y ! = h)的求和就是误差
- 当a为求出的式子时(有解析解),可以最小化Z,从而可以最小化模型训练误差的上界
- 第一步
- 十大算法之一的原因:有非常好的特性,可以从数学上证明很多东西
- Error Bounds(误差范围)
- 定义r便于计算
- 观察:模型误差的上界是由很多很多的0、1之间的数乘起来的,乘得越多,数值越小,越来越趋近于0
- Summary of AdaBoost
9.4集成之美:AdaBoost
最新推荐文章于 2024-09-24 23:52:54 发布