深度學習中,一般如何防止過擬合?

方式一

使用傳統的L1、L2正則化來防止過擬合;

由於正則化可以限制權重W的大小,從某種意義上可以降低模型複雜度,可以具有更好泛化能力。另外,奧卡剃姆刀原理也說明模型複雜度越小越好正則化可以認為是一個懲罰項,只有當每次更新獲得更大的收益時,才會選擇更新;這樣有利於減少噪聲的影響。

方式二

使用dropout層來防止過擬合。

將輸入的tensor中的每個元素按照一定的概率置為0,如果不置為0,則按照一定一定的比例進行縮放,目的是為了保證和不變;keep_prob=0.2表示將80%的元素置為0剩下的20% 元素除以0.2;



方式三

batchNormalize防止過擬合。

對輸入的一批樣本按照維度進行歸一化,歸一化之後的數據往往分佈在座標軸的原點附近,擬合得到的參數會比較小,所以可以防止過擬合;



方式四

LayerNormalize防止過擬合

與batchNormalize類似,同樣是對數據進行歸一化,只不過是按照行的維度進行歸一化。



方式五

簡化神經網絡,比如:減少神經網絡層數、減少每一層神經元個數等;

方式六

降低學習率,減少迭代次數等防止過擬合

方式七

終極方案:增加數據量


關於神經網絡防止過擬合你還有其他的方法嗎?歡迎留言交流