内容提要:
*AdaBoost算法解读
*如何理解 αm的计算来源
* 如何理解更新权重的内涵
点击蓝字 |关注我们
欢迎回来。上一期我们大家一起以一个「二分类问题」为例,手算了一遍AdaBoost算法的求解过程。
通过一系列的「同类型的弱可学习器」 ,迭代更新权重 和决策函数 ,最终实现了预测值和实际值零误分类率的完全吻合。当然啦,上一期有几个非常关键的参数 和 ,还有规范化因子 的来源并没有展开说明,悬念就在这期揭晓啦,那么我们这期就一起看看「AdaBoost算法」的理论版。
壹 AdaBoost算法解读
1.AdaBoost算法解读
既然是算法,必然伴随着输入和输出。
「输入」:训练数据集 , 其中 ,
「输出」:最终分类器
接着我们就来看一下各个步骤。
Step 1 初始化训练数据的权重分布
初始化这里可以用咱们在最大熵中的学习思想,当我们不知道每个样本对应的概率时,怎么选取初值呢?不妨就以等概率来试试。
可以写成:
Step 2 找到每轮的基本分类器,并计算出 系数
「对应的每次迭代的轮数」用 表示, ,那么第 轮的权重记为 。
使用具有权值分布 的训练数据集学习,以咱们所说的例子,正是通过粗略判断二分类误差率低来得到基本分类器 :
然后计算 在训练数据集上的分类误差率:
有了分类误差率,「这个弱学习器所对应的系数」就按照下面的公式得出:
注意哦,这里的对数是自然对数,那么为什么是对数的表达式,先别急,稍后揭秘。
Step 3 更新训练数据集的权值分布
接下来要「对数据集权重进行更新」,这就是更新后的权重:
其中 是「规范化因子」,说白了就是要把权重归一,保证各个权重之和为 ,也就是说 是一个概率分布的形式出现的,并且每一个权重的范围在 之间,这是它作为离散分布的必备特点。
Step 4 构建基本分类器的线性组合
有了新一轮的权重,我们就继续重复步骤2和步骤3,最终得到每轮的系数 ,进而得到最终分类器:
最终分类器本质就是 个弱分类器加权求和,可以写成:
这就是「AdaBoost算法」的详细过程。
贰 如何理解 的计算来源
1.从指数损失到目标函数
好啦,接着咱们就开始详解 的来源。
先来看看它出现的位置是:
新一轮分类函数也就是上一轮求出的分类函数加上这一轮分类器乘以系数之和,也就是基分类器的更新迭代公式。
在这个分类问题中,我们采用「指数损失」的形式来描述预测和实际之间的误差。
是我们实际观测到的,而 是通过分类器拟合预测出来的,下面我们就来分析如何选取 才能让这个指数损失最小,损失最小意味着预测和实际最符合。
如果我们把所有的样本点都考虑在内,那么「总的指数损失」就是:
假如想找到令这个指数损失最小的 ,我们可以把模型的迭代公式写成去:
接着大家仔细看,绿色的部分是不是有点眼熟呢?往上翻一翻,它正是:
那么前面的部分呢?其实就是对应的相应的权重了。
注意一下等式左右两边的角标,这里之所以是 是因为他是通过上一轮更新出来的权重。
接着,咱们继续分析一下:当 时,意味着实际类别和分类器一致,那么就是「正确分类」。
和 要么都等于 ,要么都等于 ,相乘自然为 。
那么当 时,这个式子可以写成:
当 时,意味着实际类别和分类器不同,相乘为 ,那么就是「错误分类」:
这样目标函数就变了两部分,一部分是分类正确的,另一部分是分类错误的:
那么如何把它们都表示成分类错误的呢,咱们把前面的改成总的减去错误的就行:
这样目标函数都是用误分类来表示的,那么下面怎么用这个目标函数得到 呢?
2.用费马原理求出
这就不得不继续搬出咱们说过很多次的「费马原理」了神奇的费马与他的费马原理(上篇),神奇的费马与他的费马原理(中篇),神奇的费马与他的费马原理(下篇),通过求偏导能得到对应的值。
对等式两边都乘以 ,那么可以继续写成:
继续我们知道:
那么上面的式子就可以写成:
往上翻一翻,因为对于错误分类的分类误差率就等于:
那么关于 的等式可以继续写成:
两边取对数,自然得到了:
叁 如何理解更新权重的内涵
通过前面的推导,我们知道:
如果把 变成 可以得到:
又因为:
我们代入就可以继续得出:
大家看,这就是前后两轮权重更新迭代公式。
怎么去理解每次权重更新的含义呢?
❝对于分类正确的情况:
二者的乘积必然为 ,那么上式可以简化成:
❞
分类正确,自然此时分类误差率 ,那么对应的 对应的 。
这样我们就知道:
意味着对于分类正确的,自然要降低它新一轮的权重。同理对于不正确的分类,得到的自然是相反的结果:
❝对于分类不正确的情况:
二者的乘积必然为 ,那么上式可以简化成:
❞
分类正确,自然此时分类误差率 ,那么对应的 对应的 。
这样我们就知道:
这样我们就知道了权重更新的内在含义了,那就是:
❝放大错误分类的权重,减小正确分类的权重,在学习过程中不断减少训练误差,以提升组合分类器的正确率。
❞
为了保证新得到的 是以概率分布的形式出现,我们会添加一个规范化因子,如同咱们前面写到的:
这里的 就是为了将权重变成概率分布的规范化因子。
好啦,更新不易,下期我们就要开启「AdaBoost算法的训练误差分析」了,对于公式推导不太熟练的小伙伴不妨关注,和我们一起手推定理,相信你的推导技能一定会大有长进,感兴趣的小伙伴也可以在B站上同步学习,有问题的小伙伴可回复 「入群」,我们下期不见不散~
拓展阅读
欢迎大家关注简博士的B站和公众号,在公众号私信“入群”,可以与小伙伴们一起讨论问题哦。
扫码关注我们
微信号|Dr_Janneil
B站|简博士

