Day28 - 集成学习 (ensemble learning) part1

集成学习 (ensemble learning) 的概念在於透过结合多个不同的模型来达到不同模型之间彼此互补的效果,简单来说就是 「三个臭皮匠胜过一个诸葛亮」。

为了方便,我们会使用 MLP、CNN 及 RNN 来表示上述实验所提到的 MLP(两层隐藏层,L = 2,tanh)、multi-scale CNN with attention mechanism(tanh) 及 LSTM-RNN with attention mechanism(tanh)三种模型。

在今天的内容中我们会介绍三种 ensemble learning 的方式:

  1. Bagging (Bootstrap Aggregating)
  2. Max-out unit 结合
  3. 内插(interpolation)

Bagging 的流程会分为三个步骤:

  1. 从原始训练集中有放回的选出数量相同的训练集(各类被选到的机率相等,因此挑选出来的训练集各类别平衡,此过程称为 balanced bootstrap sampling),共进行 k 轮选取,建构出 k 个训练集(每一轮建构出的训练集,可能会缺少原始训练集中的部份样本,并且可能会包含多个重复的样本)。
  2. 每轮使用一个训练集训练一分类模型,因此 k 个训练集可得到 k 个分类模型。
  3. 以 k 个分类器对测试集进行分类,会得到 k 组分类结果,最後以投票的方式产生最终的分类结果(若有两类以上票数相同,则随机选取一类)。

图1 为 bagging 训练过程的流程图
https://ithelp.ithome.com.tw/upload/images/20211010/20140944WQ6FOkMY6T.png
图1: Bagging训练过程流程图。黑色箭头表示训练阶段,红色箭头表示测试阶段


除了一般的 bagging之 外,我们也会对 bagging 的训练过程做部份的调整并比较不同 bagging 之间的结果。对於 bagging 训练过程的调整包含以下三种:

  1. Bagging with random base classifier: 在一般的 bagging 中,每一轮所使用的分类器是相同的,差别是在於训练集的不同。而 bagging with random base classifie 则是在每一轮的训练过程中随机从三种分类器(MLP、CNN、RNN)中选出一种做为此轮的分类模型
  2. Bagging with random missing data: 此部份是在 balanced bootstrap sampling 之後加入random missing data 的机制。此机制会根据遗失率(missing ratio)m(设定为 10%)随机丢弃部份的资料,经过 random missing data 的机制所产生的资料集称为不完整训练集(incomplete training set),其资料总数会比原始训练集少。
  3. Bagging with random missing feature: 最後一部份的修改是在 random missing data 之後再加入 random missing feature 的机制。此机制与 random missing data 类似,差异点在於此步骤是随机的将部份特徵值丢弃。静态模型与动态模型特徵向量维度的变化如下:
    • MLP: 384维 ⇒ 360维
    • CNN: 384维(16×12×2) ⇒ 360维 ⇒ 15×12×2
    • RNN: 32维 ⇒ 25维

经过以上三个部份的调整後,bagging 的训练过程如图 2。
https://ithelp.ithome.com.tw/upload/images/20211010/20140944FkybqNUf2R.png
图2: 调整过後bagging训练过程流程图。黑色箭头表示训练阶段,红色箭头表示测 试阶段

我们先透过下表来观察一般的 bagging 结果

Base classifier # bootstrap (k) UA recall
MLP 10,20 45.8%,46.0%
CNN 10,20 45.4%,45.6%
RNN 10,20 45.7%,45.9%

表1: 一 般bagging实验结果 。# bootstraps (k)表示 balanced bootstrap sampling 次数

而经过调整过後的 bagging 结果如表2。

Adjust method Base classifier # bootstrap (k) UA recall
Bagging with random base classifier MLP or CNN or RNN 10,20,30 46.2%,47.5%,48.0%
Bagging with random base classifier and random missing data MLP or CNN or RNN 10,20,30 47.0%,47.7%,48.2%
Bagging with random base classifier and random missing data and random missing feature MLP or CNN or RNN 10,20,30 45.9%,47.3%,47.7%

表2: 调整过後bagging实验比较。# bootstraps (k)表示 balanced bootstrap sampling 次数

从结果中可得知一般的 bagging 无法提升效能而调整後的 bagging 能够提升至 48.2%。主要原因为一般的 bagging 差异性只来自於不同的训练集,导致 bagging 过程中每一轮训练得到的分类器差异性不大无法达到互补的效果。

进一步观察表 2 可发现加入 random missing data 後 UA recall 有些微的提升而再加入 random missing feature 後 UA recall 反而是下降的,主要原因应是将部份的特徵丢弃之後可能使神经网路无法藉由剩下的特徵学习到不同类别间的差异,导致分类器的辨识能力降低

明天将续介绍另外两种 ensemble learning 的方法。


<<:  [D25] 物件侦测(6)

>>:  Day 28. 组件基础 - Components

Day01 - 复习 canvas 做个同化别人的小方块

今天去打疫苗,想说做个感染人的坏东西,可惜没时间好好美化他,主要做出以下功能 设定两个角色(Frie...

人脸辨识-day14 系统建置

人脸辨识建置的类型有两种: 第一种为使用云端计算,因需要使用云端计算,所以需要确保网路连线顺畅,在将...

[Day5] Flutter - 垂直布局容器 ( Column )

前言 Hi, 我是鱼板伯爵今天要教大家 Column 这个容器,教学内容只会撷取片段程序码,建议大家...

iOS APP 开发 OC 第十九天,@property

tags: OC 30 day @property参数 @property可以带参数的 @propo...

DAY 15:Factory Method Pattern,把复杂的逻辑拆分至小工厂中

工厂模式主要有三种不同的实作: Simple Factory Pattern Factory Met...