【深度学习】梯度下降优化方法



普通的梯度学习方法分为三种,即常见的 Batch gradient descent 、Stochastic gradient descent、Mini-batch gradient descent

存在的问题:


1  选择一个合理的学习速率很难。如果学习速率过小,则会导致收敛速度很慢;如果学习速率过大,那么就会阻碍收敛,即在极值点附近会震荡。学习速率调整(又称学习速率调度,Learning rate schedules),在每次更新过程中,改变学习速率,如退火。一般使用某种事先设定的策略或者在每次迭代中衰减一个较小的阈值。无论哪种调整方法,都需要事先进行固定设置,这便无法自适应每次学习的数据集特点。

2.模型所有的参数每次更新都是使用相同的学习速率。如果数据特征是稀疏的或者每个特征有着不同的取值统计特征与空间,那么便不能在每次更新中每个参数使用相同的学习速率,那些很少出现的特征应该使用一个相对较大的学习速率。

3.对于非凸目标函数,容易陷入那些次优的局部极值点中,如在神经网路中。那么如何避免呢。而更严重的问题不是局部极值点,而是鞍点。




指数加权平均的概念

【深度学习】梯度下降优化方法
上图中的0.9称之为β,θ1代表第一天的温度,v相当于平均1/(1-β)的天数的数据
解释:
【深度学习】梯度下降优化方法

当到10天后,由于0.9的10次方减少到比较小的值,故可认为v相当于平均1/(1-β)的天数的数据,此时β为0.9



 动量梯度下降(Momentum

【深度学习】梯度下降优化方法

更新w:

w=w-αVdw   更新b同理

效果(红色为采用动量梯度下降后):

【深度学习】梯度下降优化方法


RMSprop梯度下降


【深度学习】梯度下降优化方法

更新参数:

【深度学习】梯度下降优化方法


Adam优化梯度下降

修正后的动量和RMSprop为:

【深度学习】梯度下降优化方法

Adam其实就是前2者的结合,在加入超参数【深度学习】梯度下降优化方法

【深度学习】梯度下降优化方法

超参数经验值:

【深度学习】梯度下降优化方法