一文读懂深度学习算法中的优化算法发展史

优化算法的目的

重要概念

梯度:损失函数对于权重函数的导数
梯度下降根据梯度来更新权重,使损失变小的方法

所有优化算法的目的

据梯度更新权重,找到使得损失变得最小的方法。

各种优化算法

所有梯度算法都是基于梯度下降法进行演进的。
主要分为三大阶段,第一阶段是梯度下降法,这个阶段的优化算法可以找到局部最优解,但是无法找到全局最优解,很容易陷入鞍点。
第二阶段为动量梯度法,这个阶段的优化算法考虑了权重的优化方向,借鉴了动量的原理,可以在某种程度上跳出局部最优解,但是很容易在优化的过程中,超过最优解。
第三阶段为Adam优化算法,这个阶段的算法综合了动量梯度算法的优点,同时考虑了随着迭代的轮次增加,学习率也会针对不同的权重进行相应的调整,保证所有的权重更新步调相一致,同时还要保证迭代次数增加时,继续保证权重可以大幅更新。

梯度下降法

GD

**意义:**所有优化算法的基础。
**方法:**使用全部数据计算梯度
公式:w=wη1mi=1mΔwiw = w - \eta \frac{1}{m}\sum_{i=1}^{m}\Delta w_{i}

其中,η\eta为学习率,mm为样本总数。
缺点:容易陷入鞍点,找到全局最小值。

SGD

方法:使用一条数据或者一个batch数据。
目的:增加随机性,避免陷入局部最优解。

动量梯度法

动量梯度法

方法:借用了动量的概念,用来描述梯度优化的方向,而且这样的动量能够避免陷入局部最优解。
公式:
mt=mt1+ηΔwm_{t} = m_{t-1} + \eta\Delta w
w=wmtw = w - m_{t}
如图所示:小球演示了动量法的意义。
在这里插入图片描述

Nesterov Momentum

方法:计算权值的变量时,提前计算了动量的增量。
公式

Δw=wμmt1\Delta w = w - \mu m_{t-1}
mt=μmt1+ηΔwm_{t} = \mu m_{t-1} + \eta\Delta w
w=wmtw = w - m_{t}
如图所示:演示了增量w的几何意义。
在这里插入图片描述

Adam优化算法

特点:(1)所有权重参数更新的步调相一致。
(2)考虑梯度历史更新的累积。
缺点:权重更新越来越慢。
公式:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章