Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

时间:2021-10-16 15:50:43

              1、前言

                               a、对于工程问题,一般描述为:从一些测量值(观测量)x 中估计参数 p?即x = f(p),

                             其中,x为测量值构成的向量,参数p为待求量,为了让模型能适应一般场景,这里p也为向量。

                             这是一个函数求解问题,可以使用Guass-Newton法进行求解,LM算法是对Newton法的改进。

                         c、如果函数f为线性函数,那这个问题就变成了最小二乘问题(请参阅我另一篇博客:最小二乘法),

                         d、这篇博客中讲解的LM法、Newton法主要用于函数f为非线性函数的情况。

              2、x = f(p)问题的Newton法求解

                               当迭代到第k次的时候得到参数Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法,其中Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法为残差:

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         对f(p)进行一阶泰勒公式展开,J为Jacobi(雅可比)矩阵,因为参数p是个向量,因此对p的求导即对p逐个元素求偏导:

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         计算第k+1次的残差:

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         通过第k次到第k+1次的迭代,

                         可以发现已经把非线性问题Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法转化为线性求解Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法,则最小二乘解为:

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         则k+1次的参数p为:

                                              Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

              3、加权Newton迭代

                               在Newton法中,所有的因变量都是等量加权的,除此之外,可以使用一个加权的矩阵对因变量进行加权。

                         例如,当测量矢量 x 满足一个协方差矩阵为Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法的高斯分布,且希望最小化Mahalanobis距离Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                                 当这个协方差矩阵可以是对角的,则表示 x 各坐标之间相互独立。

                                 当协方差矩阵为正定对称矩阵时,正规变为:

                                             Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                                             Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                                   备注:马氏距离Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         通过协方差反向传播,一阶近似下的协方差可以这么计算:

                                   Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         如果不可逆,那这个取逆过程为广义逆。

              4、Levenberg-Marquardt迭代(LM算法)

                               LM算法是对Newton迭代的改进。

                        (4)式的正规方程可以简化写成:Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         LM算法将上式改为:Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法,其中Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法,即N的对角线元素乘以Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法,非对角线元素不变Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                         Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法的设定策略为:在初始化时,Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法通常设定为Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                                             如果通过解增量正规方程得到的Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法导致误差减小,那么接受该增量并在下一次迭代前将Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法除以10。

                                             反之,如果Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法值导致误差增加,那么将Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法乘以10并重新解增量正规方程,继续这一过程直到求出的一个误差下降的Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法为止。

                                             对不同的Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法重复地解增量正规方程直到求出一个可以接受的Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                               LM算法的直观解释:当Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法非常小时,该方法与Newton迭代本质相同。

                                                 当Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法非常大时(本质上大于1),此时Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法的非对角线元素相对于对角元素而言变得不重要,此时算法倾向于下降法。

                                                  LM算法在Newton迭代和下降方法之间无缝地移动,Newton法将使得算法在解的领域附近快速收敛,下降法使得算法在

                                                  运行困难时保证代价函数是下降的。

              5、Newton法(LM法)两个适用场景的转换

                               a、在上一篇博客Newton法(牛顿法 Newton Method)中讲述了牛顿法适用的两个场景:1、函数求解;2、目标函数的最优化求解

                             上一篇博客中的f(x)相当于这篇博客中的 x –f(p),上一篇博客中是为了求x,这篇博客中是已知x,求p,只是表述不同。

                               b、这两个场景有时候是可以相互转换的:

                             例如:函数求解问题 f(x) = 0,那也可以认为是求解 min||f(x)||,其中||.||表示二范数,即Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法

                             例如:目标函数优化问题 min ||f(x)||,当这个优化问题的理论最优解就是为 0 时,那么这个问题也可以转化为求解 f(x) = 0

              自己所有博客汇总