發布時間: 2023-01-06 14:37:33
全連接層加dropout層防止模型過擬合,提升模型泛化能力,卷積網絡中參數較少,加入dropout作用甚微。然而,較低層的中加入dropout是仍然有幫助,因為它為較高的全連接層提供了噪聲輸入,從而防止它們過擬合。一般對于參數較多的模型,效果更好。
1、其實Dropout很容易實現,源碼只需要幾句話就可以搞定了,讓某個神經元以概率p,停止工作,其實就是讓它的激活值以概率p變為0。比如我們某一層網絡神經元的個數為1000個,其激活值為x1,x2……x1000,我們dropout比率選擇0.4,那么這一層神經元經過drop后,x1……x1000神經元其中會有大約400個的值被置為0。
2、經過上面屏蔽掉某些神經元,使其激活值為0以后,我們還需要對向量x1……x1000進行rescale,也就是乘以1/(1-p)。如果你在訓練的時候,經過置0后,沒有對x1……x1000進行rescale,那么你在測試的時候,就需要對權重進行rescale:Wt = 1/(1-p) *W
1.先dropout=0, 訓練后得到模型的一些指標(比如:Accuracy)。比較train數據集和test數據集的指標的擬合情況。
2.過擬合:嘗試下面的步驟。 欠擬合:調整模型的結構
3.dropout設置成0.5之間, 再次訓練得到模型的一些指標。
4.如果過擬合明顯好轉,但指標也下降明顯,可以嘗試減少dropout(0.1~0.2)
5.如果過擬合還是嚴重,增加dropout(0.1~0.2)
6.重復上面的步驟多次,就可以找到理想的dropout值了
上一篇: lstm神經網絡是什么
下一篇: hosts文件有什么用