1.7 理解 Dropout-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
| 1.6 Dropout 正則化 | 回到目錄 | 1.8 其他正則化方法 |
理解Dropout
Dropout可以隨機(jī)刪除網(wǎng)絡(luò)中的神經(jīng)單元,他為什么可以通過正則化發(fā)揮如此大的作用呢?
直觀上理解:不要依賴于任何一個特征,因?yàn)樵搯卧妮斎肟赡茈S時被清除,因此該單元通過這種方式傳播下去,并為單元的四個輸入增加一點(diǎn)權(quán)重,通過傳播所有權(quán)重,dropout將產(chǎn)生收縮權(quán)重的平方范數(shù)的效果,和之前講的 L2L2L2 正則化類似;實(shí)施dropout的結(jié)果實(shí)它會壓縮權(quán)重,并完成一些預(yù)防過擬合的外層正則化; L2L2L2 對不同權(quán)重的衰減是不同的,它取決于激活函數(shù)倍增的大小。
總結(jié)一下,dropout的功能類似于 L2L2L2 正則化,與 L2L2L2 正則化不同的是應(yīng)用方式不同會帶來一點(diǎn)點(diǎn)小變化,甚至更適用于不同的輸入范圍。
第二個直觀認(rèn)識是,我們從單個神經(jīng)元入手,如圖,這個單元的工作就是輸入并生成一些有意義的輸出。通過dropout,該單元的輸入幾乎被消除,有時這兩個單元會被刪除,有時會刪除其它單元,就是說,我用紫色圈起來的這個單元,它不能依靠任何特征,因?yàn)樘卣鞫加锌赡鼙浑S機(jī)清除,或者說該單元的輸入也都可能被隨機(jī)清除。我不愿意把所有賭注都放在一個節(jié)點(diǎn)上,不愿意給任何一個輸入加上太多權(quán)重,因?yàn)樗赡軙粍h除,因此該單元將通過這種方式積極地傳播開,并為單元的四個輸入增加一點(diǎn)權(quán)重,通過傳播所有權(quán)重,dropout將產(chǎn)生收縮權(quán)重的平方范數(shù)的效果,和我們之前講過的 L2L2L2 正則化類似,實(shí)施dropout的結(jié)果是它會壓縮權(quán)重,并完成一些預(yù)防過擬合的外層正則化。
事實(shí)證明,dropout被正式地作為一種正則化的替代形式, L2L2L2 對不同權(quán)重的衰減是不同的,它取決于倍增的激活函數(shù)的大小。
總結(jié)一下,dropout的功能類似于 L2L2L2 正則化,與 L2L2L2 正則化不同的是,被應(yīng)用的方式不同,dropout也會有所不同,甚至更適用于不同的輸入范圍。
實(shí)施dropout的另一個細(xì)節(jié)是,這是一個擁有三個輸入特征的網(wǎng)絡(luò),其中一個要選擇的參數(shù)是keep-prob,它代表每一層上保留單元的概率。所以不同層的keep-prob也可以變化。第一層,矩陣 w[1]w^{[1]}w[1] 是7×3,第二個權(quán)重矩陣 w[2]w^{[2]}w[2] 是7×7,第三個權(quán)重矩陣 w[3]w^{[3]}w[3] 是3×7,以此類推, w[2]w^{[2]}w[2] 是最大的權(quán)重矩陣,因?yàn)?w[2]w^{[2]}w[2] 擁有最大參數(shù)集,即7×7,為了預(yù)防矩陣的過擬合,對于這一層,我認(rèn)為這是第二層,它的keep-prob值應(yīng)該相對較低,假設(shè)是0.5。對于其它層,過擬合的程度可能沒那么嚴(yán)重,它們的keep-prob值可能高一些,可能是0.7,這里是0.7。如果在某一層,我們不必?fù)?dān)心其過擬合的問題,那么keep-prob可以為1,為了表達(dá)清除,我用紫色線筆把它們?nèi)Τ鰜?#xff0c;每層keep-prob的值可能不同。
注意keep-prob的值是1,意味著保留所有單元,并且不在這一層使用dropout,對于有可能出現(xiàn)過擬合,且含有諸多參數(shù)的層,我們可以把keep-prob設(shè)置成比較小的值,以便應(yīng)用更強(qiáng)大的dropout,有點(diǎn)像在處理 L2L2L2 正則化的正則化參數(shù) λ\lambdaλ ,我們嘗試對某些層施行更多正則化,從技術(shù)上講,我們也可以對輸入層應(yīng)用dropout,我們有機(jī)會刪除一個或多個輸入特征,雖然現(xiàn)實(shí)中我們通常不這么做,keep-prob的值為1,是非常常用的輸入值,也可以用更大的值,或許是0.9。但是消除一半的輸入特征是不太可能的,如果我們遵守這個準(zhǔn)則,keep-prob會接近于1,即使你對輸入層應(yīng)用dropout。
總結(jié)一下,如果你擔(dān)心某些層比其它層更容易發(fā)生過擬合,可以把某些層的keep-prob值設(shè)置得比其它層更低,缺點(diǎn)是為了使用交叉驗(yàn)證,你要搜索更多的超級參數(shù),另一種方案是在一些層上應(yīng)用dropout,而有些層不用dropout,應(yīng)用dropout的層只含有一個超級參數(shù),就是keep-prob。
結(jié)束前分享兩個實(shí)施過程中的技巧,實(shí)施dropout,在計(jì)算機(jī)視覺領(lǐng)域有很多成功的第一次。計(jì)算視覺中的輸入量非常大,輸入太多像素,以至于沒有足夠的數(shù)據(jù),所以dropout在計(jì)算機(jī)視覺中應(yīng)用得比較頻繁,有些計(jì)算機(jī)視覺研究人員非常喜歡用它,幾乎成了默認(rèn)的選擇,但要牢記一點(diǎn),dropout是一種正則化方法,它有助于預(yù)防過擬合,因此除非算法過擬合,不然我是不會使用dropout的,所以它在其它領(lǐng)域應(yīng)用得比較少,主要存在于計(jì)算機(jī)視覺領(lǐng)域,因?yàn)槲覀兺ǔ]有足夠的數(shù)據(jù),所以一直存在過擬合,這就是有些計(jì)算機(jī)視覺研究人員如此鐘情于dropout函數(shù)的原因。直觀上我認(rèn)為不能概括其它學(xué)科。
dropout一大缺點(diǎn)就是代價函數(shù) JJJ 不再被明確定義,每次迭代,都會隨機(jī)移除一些節(jié)點(diǎn),如果再三檢查梯度下降的性能,實(shí)際上是很難進(jìn)行復(fù)查的。定義明確的代價函數(shù) JJJ 每次迭代后都會下降,因?yàn)槲覀兯鶅?yōu)化的代價函數(shù) JJJ 實(shí)際上并沒有明確定義,或者說在某種程度上很難計(jì)算,所以我們失去了調(diào)試工具來繪制這樣的圖片。我通常會關(guān)閉dropout函數(shù),將keep-prob的值設(shè)為1,運(yùn)行代碼,確保J函數(shù)單調(diào)遞減。然后打開dropout函數(shù),希望在dropout過程中,代碼并未引入bug。我覺得你也可以嘗試其它方法,雖然我們并沒有關(guān)于這些方法性能的數(shù)據(jù)統(tǒng)計(jì),但你可以把它們與dropout方法一起使用。
課程PPT
| 1.6 Dropout 正則化 | 回到目錄 | 1.8 其他正則化方法 |
總結(jié)
以上是生活随笔為你收集整理的1.7 理解 Dropout-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.6 Dropout 正则化-深度学习
- 下一篇: 1.8 其他正则化方法-深度学习第二课《