优化算法的目的
重要概念
梯度:损失函数对于权重函数的导数
梯度下降:根据梯度来更新权重,使损失变小的方法
所有优化算法的目的
据梯度更新权重,找到使得损失变得最小的方法。
各种优化算法
所有梯度算法都是基于梯度下降法进行演进的。
主要分为三大阶段,第一阶段是梯度下降法,这个阶段的优化算法可以找到局部最优解,但是无法找到全局最优解,很容易陷入鞍点。
第二阶段为动量梯度法,这个阶段的优化算法考虑了权重的优化方向,借鉴了动量的原理,可以在某种程度上跳出局部最优解,但是很容易在优化的过程中,超过最优解。
第三阶段为Adam优化算法,这个阶段的算法综合了动量梯度算法的优点,同时考虑了随着迭代的轮次增加,学习率也会针对不同的权重进行相应的调整,保证所有的权重更新步调相一致,同时还要保证迭代次数增加时,继续保证权重可以大幅更新。
梯度下降法
GD
**意义:**所有优化算法的基础。
**方法:**使用全部数据计算梯度
公式:
其中,为学习率,为样本总数。
缺点:容易陷入鞍点,找到全局最小值。
SGD
方法:使用一条数据或者一个batch数据。
目的:增加随机性,避免陷入局部最优解。
动量梯度法
动量梯度法
方法:借用了动量的概念,用来描述梯度优化的方向,而且这样的动量能够避免陷入局部最优解。
公式:
如图所示:小球演示了动量法的意义。
Nesterov Momentum
方法:计算权值的变量时,提前计算了动量的增量。
公式:
如图所示:演示了增量w的几何意义。
Adam优化算法
特点:(1)所有权重参数更新的步调相一致。
(2)考虑梯度历史更新的累积。
缺点:权重更新越来越慢。
公式: