机器学习入门:梯度下降方法对 Optimization 的思考
当我们使用梯度下降法进行 optimization 时,遇到这种情况,我们很自然地想到,可能是在某一个位置,对参数的微分为 0(例如 local minima 局部最低点、saddle point 鞍点)
1.区分 local minima 和 saddle point
通过 loss function 的形状进行判断,对其进行泰勒展开,判断海森矩阵的正负
第三项>0 local minima
第三项< local maxima
第三项不确定时 saddle point

minimum ratio = nums of positive eigen values / nums of eigen values
意义是正数 eigen 在所有 eigen 中的占比,所以其实很难找到比值为 1 的 ratio
2.batch size 对训练的影响
large:时间长但是准确(但是对于平行运算,计算时间不一定显著增长,这取决于 gpu 的平行处理能力)(同时 large size 会更容易遇到 optimization 的问题)
small:时间短但噪声较大不是很准确

上图中可以解释,对于 large size,可能更容易陷入比较小的sharp minima 中
3. Momentum:
一般我们使用梯度下降来进行 optimization 时,仅仅考虑上一步梯度对于下一步参数的影响,现在引入 momentum 对于下一步的影响,本质上是将上一步移动的方向纳入考虑。
4. 在谷间震荡的问题

如上图所示,橙色叉叉为 critical point,当步长过大时,很容易导致 loss 值震荡,所以我们不断调小步长,得到右图,右图显然在y 轴梯度较大的情况下能很好的趋近橙色叉叉,但是在 x 轴方向上由于梯度过小,无论做多少次的迭代,只能在 x 轴方向轻微向橙色叉叉靠近。
自适应的 learning rate
由上面的问题,我们希望得到一个可以变化的 learning rate,在梯度大的方向缩小步长,在梯度小的方向扩大步长。
这样的想法非常好,但是同样有一个 bug,它仅仅适用于坡度一致的学习,当我们遇到下图的问题时,沿着 x 轴的方向,不同的 w1 会有不一样的坡度,所以我们需要 learning rate 有更加灵活的方法。由此提出 RMSProp 的方法。
所以我们综合以上的各种方法,提出适应性比较强的方法,那就是 momentum+rmsprop 方法


更多推荐



所有评论(0)