梯度降低法和牛顿法的联系

梯度降低法html

梯度降低法的优化思想是用当前位置负梯度方向做为搜索方向,由于该方向为当前位置的最快降低方向,因此也被称为是”最速降低法“。最速降低法越接近目标值,步长越小,前进越慢。梯度降低法的搜索迭代示意图以下图所示:算法

梯度降低法的缺点:函数

  (1)靠近极小值时收敛速度减慢,以下图所示;性能

  (2)直线搜索时可能会产生一些问题;优化

  (3)可能会“之字形”地降低。spa

 

 

二者的关系能够这样理解:随机梯度降低方法以损失很小的一部分精确度和增长必定数量的迭代次数为代价,换取了整体的优化效率的提高。增长的迭代次数远远小于样本的数量。htm

对批量梯度降低法和随机梯度降低法的总结:blog

批量梯度降低---最小化全部训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,可是对于大规模样本问题效率低下。get

随机梯度降低---最小化每条样本的损失函数,虽然不是每次迭代获得的损失函数都向着全局最优方向, 可是大的总体的方向是向全局最优解的,最终的结果每每是在全局最优解附近,适用于大规模训练样本状况。效率

拟牛顿法

1)牛顿法(Newton's method)

  牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数(x)的泰勒级数的前面几项来寻找方程(x) = 0的根。牛顿法最大的特色就在于它的收敛速度很快。

 

  具体步骤:

 

  首先,选择一个接近函数 (x)零点的 x0,计算相应的 (x0) 和切线斜率f  ' (x0)(这里f ' 表示函数 f  的导数)。而后咱们计算穿过点(x0,  f  (x0)) 而且斜率为'(x0)的直线和 轴的交点的x坐标,也就是求以下方程的解:

 

 

  咱们将新求得的点的 坐标命名为x1,一般x1会比x0更接近方程f  (x) = 0的解。所以咱们如今能够利用x1开始下一轮迭代。迭代公式可化简为以下所示:

 

 

  已经证实,若是f  ' 是连续的,而且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法一定收敛。 而且,若是f  ' (x)不为0, 那么牛顿法将具备平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增长一倍。下图为一个牛顿法执行过程的例子。

 

  因为牛顿法是基于当前位置的切线来肯定下一次的位置,因此牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维状况)以下图所示:

 

  牛顿法搜索动态示例图:

 

 

 

关于牛顿法和梯度降低法的效率对比:

 

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

 

  根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度降低法是用一个平面去拟合当前的局部曲面,一般状况下,二次曲面的拟合会比平面更好,因此牛顿法选择的降低路径会更符合真实的最优降低路径。

 

 

 

注:红色的牛顿法的迭代路径,绿色的是梯度降低法的迭代路径。

 

牛顿法的优缺点总结:

 

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

 

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

 

拟牛顿法的本质思想是改善牛顿法每次须要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。

 

资料

相关文章
相关标签/搜索