Dropout解决过拟合问题
生活随笔
收集整理的這篇文章主要介紹了
Dropout解决过拟合问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Dropout解決過擬合問題
曉雷 6 個月前 這篇也屬于 《神經網絡與深度學習總結系列》,最近看論文對Dropout這個知識點有點疑惑,就先總結以下。(沒有一些基礎可能看不懂,以后還會繼續按照正常進度寫總結)是什么?
假設我們要訓練這樣一個神經網絡
輸入是x輸出是y,正常的流程是:我們首先把x通過網絡前向傳播然后后把誤差反向傳播以決定 如何更新參數讓網絡進行學習。使用dropout之后過程變成:
1. 首先隨機(臨時)刪掉網絡中一半的隱藏神經元,輸入輸出神經元保持不變(下圖中虛線為部分臨時被刪除的神經元)2. 然后把輸入x通過修改后的網絡前向傳播,然后把得到的損失結果通過修改的網絡反向傳播。一小批訓練樣本執行完這個過程后就按照隨機梯度下降法更新(沒有被刪除的神經元)對應的參數(w,b)。
3. 然后繼續重復這一過程:
- 恢復被刪掉的神經元(此時 被刪除的神經元 保持原樣,而沒有被刪除的神經元已經有所更新)
- 從隱藏神經元中隨機選擇一個一半大小的子集 臨時刪除掉(備份被刪除神經元的參數)。
- 對一小批訓練樣本,先前向傳播然后反向傳播損失并根據隨機梯度下降法更新參數(w,b) (沒有被刪除的那一部分參數得到更新,刪除的神經元參數保持被刪除前的結果)
不斷重復這一過程。
dropout 的過程好像很奇怪,為什么說它可以解決過擬合呢?(正則化)
- 取平均的作用: 先回到正常的模型(沒有dropout),我們用相同的訓練數據去訓練5個不同的神經網絡,一般會得到5個不同的結果,此時我們可以采用 “5個結果取均值”或者“多數取勝的投票策略”去決定最終結果。(例如 3個網絡判斷結果為數字9,那么很有可能真正的結果就是數字9,其它兩個網絡給出了錯誤結果)。這種“綜合起來取平均”的策略通常可以有效防止過擬合問題。因為不同的網絡可能產生不同的過擬合,取平均則有可能讓一些“相反的”擬合互相抵消。dropout掉不同的隱藏神經元就類似在訓練不同的網絡(隨機刪掉一半隱藏神經元導致網絡結構已經不同),整個dropout過程就相當于 對很多個不同的神經網絡取平均。而不同的網絡產生不同的過擬合,一些互為“反向”的擬合相互抵消就可以達到整體上減少過擬合。
- 減少神經元之間復雜的共適應關系: 因為dropout程序導致兩個神經元不一定每次都在一個dropout網絡中出現。(這樣權值的更新不再依賴于有固定關系的隱含節點的共同作用,阻止了某些特征僅僅在其它特定特征下才有效果的情況)。 迫使網絡去學習更加魯棒的特征 (這些特征在其它的神經元的隨機子集中也存在)。換句話說假如我們的神經網絡是在做出某種預測,它不應該對一些特定的線索片段太過敏感,即使丟失特定的線索,它也應該可以從眾多其它線索中學習一些共同的模式(魯棒性)。(這個角度看 dropout就有點像L1,L2正則,減少權重使得網絡對丟失特定神經元連接的魯棒性提高)
(還有一個比較有意思的解釋是,Dropout類似于性別在生物進化中的角色:物種為了生存往往會傾向于適應這種環境,環境突變則會導致物種難以做出及時反應,性別的出現可以繁衍出適應新環境的變種,有效的阻止過擬合,即避免環境改變時物種可能面臨的滅絕。 當地球都是海洋時,人類是不是也進化出了再海里生活的能力呢?)
參考:
Neural networks and deep learning
總結
以上是生活随笔為你收集整理的Dropout解决过拟合问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【地表最强】亚马逊Amazon高性能爬虫
- 下一篇: smartUp手势插件Chrome