1.梯度下降法或最速下降法
gradient descent或steepest descent
求解无约束最优化问题的常用方法
是一种迭代算法
目标函数f(x)具有一阶连续偏导数
负梯度方向是使函数值下降最快的方向(根据一阶泰勒展开式得出的),只能确定x改变的方向。改变方向为:
所以x的每次改变都会使函数值减小。
当目标函数是凸函数时,梯度下降法的解是全局最优解。一般情况下,其解不保证全局最优解。
梯度下降法的收敛速度也未必是最快的。
随机梯度下降法
Stochastic gradient descent
2.牛顿法和拟牛顿法
Newton Method
quasi Newton Method
求解无约束最优化问题的常用方法。
有收敛速度快的优点。
“二次收敛”:牛顿方法的每一次迭代会使解的有效数字的数目加倍。
是一种迭代算法。
目标函数具有二阶连续偏导数。
根据二阶泰勒展开得出的,对二阶泰勒展开式求导并使导数为0,求解得出的x会使目标函数取得极值。
改变方向为:
如果是正定的,那么可以保证牛顿法的搜索方向是下降方向。
每一步需要求解目标函数的海塞矩阵的逆矩阵。计算比较复杂。
Hessian矩阵比较复杂。
拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这一计算过程。
这种选择有一定的灵活性,有多种具体的实现方法。
1.DFP(Davidon-Fletcher-Powell)算法
选择 作为
的近似,要求矩阵
满足同样的条件。
2.BFGS(Broyden-Fletcher-Goldfarb-Shanno)算法
选择 作为
的近似。
3.Broyden类算法
对 求逆,作为
的近似。
从数学的角度理解:
1.求解方程
牛顿法是一种线性化方法(使用泰勒级数前面2项,涉及一阶求导)。
把非线性方程线性化的一种近似方法。
2.最优化
目标函数使用泰勒级数前面3项表示(涉及一、二阶求导)。
然后对目标函数求导,令其导数为0。
然后求解这个方程。