主要內容:
一、dropout正則化的思想
二、dropout算法流程
三、dropout的優缺點
一、dropout正則化的思想
在神經網絡中,dropout是一種“玄學”的正則化方法,以減少過擬合的現象。它的主要思想就是:在訓練神經網絡的每一輪迭代中,隨機地關閉一些神經元,以此降低神經網絡的復雜程度:
二、dropout算法流程
1)對於第k層的結點,選擇一個范圍在(0,1]的數keep_prob,表明每一個結點的存在幾率為keep_prob
2)在每一輪迭代中,為第k層的所有結點隨機分配一個范圍在[0,1]的數D。如果某個結點的D小於等於keep_prob,那么這個結點在此輪迭代中能保存;否則,這個結點將在這輪迭代中被暫時刪去,所謂刪去,其實就是將該節點在這輪前向傳播的輸出值設為0。
3)對於保存下來的點,還需要做一步操作:新輸出值 = 原輸出值/keep_prob。
問:為何輸出值要除以keep_prob呢?
答:因為這樣能保證第k層輸出的期望不發生改變,或者說是保持第k層輸出值的scale。
4)以上是前向傳播的過程,在反向傳播中,同樣需要對保留下來的結點的導數dA除以keep_prob。
5)每一層的keep_prob可以不一樣,其中輸入層X一般不進行dropout,結點數大的隱藏層其keep_prob可以小一點以降低其復雜度。
三、dropout的優缺點
優點:使用dropout正則化的神經網絡,不會過分依賴於某個或某些特征,使得權重分散。因為在每一輪迭代中隱藏層的任何一個結點都有可能被刪除,那么原本屬於它的權重就會被分配到其他結點上,多次迭代平均下來,就能降低對某個特征或者是某個結點的依賴了。
缺點:損失函數在每一輪迭代中不一定是逐漸減小,因為此時的損失函數沒有明確的定義。(這個不理解)