之前看过一次AdaBoost分类模型,现在结合大神的讲解准备自己从头理解一下。主要包含一下几个方面:
1.泰勒展开式
2.AdaBoost算法思想
3.指数损失函数的意义
4.迭代权重参数的求解
1.泰勒展开式
泰勒公式是将一个在x=x0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法。
若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:
其中Rn(x)为误差项。其中皮亚诺误差项:
将函数ex在x0=0处展开:
由于AdaBoost使用指数损失函数,后面要用到指数函数泰勒展开式来进行近似计算
2.AdaBoost模型思想
采用集成学习方式进行分类,采用多个基学习器的输出组合来确定最终输出,实现分类。
一般采用基学习器的加权平均来实现组合:
每个学习器的权重需要根据本轮的预测结果错误率来进行调整:
每个样本的权重分布也需要根据分类结果进行调整(分类错误,权重增加):
整体算法流程如下:
给定训练集,初始样本权重设置为一样1/m
根据最大迭代次数来进行迭代,
在每一轮中基于训练集以及样本分布权重来构建基学习器,
计算本轮的学习错误率,根据错误率来对学习器权重以及样本权重进行更新
最后加权组合每个基学习器组成最终学习器。
3.指数损失函数的意义
在分类问题中,损失函数一般使用0-1损失,即分类失败即累计1,在导出AdaBoost权重迭代式的过程中使用指数损失函数,在此指数损失函数与0--1损失是一致的。现在给出指数损失函数的意义:
第t轮输出为前几轮的加权平均:
在样本分布D下,希望指数损失函数的期望最小:
L对于H求导等于零:
解之得:
最终输出:
由指数损失函数期望最小,可以导出最优的H即为最优分类器,分类错误率最小,即可达到指数损失函数期望最小。若想指数损失函数的期望最小,则需要预测值等于真实值,即使用指数损失函数来作为优化目标等价于求解分类错误率最优。
4.迭代权重参数求解
数据样本在Dt分布下,调节参数使指数函数期望最小:
分类错误率的定义:
有:
L对于alphat求导等于零:
以上便是第k个基学习器的权重系数。
现在求Dt的迭代公式:
由于:
由于f(x) ht(x)输出为1或-1,有:
泰勒展开式有:
最优的ht学习器要满足:
为一常数,不会影响最终结果。
令Dt表示分布:
对Dt(f(x)h(x))求期望:
最优ht(x)等价于:
最优ht分类器如下:即错误期望最小
求解Dt+1与Dt关系:
最后一项为常数,不影响结果,进行归一化如下:
以上便是样本权重的迭代式。
参考地址: