Levenberg-Maquardt Algorithm 推导


前置知识

1. 牛顿法

作用:1. 求根 2.求极值

  1. 求根

    目标: 求解 的根

    计算穿过初始点 并且斜率为 的直线与x轴的交点可得

    迭代公式:

  2. 求解一维无约束最小值

    目标: 求解 的根

    牛顿法也可用来求解函数的极值。极值点是导数为0,可用牛顿法求导数的零点。

    的二阶泰勒展开为

    求解

    可得

    迭代公式:

  3. 求解高维无约束最小值

    高维情况下泰勒二阶展开为

    因此迭代公式:

优点

  • 牛顿法是二阶收敛,比一般梯度下降法更快收敛,特别是当初始点距离目标足够靠近。

缺点

  • 应用求极值的时候需要目标函数二次可微,而梯度下降法只需要可微
  • 需要 矩阵正定,遇到 的极值点,或者初始点距离目标远时候可能无法收敛
  • 每次迭代需要求 的逆矩阵,运算量非常大

2. 高斯-牛顿法

作用:降低牛顿法的计算量,提高计算效率

最小二乘法问题

对于向量函数

最小化 或者找到

这里

牛顿法推导

已知牛顿法迭代公式:

的梯度 \nabla F(x)=\begin{bmatrix}\frac{\partial (\frac{1}{2}\sum_{i=1}^m(f_i(x))^2)}{\partial x_1}\\\vdots\\\frac{\partial (\frac{1}{2}\sum_{i=1}^m(f_i(x))^2)}{\partial x_n}\end{bmatrix}=\begin{bmatrix}\sum_{i=1}^{m}f_i\frac{\partial f_i}{\partial x_1}\\\vdots\\\sum_{i=1}^{m}f_i\frac{\partial f_i}{\partial x_n} \end{bmatrix}= \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}^T\begin{bmatrix}f_1 \\ \vdots \\ f_m \end{bmatrix}

矩阵有

忽略二阶导数项有:

所以:

高斯-牛顿迭代公式:

优点

  • 满秩,此时二次项 可以忽略,高斯牛顿和牛顿法都会收敛
  • 无需计算 矩阵

缺点

  • 若 或 比较大,会导致难以忽略该二次项,高斯牛顿法的收敛速度会很慢,甚至无法收敛。

Levenberg-Maquardt 算法

根据目标函数 二阶近似得到:

我们定义下降方向为

高斯牛顿法迭代公式:

LM迭代公式:
or

作用:结合了高斯牛顿法与梯度下降法的特点,引入阻尼因子来调节算法特性。

因子作用

  • 当 时保证系数矩阵正定,从而确保迭代的下降方向
  • 当 很大时,退化为梯度下降法:
  • 当 很小时,退化为高斯牛顿法:

的计算

  • 初始取值: 的初始值 与 矩阵的元素个数有关:

  • 更新: 由系数 来控制,这里:

    ​ 分子的目标函数在步长 下的实际变化,分母为目标函数二阶近似的变化:

    可以看出

    • 越大,表明 对 的效果越好,可以缩小 以使得 算法接近高斯牛顿法
    • 越小,表明 对 的效果越差,所以增大 以使得 算法接近梯度下降法并减少步长

u 和 p 关系曲线图

​ 和 关系曲线图

LM算法流程图

LM算法流程图

Reference

  • boksic 非线性优化整理-1.牛顿法 http://blog.csdn.net/boksic/article/details/79130509

  • boksic 非线性优化整理-2.高斯牛顿法 https://blog.csdn.net/boksic/article/details/79055298

  • boksic 非线性优化整理-3.Levenberg-Marquardt法(LM法)https://blog.csdn.net/boksic/article/details/79177055#

  • Timmy_Y 训练数据常用算法之Levenberg–Marquardt(LM)https://blog.csdn.net/mingtian715/article/details/53579379

  • Miroslav Balda 的Methods for non-linear least square problems http://download.csdn.net/detail/mingtian715/9708842

你可能感兴趣的:(Levenberg-Maquardt Algorithm 推导)