dropout的正則化理解

2021-08-21 14:35:04 字數 1718 閱讀 7950

dropout是hintion最近2年提出的,源於其文章improving neural newworks by preventing co-adaptation of feature detectors.中文的意思:通過阻止特徵檢測器的共同作用來提高神經網路的效能;

dropout效果同於bagging;

對於dropout的理解:輸入層與輸出層保持不變,隱藏層神經元按比例隨機失活;

正常的流程:即dropout比例1時,保留所有的神經元;首先將x通過網路前向傳播然後把誤差反向傳播以決定如何讓更新引數讓網路學習;

使用dropout的流程:假定dropout的比例為0.5,首先隨機刪掉網路中一半的隱藏層神經元;然後將x輸入修改後的網路前向傳播,然後將得到的損失結果通過修改的網路反向傳播;一小批訓練樣本執行完這個過程後就按照隨機梯度下降法更新保留的神經元對應的引數;(乙個batch對應更新一次引數)

然後繼續重複這這一過程:

恢復被刪掉的神經元(此時被刪除的神經元保持原樣,而沒有被刪除的神經元已經有所更新)

從隱藏神經元中隨機選擇乙個小半大小的子集臨時刪除掉(備份被刪除掉神經元的引數)

對一小批訓練樣本,先前向傳播後反向傳播損失並根據隨機梯度下降法更新引數(w,b)(沒有被刪除的那一部分引數得到更新,刪除的神經元引數保持被刪除前的結果)

不斷重複這一過程;

個人理解:當將一半的神經元失活,對保留的神經元進行梯度下降,這一過程就是使用保留的網路結構對資料進行學習;第二次迭代時,繼續使用保留的網路結構進行學習,比如說500次,這種固定的網路結構就可以達到一定的擬合效果;500次後再將一半的神經元失活,對保留的神經元進行梯度下降(對前面保留的不一致)重複前面的過程,這第二種固定的網路結構也可以達到一定的擬合效果;以此類推,就會有多種這樣的網路結構,都會有一定的擬合效果;實踐過程中,雖然每次梯度下降時網路結構不會相同,但最後來看,每種網路結構都會進行一定數量迭代的學習,等同於前面的講的效果;換句話說,使用dropout時,最終的網路結構中的區域性網路結構(隨機刪除50%的神經元)也會有不錯的效果(因為這種網路結構都進行學習過),如同bagging方法;

dropout為什麼說可以解決過擬合呢?

取平均的作用:先回到正常的模型(沒有dropout),用相同的訓練資料去訓練5個不同的神經網路,一般會得到5個不同的結果,此時我們可以採用「5個結果取平均值」或者「多數取勝的投票策略」去決定最終結果;(例如3個網路判斷結果為數字9,那麼很有可能真正的結果就數字9,其他兩個網路給出了錯誤的結果;)這種「綜合起來取平均」的策略通常可以有效防止過擬合問題;因為不同的網路可能產生不同的過擬合,取平均則有可能讓一些「相反的」的擬合互相取消,dropout掉不同的隱藏神經元就類似在訓練不同的網路(隨機刪掉一半隱藏神經元導致網路結構已經不同)整個dropout過程就相當於對很多個不同的神經網路取平均。而不同的網路產生不同的過擬合,一些互為「反向」的擬合相互抵消就可以達到整體上減少過擬合。

減少神經元之間的複雜的共適應關係:因為dropout程式導致兩個神經元不一定每次都在乙個dropou網路中出現;這種的權值更新不再依賴有固定關係的隱含節點的共同作用,阻止了某些特徵僅僅在其他特定特徵下才有效果的情況。迫使網路去學習更加魯棒的特徵。換句話說假如我們的神經網路是在做出某種**,它不應該對一些特定的線索片段太過敏感,即使丟失特定的線索,它也應該可以從眾多其他線索中學習一些共同的模式(魯棒性),這個角度看dropout有點像l1,l2正則,減少權重使得網路對丟失特定神經元連線的魯棒性提高;

dropout的比例 Dropout正則化原理

1 dropout 如何工作 典型的神經網路其訓練流程是將輸入通過網路進行正向傳導,然後將誤差進行反向傳播。dropout就是針對這一過程之中,隨機地刪除隱藏層的部分單元,進行上述過程。步驟如下 隨機刪除網路中的一些隱藏神經元,保持輸入輸出神經元不變將輸入通過修改後的網路進行前向傳播,然後將誤差通過...

正則化及dropout

綜合stanford university cs231n 課堂 及google 機器學習簡介課程,進行了小小的記錄 正則化 regularization 有助於防止出現過擬合 分為 dropout 丟棄 通常,將正則化率設為0.5 一般是在全連線層使用。有時也用在卷積層,不過,不是隨機把某個神經元上...

正則化 Dropout 與過擬合

正則化器允許在優化過程中對層的引數或層的啟用情況進行懲罰。網路優化的損失函式也包括這些懲罰項。懲罰是以層為物件進行的。具體的 api 因層而異,但dense,conv1d,conv2d和conv3d這些層具有統一的 api。正則化器開放 3 個關鍵字引數 from keras import regu...