网络中出现的问题、原因以及解决措施总结
文章目錄
- 問題1:梯度消失
- 問題2:梯度爆炸
- 問題3:過擬合
- 問題4:欠擬合
- 問題5:退化現象
- 引用
問題1:梯度消失
定義:網絡反向傳播權值越算越小到最后權值可以忽略不計了。
判斷方法:隨著隱藏層數目的增加,分類準確率下降。
原因:網絡太深,網絡權重更新不穩定造成的,本質上是因為梯度方向傳播的連乘效應。
解決方案:
①使用Relu、LeakRelu、Elu等激活函數;
ReLU的作用:①解決了梯度消失、爆炸的問題②計算方便,計算速度快③加速了網絡的訓練
②加BN層;
BN的作用:①加速網絡收斂速度 ②可以改善梯度消失問題
③使用殘差網絡結構;
④使用長短期記憶網絡(LSTM);
⑤預訓練微調。
問題2:梯度爆炸
定義:網絡反向傳播權值越來越大,以指數形式增長。
判斷方法:隨著隱藏層數目的增加,分類準確率下降。
原因:網絡太深,網絡權重更新不穩定造成的,本質上是因為梯度方向傳播的連乘效應。
解決方案:
①梯度剪切:思想是設置一個梯度剪切閾值,然后更新梯度的時候,如果梯度超過這個閾值,那么就將其強制限制在這個范圍之內。這可以防止梯度爆炸
②權重正則化:比較常見的是l1正則,和l2正則;
③使用Relu、LeakRelu、Elu等激活函數;
④加BN層;
⑤使用殘差網絡結構;
⑥預訓練微調,權重初始化調小。
問題3:過擬合
定義:訓練集準確率高(loss小)而驗證集準確率低(loss大)。
判斷方法:對比訓練集和驗證集準確率和損失,如果相差過大就有可能過擬合了。
解決方案:
①權重衰減,即L1、L2正則化;
②提前停止;
③擴大訓練集樣本、數據增強;
④重新選用合適的模型,減小網絡容量;
⑤添加Dropout;
⑥參數共享與參數綁定;
⑦bagging:可以組合多個模型起到減少泛化誤差的作用;
⑧輔助分類器:在Google Inception V1中,采用了輔助分類節點的策略,即將中間某一層的輸出用作分類,并按一個較小的權重加到最終的分類結果中,這樣相當于做了模型的融合,同時給網絡增加了反向傳播的梯度信號,提供了額外的正則化的思想;
⑨加入BN層:在Google Inception V2中所采用,是一種非常有用的正則化方法,可以讓大型的卷積網絡訓練速度加快很多倍,同時使得收斂后分類的準確率也可以大幅度的提高;
⑩使用交叉驗證方法。
問題4:欠擬合
定義:網絡學習不到東西,在訓練集時準確率就很差(loss高)。
解決方案:
①尋找最優的權重初始化方案;
②使用適當的激活函數,如ReLU;
③選擇合適的優化器和學習率。SGD,Momentum、Adagrad、Adadelta。可以選擇開始用Adadelta,快收斂時用SGD,即優化器的組合效果會更好;
④選擇更深、更復雜的模型,以此來學習到更多特征。
問題5:退化現象
定義:隨著網絡深度的增加,準確率開始達到飽和并且在之后會迅速下降。
原因:網絡過于復雜,訓練不加約束。
解決方案:使用殘差網絡結構。
引用
[1] 如何理解和解決神經網絡訓練中的梯度消失和梯度爆炸_貓敷雪-CSDN博客
[2] 神經網絡防止過擬合的方法 - bonelee - 博客園 (cnblogs.com)
總結
以上是生活随笔為你收集整理的网络中出现的问题、原因以及解决措施总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 榆熙教育:店铺DSR评分如何理解?
- 下一篇: 马云的“虚拟信用卡”动了谁的奶酪?