Ensembles:三個臭皮匠賽過諸葛亮
論文題目:Why M Heads are Better than One:Training a Diverse Ensemble of Deep Networks
論文地址:Why M Heads are Better than One:Training a Diverse Ensemble of Deep Networks
前言
作者認為在卷積神經網路的快速發展下,大多數的基準測試是將各種強大的神經網路進行ensembles。本文寫這篇的論文的重點並不是要提出一個新的網路模型,而是研究不同整合技術的效果,作者將ensembles作為一個單獨的問題來處理,研究了從權重初始化到引數共享和整合感知損失等多個整合的方法來看ensemble的效果。
核心內容
本文提出的所有觀點背後都有一個貫穿始終的主題:多樣性。作者做的各種嘗試都是在增加多樣性。我理解作者說的增加多樣性是為了增加多個模型預測結果的多樣性,如果說幾個模型預測的誤差都向著同一個方向,即使最後ensembles,也可能不會使結果發生大的最佳化。
實驗設定
資料集(分類資料集):
CIFAR10,CIFAR100,ILSVRC2012
模型:
三種資料集採用的模型分別是: Caffe “CIFAR10 Quick”network ;Network in Network model; both the Network in Network model and CaffeNet
評價指標:
Ensemble-Mean Accuracy:對所有的成員的輸出進行平均,透過平滑成員之間的誤差來減小誤差,從而預測出最大可能的結果。
Oracle Accuracy:為每一個類別選擇最準確的集合成員,再進行預測,是挑選出來最準確集合的平均。
建立模型多樣性的三種方法:
1、隨機初始化和隨機重取樣資料集(bagging)
注:作者僅使用隨機初始化、或僅使用bagging以及將二者結合的三種不同的ensembles技巧來評估實驗的指標。
分析:
1、與單個模型相比,三種方法總體上都改善了實驗結果
2、與隨機初始化相比,bagging降低了Ensemble-Mean Accuracy,而 Oracle Accuracy幾乎保持不變。說明用了bagging的網路效果不好。主要的原因是因為用了bagging我們不僅損失了37%的資料,而且引進了很多重複的資料。
解釋:假設資料集M中有M個數據集,進行重取樣組成資料集B,那麼Xi被取樣到的概
率是
這個數接近1-1/e約等於0。63
3、對於淺層網路模型,由於隨機初始化能夠產生充足的多樣性,所以bagging對於資料集的損失是可以接受的,因為深度網路具有較大的引數空間和大型訓練資料的不確定性。
所以隨機初始化比bagging更加充分和適應。
2、引數共享
引數共享的好處:避免在較低的層中引入重複的引數,造成模型引數的浪費,增加訓練的時間。引數共享使模型成員之間共同受益於底層的共享資訊,同時保留經典整合的優點。
作者提出的TreeNet,訓練從引數全共享,逐漸降低至引數0共享
在兩種不同的TreeNet網路中共享不同的層來評估它們的 Ensemble-Mean Accuracy
分析:
1、從 ILSVRC-NiN TreeNet來看,透過共享底層降低引數的同時,由於每個權重由多個監督源更新,導致準確率提高,這說明底層網路雖然簡單通用,但仍有進步空間。
2、作者總結了主要結果,具有少量初始層(通常是1-2層)的樹狀網路優於經典的集合,同時具有較少的引數,減少了測試過程中的計算時間和記憶體需求。
3、Ensemble-Aware Losses
3.1直接透過模型平均進行最佳化(效能變差)
注:作者在兩種設定下執行4個整合體系結構。(1)Score-Averaged:平均最後一層的輸出(就是softmax函式的輸入)(2) Probability-Averaged:平均整合成員的softmax機率。二者的區別是:前者假設集合成員已經被校準以產生相似的相對大小的分數。而後者沒有。
分析:可以看出,無論是得分平均還是機率平均,都會降低效能。原因是缺少多樣性以及數值的不穩定性。
3。1。1平均輸出減少了多樣性
原因是消除了透過集合反向傳播的梯度中的多樣性。
解釋:一些通用的平均層就是求平均:
這將導致一些損失,在對l求x的偏導時發現與i無關。這說明反向傳播到所有成員是相同的,由於平均層,錯誤的責任是共享的,這消除了梯度多樣性。而當獨立訓練每一層時,每個成員都接受不同的梯度來決定個體的效能。這就說明了上表中無論是得分平均還是機率平均的效能差的原因。
3。1。2平均數值是不穩定的
原因是:softmax函式的輸出在接近0和1的時候是不穩定的,非常小的平均產生的誤差可能是比較大的。
3.2透過多項選擇學習(MCL)來增加多樣性
首先回顧一下MCL
例如 oracle set-loss 的損失如上,{
1,
2,。。。,
M}是一組預測,相當於M個Ensembles中每個例項的預測結果。假設其中最準確的預測
m(x)與金標準y的損失,被叫做oracle set-loss。
交叉熵損失為
讓
mi作為一個二進位制變數指示預測
m是否是最小的損失。所以作者在資料集D上定義了一個二進位制oracle set-loss:
如果
=1說明僅能挑選了1個預測最準確的答案,推廣到選擇損失最小的k個預測值,就是
=k。將K從1變到預測器的個數。這將會在多樣性和每個預測器看到的訓練示例的數量之間進行權衡,從而影響泛化和收斂。
分析:1、隨著k的增加,oracle的準確率在降低,因為多樣性的影響在降低。
2、在k=4時,對於每個成員,oracle集的損失減小為獨立的交叉熵,產生一個標準集合。
3、k=1時,表示了模型專業化的程度,雖然單個模型上效果很差,但集合後的oracle的準確率能達到93%,
對整合成員如何使用引導的backprop對輸入影象做出響應的視覺化圖
注:透過oracle精度度量來跟蹤哪些測試示例被分配給每個整合成員,可以看出,K=1時,標籤空間幾乎完全劃分,隨著k的增加,分佈的均勻性增加。
分析:1、作者總結在賦值步驟與隨機下降交叉會導致資料碎片化,一個比較好的做法是先對網路進行微調,在進行訓練,具體步驟見論文。
總結
本文貫穿始終的主題是多樣性,作者認為採用不同的隨機初始化比bagging更加有用,多元誘導MCL損失實驗表明,鼓勵團隊成員的多樣性可以顯著提高績效。