loss訓練技巧


一,train loss與test loss結果分析
4666
train loss 不斷下降,test loss不斷下降,說明網絡仍在學習;

train loss 不斷下降,test loss趨於不變,說明網絡過擬合;

train loss 趨於不變,test loss不斷下降,說明數據集100%有問題;

train loss 趨於不變,test loss趨於不變,說明學習遇到瓶頸,需要減小學習率或批量數目;

train loss 不斷上升,test loss不斷上升,說明網絡結構設計不當,訓練超參數設置不當,數據集經過清洗等問題。

二,
這個比較長,比較完整 Loss和神經網絡訓練

https://blog.csdn.net/u011534057/article/details/51452564

有1.梯度檢驗2.訓練前檢查,3.訓練中監控4.首層可視化5.模型融合和優化等等等

三,https://www.zhihu.com/question/38937343

四,https://blog.csdn.net/u010911921/article/details/71079367

原文地址:http://blog.csdn.net/u010911921/article/details/71079367 
這段在使用caffe的時候遇到了兩個問題都是在訓練的過程中loss基本保持常數值,特此記錄一下。

1.loss等於87.33不變
loss等於87.33這個問題是在對Inception-V3網絡不管是fine-tuning還是train的時候遇到的,無論網絡迭代多少次,網絡的loss一直保持恆定。

查閱相關資料以后發現是由於loss的最大值由FLT_MIN計算得到,FLT_MIN是其對應的自然對數正好是-87.3356,這也就對應上了loss保持87.3356了。

這說明softmax在計算的過程中得到了概率值出現了零,由於softmax是用指數函數計算的,指數函數的值都是大於0的,所以應該是計算過程中出現了float溢出的異常,也就是出現了inf,nan等異常值導致softmax輸出為0.

當softmax之前的feature值過大時,由於softmax先求指數,會超出float的數據范圍,成為inf。inf與其他任何數值的和都是inf,softmax在做除法時任何正常范圍的數值除以inf都會變成0.然后求loss就出現了87.3356的情況。

解決辦法

由於softmax輸入的feature由兩部分計算得到:一部分是輸入數據,另一部分是各層的權值等組成

減小初始化權重,以使得softmax的輸入feature處於一個比較小的范圍

降低學習率,這樣可以減小權重的波動范圍

如果有BN(batch normalization)層,finetune時最好不要凍結BN的參數,否則數據分布不一致時很容易使輸出值變得很大(注意將batch_norm_param中的use_global_stats設置為false )。

觀察數據中是否有異常樣本或異常label導致數據讀取異常

本文遇到的情況采用降低學習率的方法,learning rate設置為0.01或者原來loss的或者。

2.loss保持0.69左右
采用VGG-16在做一個二分類問題,所以計算loss時等價與下面的公式:

當p=0.5時,loss正好為0.693147,也就是訓練過程中,無論如何調節網絡都不收斂。最初的網絡配置文件卷積層的參數如下所示:

 

從VGG-16訓練好的模型進行fine-tuning也不發生改變,當在網絡中加入初始化參數和decay_mult以后再次訓練網絡開始收斂。


但是具體是什么原因造成的,暫時還沒有找到,難道是初始化參數的問題還是?

參考資料
http://blog.csdn.net/jkfdqjjy/article/details/52268565?locationNum=14

https://groups.google.com/forum/#!topic/caffe-users/KEgrRlwXz9c

 

https://www.zhihu.com/question/68603783

loss一直不下降的原因有很多,可以從頭到尾濾一遍: 1)數據的輸入是否正常,data和label是否一致。 2)網絡架構的選擇,一般是越深越好,也分數據集。 並且用不用在大數據集上pre-train的參數也很重要的 3)loss 對不對。

具體到語音,很多是把audio轉成頻譜圖送給CNN訓練。

NIPS16 有個soundNet(torch的code),語音分類的performance很高,我覺得可以用來初始化你的model 參數, 可以參考下。

還有我見的3D-CNN 多用於視頻,做audio 用3D 的工作比較少,倒是見過是用1維卷積做audio的

 

作者:二九
鏈接:https://www.zhihu.com/question/68603783/answer/265275915
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


---------------------
作者:ShellCollector
來源:CSDN
原文:https://blog.csdn.net/jacke121/article/details/79874555
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM