机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

Gradient Descent(梯度下降) + Momentum(动量)

上次 这里 介绍了Gradient Descent寻找最优解的过程

学习到发现还有一个算法就是加上Momentum(动量,就是上一次Gradient Descent后的步长值)来作为下一次更新位置的参数,这样来寻找局部最优解Local Minima的话,会比单独使用梯度下降法来求解效果更好,有一点像粒子群算法。

Movement:最后一步的移动目前是最小的梯度

  • 首先

同梯度下降法一样,找到一点起始点 θ 0 θ^0 θ0,此时的位移(Movement)为0,故 M 0 = 0 M^0=0 M0=0.

机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

  • 紧接着

Gradient Descent来计算 g 0 g^0 g0,再计算下一步的 M 1 = λ M 0 − δ g 0 M^1=λM^0-δg^0 M1=λM0−δg0

机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程
由于加了动量,故不再按照梯度下降法的反方向寻找Local Minima了

  • 然后

移动 θ 1 = θ 0 + M 1 θ^1=θ^0+M^1 θ1=θ0+M1,再计算 g 1 g^1 g1,再移动 M 2 = λ M 1 − δ g 1 M^2 =λM^1-δg^1 M2=λM1−δg1

机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

再移动 θ 2 = θ 1 + M 2 θ^2=θ^1+M^2 θ2=θ1+M2

机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

注意,此时的 θ 2 θ^2 θ2为Gradient Descent(梯度下降) + Momentum(动量)以后的方向,这样的话寻找 Local MInima会更加精确,避免overfitting,和共轭方向法类似。

然后,以此类推求下去
机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

具体地,如下图,加上动量后,寻找的过程可能会比单一梯度下降慢,就比如在遇见第一个Local MInima的时候,Gradient Descent或许就会停下来了,而Gradient Descent(梯度下降) + Momentum(动量)呢,当上一步的Movement和 g x g^x gx的大小相等,方向相反,那么会被抵消;若Movement大于 g x g^x gx的值,那么会继续往后面去寻找局部最优解,但是最终,还是会回到最好的局部最优解位置来。

机器学习Gradient Descent(梯度下降) + Momentum(动量)寻找局部最优解Local Minima的过程

Deep Learning Fitting!!!

ღ( ´・ᴗ・` )

学习DeepLearning坚持!30天计划!!!


打卡1 /30 Day!!!


你说过,人最大的敌人是自己。

上一篇:ajax通过PUT方式调用WEBAPI


下一篇:Linux系统之LVS+Keepalived实现