如圖


應該是有bug, sgd即便有隨機性loss大趨勢也會降低,但是你這個圖顯示loss基本不降,那應該是數據loader有問題,還有你怎麼計算loss的?是不是有的loss對應很多batch有的對應很少batch?數據有沒有歸一化?
有幾個可能你的程序有bug有錯誤數據,遇到錯誤數據的話loss會很大是很正常的,看你這個圖周期性很明顯,如果你的訓練數據是按照順序依次訓練的,很可能就是某一批數據有問題,然後那個batch的loss很大,因此出現了周期性


這個應該是訓練集的造成的,建議訓練集的做一下shuffle


懷疑是不是你做的數據集沒有shuffle?如果圖片分類沒shuffle按照AAABBBCCC排列的話,感覺會出現這種情況.


可以參考一下這篇文章。

藏雲閣主:由dead relu引發的思考——正則化演算法漫談?

zhuanlan.zhihu.com圖標

一句話總結:1.檢查數據是否有問題(圖像通道數是否統一?是否有RGBA的四通道圖片以及RGB的三通道圖片混在一起,讀取的數據的時候通道設置錯誤?) 2.檢查訓練超參數(學習率、batch_size)的設置是否有問題 3.檢查網路設計中是否有不合理的地方(是否有正則化)等。


懷疑是圖像的問題,需要對訓練數據進行歸一化處理,否則的話數據維度相差較大就會造成這個現象,震蕩比較嚴重。


隨機梯度下降的隨機性導致每一步是局部最優但不是全局最優


推薦閱讀:
相关文章