神經網路訓練loss不下降原因集合

2021-08-21 03:00:53 字數 2002 閱讀 4865

train loss 不斷下降,test loss不斷下降,說明網路仍在學習;

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

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

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

train loss 不斷上公升,test loss不斷上公升,說明網路結構設計不當,訓練超引數設定不當,資料集經過清洗等問題。

這段在使用caffe的時候遇到了兩個問題都是在訓練的過程中loss基本保持常數值,特此記錄一下。

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

查閱相關資料以後發現是由於loss的最大值由flt_min計算得到,flt_min是1.17549435e−38f​1.17549435e−38f​其對應的自然對數正好是-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的1/5或者1/10。

採用vgg-16在做乙個二分類問題,所以計算loss時等價與下面的公式: lo

ss=−

log(

pk==l

abel

) los

s=−l

og(p

k==la

bel)

loss=−log(pk==label)loss=−log(pk==label)

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

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

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

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

loss和神經網路訓練介紹的比較完整,有1.梯度檢驗2.訓練前檢查,3.訓練中監控4.首層視覺化5.模型融合和優化等等等

facenet即triplet network模型訓練,loss不收斂的問題?

神經網路訓練loss值不下降原因集合

train loss 不斷下降,test loss不斷下降,說明網路仍在學習 train loss 不斷下降,test loss趨於不變,說明網路過擬合 train loss 趨於不變,test loss不斷下降,說明資料集100 有問題 train loss 趨於不變,test loss趨於不變,...

訓練loss不下降原因集合

train loss 不斷下降,test loss不斷下降,說明網路仍在學習 train loss 不斷下降,test loss趨於不變,說明網路過擬合 train loss 趨於不變,test loss不斷下降,說明資料集100 有問題 train loss 趨於不變,test loss趨於不變,...

網路訓練時loss不下降的原因

1.網路訓練時train loss與test loss的結果分析 1 train loss不斷下降,test loss不斷下降 可能發生的原因 網路還在學習中,loss在穩步下降。2 train loss不斷下降,test loss趨於不變 可能發生的原因 網路出現過擬合的現象,因此在訓練集上表現為...