參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
參考這篇博文 博主寫的非常好! https://blog.csdn.net/program_developer/article/details/80737724
這個博主寫的太好了,,基本都是粘貼過來的,, 又怕博主會批評我轉載 沒敢全粘貼過來。 還請大家去博主原文去讀,
這個博主寫的太好了,,基本都是粘貼過來的,, 又怕博主會批評我轉載 沒敢全粘貼過來。 還請大家去博主原文去讀,
這個博主寫的太好了,,基本都是粘貼過來的,, 又怕博主會批評我轉載 沒敢全粘貼過來。 還請大家去博主原文去讀,
這個博主寫的太好了,,基本都是粘貼過來的,, 又怕博主會批評我轉載 沒敢全粘貼過來。 還請大家去博主原文去讀,
Dropout具體工作流程
假設我們要訓練這樣一個神經網絡,如圖2所示。
圖2:標准的神經網絡
輸入是x輸出是y,正常的流程是:我們首先把x通過網絡前向傳播,然后把誤差反向傳播以決定如何更新參數讓網絡進行學習。使用Dropout之后,過程變成如下:
(1)首先隨機(臨時)刪掉網絡中一半的隱藏神經元,輸入輸出神經元保持不變(圖3中虛線為部分臨時被刪除的神經元)
圖3:部分臨時被刪除的神經元
(2) 然后把輸入x通過修改后的網絡前向傳播,然后把得到的損失結果通過修改的網絡反向傳播。一小批訓練樣本執行完這個過程后,在沒有被刪除的神經元上按照隨機梯度下降法更新對應的參數(w,b)。
(3)然后繼續重復這一過程:
. 恢復被刪掉的神經元(此時被刪除的神經元保持原樣,而沒有被刪除的神經元已經有所更新)
. 從隱藏層神經元中隨機選擇一個一半大小的子集臨時刪除掉(備份被刪除神經元的參數)。
. 對一小批訓練樣本,先前向傳播然后反向傳播損失並根據隨機梯度下降法更新參數(w,b) (沒有被刪除的那一部分參數得到更新,刪除的神經元參數保持被刪除前的結果)。
不斷重復這一過程。
Dropout在神經網絡中的使用
代碼層面實現讓某個神經元以概率p停止工作,其實就是讓它的激活函數值以概率p變為0。比如我們某一層網絡神經元的個數為1000個,其激活函數輸出值為y1、y2、y3、......、y1000,我們dropout比率選擇0.4,那么這一層神經元經過dropout后,1000個神經元中會有大約400個的值被置為0。
注意: 經過上面屏蔽掉某些神經元,使其激活值為0以后,我們還需要對向量y1……y1000進行縮放,也就是乘以1/(1-p)。如果你在訓練的時候,經過置0后,沒有對y1……y1000進行縮放(rescale),那么在測試的時候,就需要對權重進行縮放,操作如下。
(2)在測試模型階段
預測模型的時候,每一個神經單元的權重參數要乘以概率p。
為什么說Dropout可以解決過擬合?
(1)取平均的作用: 先回到標准的模型即沒有dropout,我們用相同的訓練數據去訓練5個不同的神經網絡,一般會得到5個不同的結果,此時我們可以采用 “5個結果取均值”或者“多數取勝的投票策略”去決定最終結果。例如3個網絡判斷結果為數字9,那么很有可能真正的結果就是數字9,其它兩個網絡給出了錯誤結果。這種“綜合起來取平均”的策略通常可以有效防止過擬合問題。因為不同的網絡可能產生不同的過擬合,取平均則有可能讓一些“相反的”擬合互相抵消。dropout掉不同的隱藏神經元就類似在訓練不同的網絡,隨機刪掉一半隱藏神經元導致網絡結構已經不同,整個dropout過程就相當於對很多個不同的神經網絡取平均。而不同的網絡產生不同的過擬合,一些互為“反向”的擬合相互抵消就可以達到整體上減少過擬合。
(2)減少神經元之間復雜的共適應關系: 因為dropout程序導致兩個神經元不一定每次都在一個dropout網絡中出現。這樣權值的更新不再依賴於有固定關系的隱含節點的共同作用,阻止了某些特征僅僅在其它特定特征下才有效果的情況 。迫使網絡去學習更加魯棒的特征 ,這些特征在其它的神經元的隨機子集中也存在。換句話說假如我們的神經網絡是在做出某種預測,它不應該對一些特定的線索片段太過敏感,即使丟失特定的線索,它也應該可以從眾多其它線索中學習一些共同的特征。從這個角度看dropout就有點像L1,L2正則,減少權重使得網絡對丟失特定神經元連接的魯棒性提高。
(3)Dropout類似於性別在生物進化中的角色:物種為了生存往往會傾向於適應這種環境,環境突變則會導致物種難以做出及時反應,性別的出現可以繁衍出適應新環境的變種,有效的阻止過擬合,即避免環境改變時物種可能面臨的滅絕。
---------------------
作者:Microstrong0305
來源:CSDN
原文:https://blog.csdn.net/program_developer/article/details/80737724
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
---------------------
作者:Microstrong0305
來源:CSDN
原文:https://blog.csdn.net/program_developer/article/details/80737724
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
---------------------
作者:Microstrong0305
來源:CSDN
原文:https://blog.csdn.net/program_developer/article/details/80737724
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
---------------------
作者:Microstrong0305
來源:CSDN
原文:https://blog.csdn.net/program_developer/article/details/80737724
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!