比较常用的优化方法——G-N,LM

比较常用的优化方法——G-N,LM

前言

  在之前的文章中讲到了最速下降法以及牛顿法,这两种方法各有利弊,最速下降法是函数的一阶泰勒展开式,对于多维自变量标量函数只需要计算一个雅可比矩阵,就可以得到函数的下降方向,虽然雅可比矩阵计算量比较小,但是一阶泰勒展开式的拟合性比较差,导致步长不能过长,进而导致步数增加。而牛顿法是函数的二阶泰勒展开式,需要计算海塞矩阵,才可以得到函数的下一个步点,虽然走的步数相对较少,但每一步需要的计算量比较大。
  因而,在这两种方法的基础上,提出了G-N(高斯牛顿)以及LM(列文伯格—马奎尔特),高斯牛顿法是在最速下降法以及牛顿法的基础上改进的,而LM是在高斯牛顿法的基础上改进的。
  G-N,LM一般是用来解决最小二乘问题的。

1.G-N

  在用梯度下降法以及牛顿法解决最小二乘问题时,都是先对函数平方,再对函数进行泰勒展开,G-N方法则是先对函数进行一阶泰勒展开再对泰勒展开函数进行平方,这样做的计算过程中不存在海塞矩阵,而是利用两个雅可比向量(因为是多维自变量标量函数,因此雅可比是一个行向量)的运算来近似海塞矩阵,公式推导如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述该项为实数,实数的转置还是实数,因此:

在这里插入图片描述

在这里插入图片描述
令右式关于ΔX的导数为0,得:
在这里插入图片描述
在这里插入图片描述
该项为实数,因此:

在这里插入图片描述

牛顿法得结果为:
在这里插入图片描述
  这里看起来很像,但是是不一样的,G-N的雅可比向量对应未经平方的函数,牛顿法的雅可比向量对应经平方的函数,因为两种方法得最终目的都是利用二阶多项式去逼近函数,所以最终的表达式得形式会一样,明显G-N方法的计算量要更小

2.LM




  高博讲过这个,但是视频里很明显是概念模糊的,也许高博本人是清楚的,但表达上是模糊的。






  LM是对G-N的一种改善算法,在G-N方法中,求得的ΔX可能并不是一个理想的解,这可能是一个不可靠的“步伐”,那么我们需要判断这个ΔX是否是可靠的,引入了ρ:

在这里插入图片描述
ρ=实际下降/一阶线性逼近的下降
  当ρ比较大的时候,认为ΔX可靠,因为实际下降更多,此时,ΔX的范围可以适当扩大些;
  当ρ比较小的时候,认为ΔX不可靠,因为实际下降比较小,此时,ΔX的范围要适当缩小。
  对ΔX的范围要加一个约束,设定一个初始优化半径u,Levenberg设定D为单位矩阵,为一个圆,Marquardt设定D为主对角线非负的对角矩阵,为一个椭圆。
在这里插入图片描述

  这确实是一个不等式的约束,但是在标准的LM算法中,我们并不是将不等式约束写进拉格朗日函数中转化为无约束方程,这是一个复杂,计算量比较大的方法,而是:
在这里插入图片描述
!!!这不是不等式约束,也不是拉格朗日乘子!!!λ是一个在迭代过程中根据算法调整的参数,并不参与迭代过程中的求梯度运算
在对该式整理后得到:
在这里插入图片描述
  在标准的LM(Levenberg-Marquardt)算法中,并不涉及到常规意义上的拉格朗日乘子λ。

  在LM算法中,λ被称作阻尼系数,作用是平衡步长和控制算法的收敛性。阻尼系数λ是一个独立的参数,而不是一个拉格朗日乘子。
  当λ较大时,阻尼项的影响会增强,导致参数估计向量的更新幅度减小,步长较小。这使得LM算法更接近梯度下降法,因为梯度下降法也是通过较小的步长朝着梯度的反方向进行更新。

  相反,当λ较小时,阻尼项的影响减弱,参数估计向量的更新幅度增大,步长较大。这使得LM算法更接近高斯-牛顿法,因为高斯-牛顿法可以使用较大的步长进行参数的更新。

  总结起来,当λ较大时,LM算法更接近梯度下降法;当λ较小时,LM算法更接近高斯-牛顿法。对于中等大小的λ,LM算法可以在两种方法之间平衡,以获得更好的收敛性和稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值