最近網絡一直有收斂的問題,懷疑是梯度在訓練的時候爆炸或歸零導致分類器對evaluate集全0或全1預測。
第一個問題是出現accuracy固定在baseline上,無法提高
原因:
- tf的share embedding column函數
- learning rate不合適
將learning rate反覆嘗試並去掉share embedding column層改用加一層dense layer作爲embedding後問題解決。至於爲什麼share embedding column出問題,個人猜測是可能本身這個模型的權重就不好收斂,函數導致權重變化進一步過大或過小所以miss掉了極值點,後面找個時間研究一下這個問題。
第二個問題是accuracy在達到某個極值後突然調回baseline,並不變化。
原因:learning rate過大
將學習率調小後解決,原因是學習率過大導致訓練中某一個或幾個權重爆炸。
最後一個介紹如何檢查模型的blog:
This blog gives a quick step to check your model: 37 Reasons why your Neural Network is not working