深度學習訓練時網路不收斂的原因分析總結

Candy_GL發表於2019-03-03

轉自:https://blog.csdn.net/comway_Li/article/details/81878400

很多同學會發現,為什麼我訓練網路的時候loss一直居高不下或者準確度時高時低,震盪趨勢,一會到11,一會又0.1,不收斂。 又不知如何解決,博主總結了自己訓練經驗和看到的一些方法。

首先你要保證訓練的次數夠多,不要以為一百兩百次就會一直loss下降或者準確率一直提高,會有一點震盪的。只要總體收斂就行。若訓練次數夠多(一般上千次,上萬次,或者幾十個epoch)沒收斂,則試試下面方法:

1. 資料和標籤

資料分類標註是否準確?資料是否乾淨?資料庫太小一般不會帶來不收斂的問題,只要你一直在train總會收斂(rp問題跑飛了不算)。反而不收斂一般是由於樣本的資訊量太大導致網路不足以fit住整個樣本空間。樣本少只可能帶來過擬合的問題

2. 學習率設定不合理

在自己訓練新網路時,可以從0.1開始嘗試,如果loss不下降的意思,那就降低,除以10,用0.01嘗試,一般來說0.01會收斂,不行的話就用0.001. 學習率設定過大,很容易震盪。不過剛剛開始不建議把學習率設定過小,尤其是在訓練的開始階段。在開始階段我們不能把學習率設定的太低否則loss不會收斂。我的做法是逐漸嘗試,從0.1,0.08,0.06,0.05 ......逐漸減小直到正常為止,

有的時候候學習率太低走不出低估,把衝量提高也是一種方法,適當提高mini-batch值,使其波動不大。,

 3.網路設定不合理

如果做很複雜的分類任務,卻只用了很淺的網路,可能會導致訓練難以收斂,換網路換網路換網路,重要的事情說三遍,或者也可以嘗試加深當前網路。

4.資料集label的設定

檢查lable是否有錯,有的時候影象類別的label設定成1,2,3正確設定應該為0,1,2。

5、改變圖片大小

博主看到一篇文章,說改變圖片大小可以解決收斂問題,具體博主沒試過,只看到有這個方法,具體文章連結:https://blog.csdn.net/Fighting_Dreamer/article/details/71498256

感興趣的可以去看看。

6、資料歸一化

神經網路中對資料進行歸一化是不可忽略的步驟,網路能不能正常工作,還得看你有沒有做歸一化,一般來講,歸一化就是減去資料平均值除以標準差,通常是針對每個輸入和輸出特徵進行歸一化


--------------------- 
作者:搞視覺的張小凡 
來源:CSDN 
原文:https://blog.csdn.net/comway_Li/article/details/81878400 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關文章