Dogleg法(狗腿法)的推导与步骤

编程入门 行业动态 更新时间:2024-10-27 09:42:23

Dogleg法(狗腿法)的推导与<a href=https://www.elefans.com/category/jswz/34/1771434.html style=步骤"/>

Dogleg法(狗腿法)的推导与步骤

     看SLAM视觉十四讲的时候了解到了信赖域法(Trust Region)的其中一种叫Dogleg,然而上网找了一圈,发现并没有较为详细的推导,自己整理了一下网上的资源,然后详细的推了一下:

     首先L-M法是G-N法与最速下降法的混合形式,通过调整阻尼因子来在这两种方法之间切换,而狗腿法类似,只不过它是通过改变信赖域来实现的。这里可以分为两个问题:

  1. 如何判断是使用G-N法还是最速下降法的增量?
  2. 如果确定了是使用哪个方法,那么它对应的增量是多少?
  3. 狗腿法的增量为多少?

首先关于第二个问题,如果学过最速下降法和G-N法,那么可以知道,他们对应的增量分别为:

       G-N法为:             最速下降法为:

     这里需要注意的是 :最速下降法的增量的方向,也就是的值,并不是雅克比矩阵的转置,这里我绕了很久,发现,十四讲的书上的雅克比矩阵其实是的雅克比矩阵,并不是f(x)的雅克比矩阵,如果我们将f(x)的雅克比矩阵计算出来为,那么F(x)的雅克比矩阵实际上是,推导如下:

      

     回到上面两个增量,这里的为多少呢?推导如下:

   然后我们将和相乘,发现最速下降法的增量,在网上很多地方都会将它命名为。

   另外G-N法的增量,网上很多地方将它命名为。

 以上,我们解决了之前提出的第二个问题,也就是这两个方法的增量为多少:

最速下降法:(也可以叫做或者)

G-N法:(也可以叫做或者)

然后来解决剩下两个问题,这两个问题其实可以合起来,也就是问:狗腿法的增量和G-N法、最速下降法的增量有什么关系?

        狗腿法“人为地”定义了利用信赖域来选择狗腿法的增量为多少(或者说狗腿法每一步的迭代步长),我在网上看到了两种方法,本质都是一样的,但是实施起来稍微有点不同:

方法一:

                                                            

       这里的三种情况可以对应如下的三个图(上面的表示信赖域半径):

                                                      

利用上面的判断标准来得出狗腿法对应的迭代步长。

  方法二:

                                       

这里tau的选取方式如下:

                       
需要注意的是第三个情况,这种情况的值为delta,我们可以将等式两边同时求2范数的平方,并且将tau-1看做,于是可以写成:   

            

解这个2元1次方程就可以得出,再求tau。

至此,通过以上方法可以求出狗腿法对应的步长(或叫)。

然后计算增益比,增益比的计算我见过分母上使用一阶近似,或者二阶近似,至于怎么选取我并不是很懂。但是我看网上别人的大都采用二阶近似。当使用计算出之后,我们根据如下的判断标准来调整信赖域的半径:

                               

这里。然后不断地循环迭代。

以上的内容是参考别人的博客加上自己的理解和整理,参考地址如下:

狗腿法+算法描述

狗腿法

狗腿法+信赖域

f(x)和F(x)的梯度和雅克比矩阵

 

 

更多推荐

Dogleg法(狗腿法)的推导与步骤

本文发布于:2024-02-11 00:13:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1678107.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:步骤   狗腿   Dogleg

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!