常用优化方法

Posted by ZhengYang on 2016-08-04

以下的优化方法,对于非凸问题,都不能保证求得的极小值为全局最小值。

梯度下降

梯度下降是求解无约束最优化问题,最常用的方法。
常用于回归,神经网络等中,优化极小目标函数。
目标函数的梯度,表示函数值增长最快的方向,因此,取负梯度的方向作为下一次取值的方向。
优点:算法简单,实现容易。
缺点:极小值附近梯度减小慢。

牛顿法

牛顿法也是求解无约束最优化问题,常用的方法。
牛顿法是泰勒二阶展开,求偏导为0。相比梯度下降,它的收敛速度快,迭代次数少于梯度下降。
缺点:每一步除了计算梯度,还要计算Hesse矩阵的逆,计算复杂。

为什么梯度下降和牛顿法能迭代降低目标函数值?

这里不介绍梯度下降法和牛顿法的算法,仅说明为什么能迭代降低目标函数值。

拟牛顿法

牛顿法每次迭代都需要计算Hesse矩阵的逆,这也是计算负责的原因。为了解决这个问题,便出现了拟牛顿法。
拟牛顿法不是一种具体的算法,而是一些列的算法。如DFP,BFGS,Broyden类,SR1等。

拟牛顿法的主体思路

DFP

DFP是用G来逼近Hesse矩阵的逆。

BFGS

BFGS是用B来逼近Hesse矩阵。但可以通过Sherman-Morrison公式,导出关于G的迭代公式。

Broyden类

Broyden类是DFP和BFGS的线性组合。

BFGS的B迭代公式,通过SHerman-Morrison,导出BFGS关于G的迭代公式