前置知识

海森矩阵

是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵。

对于一个函数

image-20241024095230966

如果f的所有二阶导数都存在,那么f的海森矩阵为:

image-20241024095330522

将二元函数的泰勒展开式推广到多元函数,则在一点处的泰勒展开的矩阵形式为:

image-20241024100815506

其中image-20241024101048882是函数在X0点的梯度,G(X0)就是海森矩阵。

海森矩阵是由目标函数在x点处的二阶偏导数组成的n*n阶对称矩阵

  • 如果海森矩阵是一个正定矩阵,则临界点是一个局部极小值
  • 如果海森矩阵是一个负定矩阵,则临界点是一个局部极大值
  • 如果是不定矩阵,则临界点处不是极值

牛顿法优化问题

牛顿法的基本思想是利用迭代点Xk处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。

将一个需要求解的损失函数函数f(x)进行泰勒展开到二阶,得到

image-20241024104750653

对上式求关于x的导数并令其等于0

image-20241024104853712

那么求得极值点的x坐标为image-20241024104946040

这就是牛顿法的更新公式

牛顿法的精髓就是二阶收敛,不仅利用了损失函数的一阶偏导数,也用到了损失函数的二阶偏导数,即梯度变化的趋势,因此比梯度下降法更快的确定合适的搜索方向,具有二阶收敛速度。

牛顿法的缺点:

  • 计算复杂
  • 对函数有较为严格的要求,必须具有连续的一阶和二阶偏导数,海森矩阵必须是正定的

LBFGS优化算法

在一些经典的优化算法中,比如梯度下降,SGD,Adam等都是在一阶法的基础上进行改进,加快收敛的速率。而牛顿法则是利用二阶法,在收敛速度上远快于一阶,但如果目标函数非凸时,二阶法可能收敛到鞍点。针对二阶法存在的问题提出了BFGS和低存储的LBFGS方法

留言

2024-10-23

⬆︎TOP