集成学习之Adaboost

Adaboost

0.参考内容及思维导图链接

1.集成学习

1.1 思想

集成学习通过构建并结合多个学习器来完成学习任务

1.1.1 类比

三个臭皮匠,顶个诸葛亮
如下图:

1.1.2 补充概念

在集成学习中,学习器相当于模型,又分为强学习器和弱学习器,弱分类器又叫基分类器。

强学习器:可以认为它是一种准确率很高但相对复杂的模型,比如一些神经网络构建出来的模型,它耗费时间精力多,对算力要求高,花费代价高;
弱学习器:可以认为它是一种比较简单的模型,预测效果不太好,如逻辑回归等简单的模型。
总结就是三个臭皮匠顶个诸葛亮

1.2 优点

集成学习通过将多个学习器进行结合,常常可以获得比单一学习器更加显著的优越性能。

1.3 需要关注的问题

1.3.1 个体学习器如何训练得到?

改变训练数据的权值或者概率分布,如何改变?
个体学习器就是弱学习器,多个弱学习器学到的东西必须是有所差异的,它们各自的强项不一样。

举例:

一个班级里有集成学习之Adaboost,其中集成学习之Adaboost语文好,集成学习之Adaboost英语好,集成学习之Adaboost集成学习之Adaboost数学好,将他们各自好的学科组合起来,就可以抗衡学校里年级第一的学生了。

所以只需要让各学习器,学习不一样的数据就可以了,继续上面的例子

其中集成学习之Adaboost语文好,所以让集成学习之Adaboost侧重的去学习语文(花更多时间),集成学习之Adaboost英语好,所以让集成学习之Adaboost侧重的去学习英语,集成学习之Adaboost集成学习之Adaboost数学好,所以让集成学习之Adaboost侧重的去学习数学。虽然所有学生各科目都学,但是确保发挥各个学生擅长,改变大家的侧重点,比如在固定学习时长中,增长其擅长科目所占时间。

这样相当于改变了训练数据的权值或者概率分布。

1.3.2 如何将个体学习器组合?

是通过线性相加,还是其他方法?
后面会详细说

1.4 分类

当训练和组合有不一样的办法时,就得到两种类别:

  • boosting
  • bagging

1.4.1 对于boosting

2.工作机制
也就是如何解决训练和组合问题:

  • 1.提高那些在前一轮被弱分类器分错的样本的权值;减少那些在前一轮被弱分类器分对的样本的权值,使得误分的样本在后续受到更多的关注,体现了串行。
    举例:

如你有集成学习之Adaboost个分身集成学习之Adaboost,期末考试需要考语数英三门。在平时学习时,你先让集成学习之Adaboost去学习语文,然后通过平时的测验发现集成学习之Adaboost学习语文不错,但是学习数学和英语不行,这时,你可以派集成学习之Adaboost去学习,减少对语文的学习的时间,增多数学和英语的时间,然后通过平时的测验发现集成学习之Adaboost数学学的不错,这时你可以派集成学习之Adaboost去学习,减少对数学和语文的学习的时间,增多英语的时间。

  • 2.加法模型将弱分类器进行线性组合

3.四个问题

  • 1.如何计算学习误差率集成学习之Adaboost?
  • 2.如何得到基学习器权重系数集成学习之Adaboost
  • 3.如何更新样本权重集成学习之Adaboost?
  • 4.使用何种结合策略?

1.4.2 对于bagging

2.工作机制

  • 1.从原始样本集中抽取k个训练集
    • 每轮从原始样本集中使用Boostraping法(自助法,是一种有放回的抽样方法,可能抽到重复的样本)抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中),共进行j轮抽取,得到k个训练集(k个训练集相互独立)。
    • 随机森林中,还会随机抽取一定数量的特征。
    • 举例:待补充。
  • 2.k个训练集分别训练,共得到k个模型,体现了并行。
  • 3.将上步得到的k个模型,通过一定方式组合起来
    • 分类问题:将上步得到的k个模型采用投票的方式得到分类结果。
    • 回归问题:计算上述模型的均值作为最后的结果。

3.代表
随机森林

2.Adaboost

Adaboost解决的是二分类问题

2.1 参考资料

《机器学习方法》作者:李航

2.2 思路

2.2.1 数学表达

表达式
集成学习之Adaboost

其中集成学习之Adaboost集成学习之Adaboost的”分类误差率”决定,训练样本集成学习之Adaboost:提高前一轮“错误分类”的样本的权值,降低前一轮“正确分类”的样本的权值。
注意到,集成学习之Adaboost不是之前说的权重值,之前说的权值是集成学习之Adaboost

2.2.2 基本思路

1.每一轮中,分别记录好那些被当前弱分类器正确分类和错误分类的样本,在下一轮训练时,提高错误分类样本的权值,同时降低正确分类样本的权重,用以训练新的弱分类器。这样一来,那些没有被正确分类的数据,由于其权值加大,会受到后一轮的更大关注。

如何理解改变样本的权值?

举例:
初始有3个样本,即其所占比例
集成学习之Adaboost

样本集成学习之Adaboost集成学习之Adaboost集成学习之Adaboost
所占比例集成学习之Adaboost集成学习之Adaboost集成学习之Adaboost

经过一轮学习后,集成学习之Adaboost分类器成功将集成学习之Adaboost分类成功,所以我们需要将这两个样本的权重降低,提高第一个样本的权值,即下面表格:

集成学习之Adaboost

样本集成学习之Adaboost集成学习之Adaboost集成学习之Adaboost
所占比例集成学习之Adaboost集成学习之Adaboost集成学习之Adaboost

所以增大权值相当于将初始样本中的错误分类的数量变多了,变成了这样:

集成学习之Adaboost 集成学习之Adaboost 集成学习之Adaboost

2.加权多数表决

  • 1.加大分类误差率小的弱分类器的权值集成学习之Adaboost,使其在表决中起较大作用;
  • 2.减少分类误差率大的弱分类器的权值集成学习之Adaboost,使其在表决中起较小作用。

2.3 算法流程

2.3.1 基本流程

1.二分类训练数据集
集成学习之Adaboost,其中,每个样本点由实例与标记组成。实例集成学习之Adaboost,标记集成学习之Adaboost集成学习之Adaboost是实例空间,集成学习之Adaboost是标记集合。
2.定义基分类器(弱分类器)集成学习之Adaboost
大部分情况下,集成学习之Adaboost都是同一类型的分类器。
比如:集成学习之Adaboost,其中集成学习之Adaboost为阈值
3.具体算法流程

1.初始化/更新当前训练数据的权值分布

  • 如果是初始化: 集成学习之Adaboost,初始化权值(这个是训练数据的权值,不是基分类器的)使用数量的平均值集成学习之Adaboost

  • 如果是更新(不是第一次):

2.训练当前基分类器集成学习之Adaboost

使用具有权值分布集成学习之Adaboost的训练数据集学习,得到基分类器集成学习之Adaboost。比如,你选择的是逻辑回归模型,就要交叉熵作为损失函数,用梯度下降作为优化方法来训练。

3.计算当前基分类器的权值集成学习之Adaboost

  • 1.先要计算当前集成学习之Adaboost在训练集上的分类误差率
    集成学习之Adaboost,其中集成学习之Adaboost为指示函数,集成学习之Adaboost
    其中集成学习之Adaboost一定满足集成学习之Adaboost,下面是简单的解释:

基分类器的权重集成学习之Adaboost集成学习之Adaboost越大,集成学习之Adaboost越小,也就是说,误差率小的基分类器权重越大,当集成学习之Adaboost集成学习之Adaboost;当集成学习之Adaboost集成学习之Adaboost,但是必有集成学习之Adaboost,所以分类误差率集成学习之Adaboost,如果集成学习之Adaboost,那就把该分类器的结果都取一个相反的结果,这样一来取反后的分类器误差率还是小于集成学习之Adaboost

举例:

4.将集成学习之Adaboost更新到加法模型集成学习之Adaboost

集成学习之Adaboost

5.判断是否满足循环退出条件,如定义的M次或者模型精度

  • 分类器个数是否达到M
  • 总分类器误差率是否低于设定的精度(集成学习之Adaboost

2.3.2 例题

1.二分类训练数据集

在x中划分出候选阈值(如图中红色箭头指向的所示),
从中选出使得误差率集成学习之Adaboost最小的,作为我们最终阈值构建好集成学习之Adaboost

3.循环M次

M=1时:
1.初始化/更新当前训练数据的权值分布

  • 初始化:集成学习之Adaboost

2.训练当前基分类器

  • 使用具有权值分布集成学习之Adaboost的训练数据集学习,得到基分类器集成学习之Adaboost
  • 训练方法:1.在集成学习之Adaboost中划分出各候选阈值,构建好候选集成学习之Adaboost;2.找到使误差集成学习之Adaboost最小的集成学习之Adaboost,作为本轮的基分类器。
    在权值分布为集成学习之Adaboost的训练数据上,阈值集成学习之Adaboost取2.5时分类误差最低,故基本分类器为集成学习之Adaboost

3.计算当前基分类器的权值

  • 1.计算当前集成学习之Adaboost在训练集上的分类误差率
    集成学习之Adaboost,其中集成学习之Adaboost为指示函数,集成学习之Adaboost

  • 2.根据分类误差率集成学习之Adaboost,计算基分类器集成学习之Adaboost的权重系数

  • 3.计算集成学习之Adaboost的系数:集成学习之Adaboost

4.将集成学习之Adaboost更新到加法模型集成学习之Adaboost
集成学习之Adaboost

5.判断是否满足循环退出条件

  • 分类器个数是否达到M
  • 总分类器误差是否低于设定的精度

M=2时:
1.初始化/更新当前训练数据的权值分布

  • 更新:

2.训练当前基分类器

  • 使用具有权值分布集成学习之Adaboost的训练数据集学习,得到基分类器集成学习之Adaboost
  • 训练方法:1.在集成学习之Adaboost中划分出各候选阈值,构建好候选集成学习之Adaboost;2.找到使误差集成学习之Adaboost最小的集成学习之Adaboost,作为本轮的基分类器。

3.计算当前基分类器的权值

  • 1.计算当前集成学习之Adaboost在训练集上的分类误差率
    集成学习之Adaboost,其中集成学习之Adaboost为指示函数,集成学习之Adaboost

  • 2.根据分类误差率集成学习之Adaboost,计算基分类器集成学习之Adaboost的权重系数集成学习之Adaboost

  • 3.计算集成学习之Adaboost的系数:集成学习之Adaboost

4.将集成学习之Adaboost更新到加法模型集成学习之Adaboost
集成学习之Adaboost

5.判断是否满足循环退出条件

  • 分类器个数是否达到M
  • 总分类器误差是否低于设定的精度

M=3时:
集成学习之Adaboost

2.4 加法模型

2.4.1 预测函数

集成学习之Adaboost

其中

集成学习之Adaboost

2.4.2 损失函数的设计

1.自定义损失函数集成学习之Adaboost

2.回归问题
MSE均方误差

3.分类问题

  • 指数函数
  • 交叉熵损失

4.优化方法

  • 为什么不用梯度?
    • 梯度下降的缺点:整体损失极小化:集成学习之Adaboost
  • 缺点:复杂度高;举例:假设集成学习之Adaboost,假设L为MSE,集成学习之Adaboost

如:假设你用梯度下降优化,单词迭代过程,就需要同时优化4个参数集成学习之Adaboost(而且集成学习之Adaboost是向量),如果集成学习之Adaboost再大些,单词迭代需要同时更新集成学习之Adaboost个参数,复杂度高。

  • 使用的方法:前向分步算法
    • 具体步骤:

2.5 算法原理

2.5.1 需要优化的问题:二分类

1.二分类训练数据集
2.
集成学习之Adaboost,其中,每个样本点由实例与标记组成。实例集成学习之Adaboost,标记集成学习之Adaboost集成学习之Adaboost是实例空间,集成学习之Adaboost是标记集合。

2.5.2 模型:加法模型

集成学习之Adaboost

2.5.3 最终分类器

集成学习之Adaboost

2.5.4 损失函数:指数损失函数

1.二分类问题,使用指数损失函数
集成学习之Adaboost

  • 集成学习之Adaboost分类正确时,与集成学习之Adaboost同号,集成学习之Adaboost
  • 集成学习之Adaboost分类错误时,与集成学习之Adaboost异号,集成学习之Adaboost

2.将损失函数视为训练数据的权值
集成学习之Adaboost
非常符合训练样本中:提高前一轮“错误分类”的样本权值;降低前一轮“正确分类”的样本的权值。(就是因为集成学习之Adaboost

3.单个样本损失函数
集成学习之Adaboost
4.总体损失函数(把所有样本放进去)
集成学习之Adaboost

2.5.5 优化方法:前向分步算法

1.算法流程

2.第m轮

  • 1.极小化损失函数:集成学习之Adaboost

  • 2.式子变换:
    集成学习之Adaboost,其中集成学习之Adaboost
    推导过程
    集成学习之Adaboost
    3.求解

  • 1.优化集成学习之Adaboost

    • 集成学习之Adaboost本身的意义上来讲,最优的集成学习之Adaboost要使得误差最小
    • 集成学习之Adaboost
  • 2.优化集成学习之Adaboost

    • 集成学习之Adaboost
    • 推导过程:

    式子变换:集成学习之Adaboost
    凸优化:
    求导:集成学习之Adaboost
    导数为0:令集成学习之Adaboost,即:
    集成学习之Adaboost
    公式转换:集成学习之Adaboost
    其中集成学习之Adaboost是损失并不是集成学习之Adaboost限定空间里面的,而之前算法流程中的w是加了规范化因子进行归一化操作,保证了系数和为集成学习之Adaboost

  • 3.前向更新集成学习之Adaboost
    集成学习之Adaboost

  • 4.更新训练数据权值集成学习之Adaboost
    集成学习之Adaboost

    • 推导:
      更新集成学习之Adaboost:
      根据公式:集成学习之Adaboost
      有:集成学习之Adaboost

3.四个问题

3.1 如何计算学习误差率集成学习之Adaboost?

根据分类误差率集成学习之Adaboost,计算基分类器集成学习之Adaboost的权重系数:
集成学习之Adaboost
为什么这样计算基学习器权重系数?

集成学习之Adaboost集成学习之Adaboost 下降时,集成学习之Adaboost单调增,集成学习之Adaboost单调增。

推导过程:
2.5 算法原理

3.2 如何得到基学习器权重系数集成学习之Adaboost

3.3 如何更新样本权重集成学习之Adaboost?

集成学习之Adaboost

更新集成学习之Adaboost:

根据公式:集成学习之Adaboost
有:
集成学习之Adaboost

这里集成学习之Adaboost 是除以过规范化因子集成学习之Adaboost的,从公式集成学习之Adaboost可以看出,如果有第集成学习之Adaboost个样本分类错误,则集成学习之Adaboost,导致样本的权重在第集成学习之Adaboost个基分类器中增大,如果分类正确,则权重在第集成学习之Adaboost个基分类器中减少。

3.4 使用何种结合策略?

集成学习之Adaboost

4.小结

Adaboost的主要优点有:

  • 1.Adaboost作为分类器时,分类精度很高
  • 2.在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。
  • 3.作为简单的二元分类器时,构造简单,结果可理解。
  • 4.不容易发生过拟合

Adaboost的主要缺点有:

  • 1.对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月4日
下一篇 2023年12月4日

相关推荐