Dropout

1、dropout簡述

dropout是解決神經網絡模型過擬合的一種常用方法。
dropout是指在神經網絡訓練過程中,以一定的概率隨機丟棄神經元(注意是暫時丟棄),以減少神經元之間的依賴性,從而提高模型的泛化能力。

這裏寫圖片描述

dropout類似ensemble方法(組合多個模型,以獲得更好的效果,使集成的模型具有更強的泛化能力)
區別在於:dropout在訓練過程中每次dropout都會得到一個新模型,最終結果是多個模型的融合,得到的只有一個模型,一組參數

2、dropout給模型帶來的改變
(1)訓練層面
加入dropout後模型訓練過程,都要計算概率,確定哪些神經元被丟棄,被丟棄的神經元輸出變爲0
這裏寫圖片描述
沒有dropout:
這裏寫圖片描述
加入dropout:
這裏寫圖片描述

(2)測試層面
這裏寫圖片描述

訓練過程,神經元被丟棄的概率爲(1-P),被保留下來的可能性爲P;
測試過程,神經元一直都在,在測試階段必須仿真出在訓練階段使用的網絡集的行爲,所以每個參數都要乘以P
(注意這個P是神經元保留下來的概率)

3、A Practical Guide for Training Dropout Networks

(1)Network Size:
採用dropout後,隱含層節點數n要按照n/p增加;

(2)Learning Rate and Momentum:
dropout的引入產生了很多噪聲,爲了降低噪聲的影響,可以通過以下兩種方式:Learning Rate的取值是普通網絡的10-100倍;momentum:momentum對於標準網絡一般採用0.9,對於dropout網絡一般是0.95-0.99。兩種可以同時使用

(3)Max-norm Regularization:
大的Learning Rate and Momentum會造成網絡參數太大,一般給隱含層權重的norm一個上限c,c一般取值3-4。
(4)Dropout Rate
一般取值0.5~0.8。經過交叉驗證,隱含節點dropout率等於0.5的時候效果最好,原因是0.5的時候dropout隨機生成的網絡結構最多。

更多詳細內容請閱讀:Dropout-A Simple Way to Prevent Neural Networks from Overfitting

參考:
深度學習網絡大殺器之Dropout——深入解析Dropout
Dropout爲何能防止過擬合?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章