高斯牛顿(Gauss Newton)、列文伯格-马夸尔特(Levenberg-Marquardt)最优化算法与VSLAM

转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/74973347


在VSLAM优化部分,我们多次谈到,构建一个关于待优化位姿的误差函数

直接法:灰度误差  ;特征点法:重投影误差),

待优化的位姿使这个误差函数最小时(当SLAM运动不是太剧烈时,误差函数满足单峰性),认为此时位姿最精确。


如果这个误差函数是线性,而且已知解析式的,很容易通过求导,令导数=0,求极值解决问题。

然而,误差函数是关于待优化位姿的一个非线性多元函数,怎么求使这个误差函数最小的位姿呢?


实际上,这是一个非线性无约束最优化问题,在目前主流的VSLAM(比如ORB,SVO,LSD)里,

采用的优化算法主要有两种:

一种是高斯牛顿(Gauss Newton)算法,另一种是列文伯格-马夸尔特(Levenberg-Marquardt)算法,简称LM算法


下面我们详细探讨一下,高斯牛顿和LM算法的原理以及在VSLAM中的应用。

首先,最小二乘是要解决什么问题?

       1 最小二乘算法

               

     1.1 线性最小二乘问题

 

             

1.2 非线性最小二乘问题

 

 

               



迭代过程如下图所示:

1.2.1 高斯牛顿法

 

 

                         

 

 

               

1.2.2 LM算法

 

 

               


         

 

       

 

                    



 

 

        

 

2        高斯牛顿和LM算法在VSLAM中的应用


                                   http://blog.csdn.net/zhubaohua_bupt/article/details/74011005



     http://blog.csdn.net/zhubaohua_bupt/article/details/74011005

 

转载于:https://www.cnblogs.com/zhubaohua-bupt/p/7182779.html

高斯牛顿法(Gauss-Newton Method)和列文伯格-马夸尔特法(Levenberg-Marquardt Method)都是非线性最小二乘问题的优化算法,用于求解参数估计或曲线拟合问题。它们的主要区别在于迭代步骤中如何计算参数的更新。 1. 高斯牛顿法: - 高斯牛顿法使用线性化的方法来逼近非线性最小二乘问题。它通过将目标函数在当前参数点进行泰勒展开,并忽略高阶项来近似求解。 - 在每个迭代步骤中,高斯牛顿法首先计算目标函数的雅可比矩阵,然后通过求解线性最小二乘问题得到参数的更新量。这个线性最小二乘问题可以通过求解正规方程或使用其他线性代数方法来实现。 - 高斯牛顿法对于具有良好初始值的问题通常收敛速度较快,但对于存在奇异值或初始值较差的问题可能会出现收敛困难或局部最小值。 2. 列文伯格-马夸尔特法: - 列文伯格-马夸尔特法是对高斯牛顿法的改进,旨在解决高斯牛顿法中可能出现的收敛困难问题。 - 在每个迭代步骤中,列文伯格-马夸尔特法引入了一个调节参数 (λ) 来平衡高斯牛顿法的线性化近似和梯度信息的贡献。 - 当 λ 接近于零时,列文伯格-马夸尔特法退化为高斯牛顿法;当 λ 较大时,它更加依赖梯度信息来进行参数更新。通过调节 λ 的值,可以在迭代过程中平衡收敛速度和收敛稳定性。 - 列文伯格-马夸尔特法的优势在于对于初始值的选择较为鲁棒,可以更好地处理奇异值和初始值较差的问题。 总的来说,高斯牛顿法是列文伯格-马夸尔特法的一种特例,而列文伯格-马夸尔特法通过引入调节参数,提供了更好的稳定性和收敛性能。但在实际应用中,具体选择哪种方法取决于问题的特性以及对收敛速度和稳定性的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值