RNN神經網路訓練過程中weight幾乎不更新,只有bias更新?

上面幾幅圖分別是lstm中的 bias和weight以及對應的梯度的訓練變化,還有最後softmax層的weight以及bias以及對應的梯度的訓練過程。

可以看到lstm的weight基本是不變的,bias的變化還不錯隨著訓練加深呈現發散趨勢。哪怕是softmax層的weight變化也不是很大。這在訓練過程中是正常現象么?如果是的話那不是網路的學習能力完全沒有充分發揮,因為weight都沒變。如果不是的話可能是哪方面的問題呢?

補充一幅圖:

如果各位知友需要什麼變數的圖,或者信息,可以也可以提出來,我再補充。


我記得我上個月的這次調參經歷中,觀察到最初那些失敗的模型呈現出「weight 幾乎不變,bias 越來越大」的現象。不過我並沒有去觀察最終成功的模型 weight 和 bias 是怎樣變化的。

我覺得可以結合你的 loss 或錯誤率的變化情況判斷一下。如果 loss 或錯誤率不下降,或者稍微下降然後停滯或回升,那很可能是遇到了跟我一樣的問題。建議狠加 gradient clipping,同時把學習率調高几個數量級。


一般rnn可以做一下梯度裁剪

另外你的loss降不降呢?這是關鍵


不太確定,或許可以嘗試下layer normalization。

類似的問題在普通MLP中遇到過,後來分析是梯度消失了,用上batch normalization就解決了。batch normalization可以讓梯度更好地傳遞,但是是針對mini batch,不適用於RNN。RNN可以嘗試下layer normalization。


其實不太懂RNN,路過問一下

激活函數用的是啥,relu?

這個網路用來做什麼的,輸入輸出是什麼樣子的,數值範圍?

感覺像是normalization或是初始化相關的問題,今天剛看一篇文章講新手常見坑,感覺值得一看(並不打算提供鏈接 )


推薦閱讀:

如何評價《Tensorflow實戰》和《Tensorflow:實戰Google深度學習框架》這兩本書?
Udacity 深度學習的作業有人真運行過嗎?
深度學習系統相比較傳統的機器學習系統,針對常見的分類問題,精度究竟能有多大提升?
如何看待Tencent AI 人臉檢測結果在FDDB上的逆天表現?
如何評價FAIR的最新工作Data Distillation?

TAG:機器學習 | 神經網路 | 深度學習DeepLearning | TensorFlow |