梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

优化对象:凸函数

梯度下降法

顾名思义,就是沿着与梯度相反的方向迭代。(梯度方向是增长最快的方向,所以负梯度方向是下降最快的方向)。

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

最速下降法

最速下降法是梯度方向法的一种,与上面的梯度下降法不同的是:梯度下降法是固定的学习率,最速下降法是变化的学习率(具体见下面的介绍)。

特点:每一次迭代时的梯度方向与上一次迭代时的梯度方向正交

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

牛顿法

在某一个特定点处将函数泰勒展开(仅保留至二次项),用泰勒展开的二次函数代替原函数求最小点。求解最小点的方法就是:令二次函数对变量x的一阶导数等于0,求解对应的x点。

在泰勒展开时,因为保留到二次项,因此存在对原函数求二阶导数的运算,即需要用到原函数的Hessian矩阵。因为在将函数进行泰勒展开为二次函数时,可能得到的函数对原函数的拟合并不准确,所以仅仅一步迭代得到的不是真正的最小值,所以,有时候需要多迭代几次。

特点:

           1. 需要用到原函数的二阶导(Hessian矩阵),因此需要原函数二阶可导。。

           2. 要用到矩阵求逆,(Hessian 矩阵求逆)。矩阵求逆有时并不是很方便,因此会带来一定的计算量。

           3. 牛顿法要在某个特定点处展开,如果初始点距离真正的极值点较远,算法可能不收敛。

           4. 牛顿方向(见下文介绍),是“除以二阶导的负梯度方向”或"负的一阶导与二阶导的比值"梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法,其中梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法是一阶导数,梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法是二阶导数,Hessian矩阵

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

 

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

更正上图中的公式(3.2.3),增加一个学习率参数梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法 ,更新后的(3.2.3)为:

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法      

可见,与梯度下降法与最速下降法相比,牛顿法就是加了一个Hessian矩阵(即原函数的二阶导数)。

所以,与梯度下降法与最速下降法类比,牛顿法也可以通过变化的学习率改进成“最速牛顿法”(这个词是我杜撰的,不存在这种说法,希望不会引起误导)。真正的学术名字叫“阻尼牛顿法”(参考《最优化方法(赖炎连 贺国平 清华大学出版社)》3.2节)。

Levenberg-Marquardt 修正

牛顿法存在的一个缺点是,二阶导数(Hessian矩阵)不一定正定,有可能会使上面的牛顿方向变成上升方向。针对这一缺点,Levenberg-Marquardt 提出了改进方案:对Hessian矩阵增加一个正定矩阵梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法, 强迫新的”Hessian矩阵“(已经不是原来的Hessian矩阵了,或者已经不能用Hessian矩阵命名了,这里为了方便描述这么称呼)为正定,即,使:

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法是人为定义的一个正定矩阵,常取梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法为n阶单位矩阵。

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

拟牛顿法

根据以上分析,牛顿法需要用到矩阵求逆,这有时很困难。拟牛顿法就是为了解决这一个问题:用一个新的矩阵梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法来代替Hessian矩阵的逆梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法。具体如下:

梯度下降法,最速下降法,牛顿法,Levenberg-Marquardt 修正,共轭方向法,共轭梯度法

共轭方向发,共轭梯度法

可参考共轭方向法共轭方向法

 

参考:【机器学习之数学】02 梯度下降法、最速下降法、牛顿法、共轭方向法、拟牛顿法

             《最优化方法(赖炎连 贺国平 清华大学出版社)》3.2节,3.3节