一、dropout目的
Dropout是在《ImageNet Classification with Deep Convolutional》這篇論文里提出來為了防止神經網絡的過擬合。它的主要思想是讓隱藏層的節點在每次迭代時(包括正向和反向傳播)有一定幾率(keep-prob)失效。這樣來預防過擬合。它主要避免對某個節點的強依賴,讓反向傳播的修正值可以更加平衡的分布到各個參數上。還有如果一些節點失效,實際上也和我們減少網絡復雜度是一樣的道理。所以可以防止過擬合。
二、dropout方法
(1)訓練階段
Dropout是在標準的bp網絡的的結構上,使bp網的隱層激活值,以一定的比例v變為0,即按照一定比例v,隨機地讓一部分隱層節點失效;在后面benchmark實驗測試時,部分實驗讓隱層節點失效的基礎上,使輸入數據也以一定比例(試驗用20%)是部分輸入數據失效(這個有點像denoising autoencoder),這樣得到了更好的結果。
去掉權值懲罰項,取而代之的是,限制權值的范圍,給每個權值設置一個上限范圍;如果在訓練跟新的過程中,權值超過了這個上限,則把權值設置為這個上限的值(這個上限值得設定作者并沒有說設置多少最好,后面的試驗中作者說這個上限設置為15時,最好;為啥?估計是交叉驗證得出的實驗結論)。
此外,還可以使算法使用一個比較大的學習率,來加快學習速度,從而使算法在一個更廣闊的權值空間中搜索更好的權值,而不用擔心權值過大。
(2)測試階段
Dropout只發生在模型的訓練階段,預測、測試階段則不用Dropout
三、關于dropout需要知道的
直觀認識:Dropout隨機刪除神經元后,網絡變得更小,訓練階段也會提速
事實證明,dropout已經被正式地作為一種正則化的替代形式
有了dropout,網絡不會為任何一個特征加上很高的權重(因為那個特征的輸入神經元有可能被隨機刪除),最終dropout產生了收縮權重平方范數的效果
Dropout的功能類似于L2正則化,但Dropout更適用于不同的輸入范圍
如果你擔心某些層比其它層更容易過擬合,可以把這些層的keep-prob值設置的比其它層更低
Dropout主要用在計算機視覺領域,因為這個領域我們通常沒有足夠的數據,容易過擬合。但在其它領域用的比較少
Dropout的一大缺點就是代價函數不再被明確定義,所以在訓練過程中,代價函數的值并不是單調遞減的
使用時,先關閉Dropout,設置keep-prob為1,使代價函數的值單調遞減,然后再打開Dropout
-
神經網絡
+關注
關注
42文章
4810瀏覽量
102916
發布評論請先 登錄
神經網絡教程(李亞非)
求助基于labview的神經網絡pid控制
【PYNQ-Z2試用體驗】神經網絡基礎知識
卷積神經網絡如何使用
【案例分享】基于BP算法的前饋神經網絡
【案例分享】ART神經網絡與SOM神經網絡
如何構建神經網絡?
基于BP神經網絡的PID控制
卷積神經網絡模型發展及應用
基于Numpy實現神經網絡:如何加入和調整dropout?

評論