原文地址:二阶优化方法——牛顿法、拟牛顿法(BFGS、L-BFGS)
欢迎关注我的公众号,微信搜 algorithm_Tian 或者扫下面的二维码~
现在保持每周更新的频率,内容都是机器学习相关内容和读一些论文的笔记,欢迎一起讨论学习~
对于逻辑回归和最大熵模型等以似然函数为最优化目标的问题,一般常用的求解方法有梯度下降法、牛顿法和拟牛顿法等。梯度下降法是一阶优化方法。牛顿法和拟牛顿法是二阶优化方法。
牛顿法和拟牛顿法的优势是收敛速度快,但是牛顿法迭代的每一步都需要求解目标函数的二阶偏导矩阵——海森矩阵(Hessian matrix)的逆矩阵,计算较复杂。拟牛顿法简化了这一点,它通过正定矩阵近似海森矩阵或它的逆矩阵。
本篇博文就介绍二阶最优化方法中的牛顿法和拟牛顿法中的BFGS、LBFGS这几个方法。
1.牛顿法
假设存在一个无约束的最优化问题:最小化目标函数f(x)。
牛顿法就是利用迭代点处的一阶导数(梯度)和二阶导(hessian矩阵)对目标函数进行二次函数近似,在每次迭代中迭代方向都是沿着当前点函数值下降的方向,不断重复这一过程直到求得满足精度的近似极小值。
假设f(x)有二阶连续偏导数,那么对它进行二阶泰勒展开有:
这里,是f(x)在的梯度向量:
是f(x)的hessian矩阵:
=
函数f(x)有极值的必要条件就是在极值点处一阶导数为0,即梯度向量为0。我们对 二阶近似 求导有:</