Gradient Descent即梯度下降法,通过计算参数的梯度更新参数,其参数更新公式如下
    深度学习优化方法 - 图1
    如果样本巨大或参数量较大时,计算非常耗时,容易陷入局部最优点或者鞍点
    随机梯度下降SGD,算法在每读入一个数据都会立刻计算loss function的梯度来update参数,这样速度会非常快,但是梯度更新的方向随机性大,可能不会很快收敛,甚至无法收敛到局部最优解
    Mini-Batch SGD即小批量随机梯度下降法
    按照数据生成分布抽取m个小批量(独立同分布)样本,通过计算它们的梯度均值,得到梯度无偏估计
    深度学习优化方法 - 图2
    批量梯度下降在理论上比随机梯度下降有更好的收敛率
    Momentum Optimizer即动量优化法。GD一般具有恒定的learning rate,而且每次只利用当前梯度的信息,这样可能会存在收敛速度非常慢,甚至无法收敛的情况。
    带动量的SGD
    深度学习优化方法 - 图3
    Nesterov Accelarated Gradient简称NAG,是在Momentum的基础上改进得到的一个算法,不同之处在于m每次更新时加上梯度的不同,Momentum是加上当前位置深度学习优化方法 - 图4的梯度,而NAG是加上当前位置之后一点点深度学习优化方法 - 图5处的梯度
    深度学习优化方法 - 图6
    AdaGrad独立地适应所有模型参数的学习率,缩放每个参数反比于其所有梯度历史平方值总和的平方根
    深度学习优化方法 - 图7
    AdaDelta
    深度学习优化方法 - 图8
    RMSProp算法修改AdaGrad以在非凸设定下效果更好,AdaGrad的主要问题在于它的梯度减小速度太快了,以至于很快陷入局部极值点,RMSProp改变梯度累积为指数加权的移动平均
    深度学习优化方法 - 图9
    深度学习优化方法 - 图10
    Adam被看作结合RMSProp和具有一些重要区别的动量的变种

    深度学习优化方法 - 图11
    牛顿法
    深度学习优化方法 - 图12
    共轭梯度是一种通过迭代下降的共轭方向以有效避免Hessian矩阵求逆计算的方法
    深度学习优化方法 - 图13