优化器:SGD > Momentum > AdaGrad > RMSProp > Adam

目录

    • SGD 随机梯度下降
    • momentum
    • AdaGrad
    • RMSProp

SGD 随机梯度下降

在这里SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们平梯度均值。后面几个改进算法,均是采用min-batch的方式。
优化器:SGD > Momentum > AdaGrad > RMSProp > Adam_第1张图片

momentum

1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的。
2.加速学习
3.一般将参数设为0.5,0.9,或者0.99,分别表示最大速度2倍,10倍,100倍于SGD的算法。
4.通过速度v,来积累了之间梯度指数级衰减的平均,并且继续延该方向移动:
优化器:SGD > Momentum > AdaGrad > RMSProp > Adam_第2张图片要是当前时刻的梯度与历史时刻梯度方向相似,这种趋势在当前时刻则会加强;要是不同,则当前时刻的梯度方向减弱。
  假设每个时刻的梯度g总是类似,那么由
  在这里插入图片描述
我们可以直观的看到每次的步长为:
在这里插入图片描述

即当动量参数设为0.5,0.9,或者0.99,分别表示最大速度2倍,10倍,100倍于SGD的算法。

AdaGrad

1.简单来讲,设置全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同
2.效果是:在参数空间更为平缓的方向,会取得更大的进步(因为平缓,所以历史梯度平方和较小,对应学习下降的幅度较小)
3.缺点是,使得学习率过早,过量的减少,验证集上效果好,测试集上效果差
优化器:SGD > Momentum > AdaGrad > RMSProp > Adam_第3张图片

RMSProp

1.AdaGrad算法的改进。鉴于神经网络都是非凸条件下的,RMSProp在非凸条件下结果更好,改变梯度累积为指数衰减的移动平均以丢弃遥远的过去历史。
2.经验上,RMSProp被证明有效且实用的深度学习网络优化算法。
相比于AdaGrad的历史梯度:
在这里插入图片描述
RMSProp增加了一个衰减系数来控制历史信息的获取多少:
在这里插入图片描述

优化器:SGD > Momentum > AdaGrad > RMSProp > Adam_第4张图片## Adam
1.Adam算法可以看做是修正后的Momentum+RMSProp算法
2.动量直接并入梯度一阶矩估计中(指数加权)
3.Adam通常被认为对超参数的选择相当鲁棒
4.学习率建议为0.001

其实就是Momentum+RMSProp的结合,然后再修正其偏差。
优化器:SGD > Momentum > AdaGrad > RMSProp > Adam_第5张图片

你可能感兴趣的:(深度学习,机器学习,机器学习,深度学习)