几种常见的优化算法

目录

神经网络优化最重要的思想:

1. 梯度下降法(Gradient Descent)(一阶)

2. 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods)(二阶)

2.1牛顿法

2.2拟牛顿法

3. 共轭梯度法(Conjugate Gradient)

4. 启发式优化方法

5.待补充


神经网络优化最重要的思想:

梯度的反向传播,具体的过程就是:先通过正向传播,由输入得到预测模型,然后把预测和真实值的残差(损失,代价函数https://mp.csdn.net/postedit/89469695,,,,,https://mp.csdn.net/postedit/89436882),根据链式求导法则,将梯度反向传递到各个参数中,对参数更新.常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。

 

1. 梯度下降法(Gradient Descent)(一阶)

查看以前的论文介绍https://mp.csdn.net/postedit/89435986

梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢

1.1SGD随机梯度法

1.2BGD批量梯度下降法

1.3MBGD小批量梯度下降法


2. 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods)(二阶)

2.1牛顿法

方法使用函数(x)的泰勒级数的前面几项来寻找方程(x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维情况)如下图所示:

  牛顿法搜索动态示例图:

 几种常见的优化算法_第1张图片

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。

牛顿法的优缺点总结

  优点:二阶收敛,收敛速度快;

  缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂

2.2拟牛顿法

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。

3. 共轭梯度法(Conjugate Gradient)

  共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。 在各种优化算法中,共轭梯度法是非常重要的一种。其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数

4. 启发式优化方法

  启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。启发式优化方法种类繁多,包括经典的模拟退火方法、遗传算法、蚁群算法以及粒子群算法等等

5.待补充

reference:
https://www.cnblogs.com/xinbaby829/p/7289431.html

 

你可能感兴趣的:(深度学习相关文献和理论)