一.训练卡住
训练卡住的原因不只是因为critical point,图中loss几乎不动的时候,gradient的值也没有变得非常小。他只是单纯卡住了,loss没法下降了。
训练是非常难的,学习率太大只会在两侧震荡,loss掉不下去。而设置的比较小loss可以掉下去但是达不到最低点。所以所有参数公用一个学习率限制太大了,应该每个参数一个学习率。
就要将原来算的方式改变一下:
这样的话就可以根据每个参数gradient的不同改变学习率。
但是同一个参数需要的学习率而会随着时间的改变而改变,所以又有另外一个方法:
可以自主设置a,也就是计算出来的g的重要性。
同时也要让学习率随时间的变化而变化:
可以采用让学习率随时间的变小而变小的办法,这样就可以从左图的状态变成右边的。
最终版的优化: