when gradient is small
梯度是0:local min ,local max, saddle point
Hij:矩阵i行j列
训练遇到saddle,loss一般还能够下降
在二维空间中看是local minima 在更高位的空间中看是saddle point?
saddle point,eigen value 有正有负 ;local minima :eigen value都是正的是
minima ratio 0.5 意味着至少还有一半的路可以让 loss下降 local minima并没有那么常见,所以参数不再update往往是因为卡在saddle point
batch
大的batch 往往带来较差的结果
用不同的loss function 去算gradient,如果用L1去算梯度是0 卡住了,用L2算不一定是0
大的batch容易ovefitting
sharp minima更不好
training 和test的loss不一样 原因:1。分布不同2.都是sample出来的不一样
flat train 和test不会差太多 sharp 会差比较多,大的batch size 容易走到峡谷 sharp minima,小batch 更noisy,不易走进sharp minima峡谷
momentum
gradient的反方向调整参数
adaptive learning rate
loss不下降了,gradient 还不是0,因为loss谷壁间来回震荡,不是在 critical point
大多数情况还没走到 critical point loss 就不下降了
adagrad
优化梯度下降 学习率为***每个参数***定制化
error surface 越平坦 large learning rate,越陡峭 small learning rate
learning rate 根据gradient 大小做调整
adagrad:坡度小意味着 gradient小 σ小
每一个gradient 具有同等的重要性
RMSprop
同一个参数期待learning rate 动态调整 σ动态调整
α 很小相当于当前的gradient 相对之前的gradient很重要
当从平缓到陡峭,由于当前的gradient(变大)影响大(相对adagrad)可以很快的让 σ很快变大 , learning rate变小,踩刹车。否则learning rate大,gradient大很快飞出去了,走不到低点了。
y轴比较平缓,gradient 小, σ,step 很大
总结
momentum 考虑方向 σ考虑大小所以不会抵消