iT邦幫忙

2021 iThome 鐵人賽

DAY 28
1
AI & Data

機器學習應用於語音相關服務系列 第 28

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 的方法。


上一篇
Day27 - 動態模型 part2 (LSTM with attention)
下一篇
Day29 - 集成學習 (ensemble learning) part2
系列文
機器學習應用於語音相關服務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言