Have a Question?
高斯牛顿法 | Gauss-Newton Method
1 非线性最小二乘
设残差函数 \mathbf{f}(x) 为非线性函数,对其进行一阶泰勒展开:
\mathbf{f}(\mathbf{x}+\Delta \mathbf{x}) \approx \boldsymbol{\ell}(\Delta \mathbf{x}) \equiv \mathbf{f}(\mathbf{x})+\mathbf{J} \Delta \mathbf{x}\tag{1}
其中 \mathbf{J} 表示是残差函数 \mathbf{f}(x) 的雅克比矩阵。
则我们使用最小二乘的损失函数近似为:
\begin{aligned}F(\mathbf{x}+\Delta \mathbf{x}) \approx L(\Delta \mathbf{x}) & \equiv \frac{1}{2} \boldsymbol{\ell}(\Delta \mathbf{x})^{\top} \ell(\Delta \mathbf{x}) \\&=\frac{1}{2} \mathbf{f}^{\top} \mathbf{f}+\Delta \mathbf{x}^{\top} \mathbf{J}^{\top} \mathbf{f}+\frac{1}{2} \Delta \mathbf{x}^{\top} \mathbf{J}^{\top} \mathbf{J} \Delta \mathbf{x} \\&=F(\mathbf{x})+\Delta \mathbf{x}^{\top} \mathbf{J}^{\top} \mathbf{f}+\frac{1}{2} \Delta \mathbf{x}^{\top} \mathbf{J}^{\top} \mathbf{J} \Delta \mathbf{x}\end{aligned}\tag{2}
2 Gauss-Newton 法
对公式 (2) 我们需要求最优的 \Delta \mathbf{x} 即:
\Delta \mathbf{x} \equiv \arg \min _{\Delta \mathbf{x}}\left\{L(\Delta \mathbf{x})\right\}\tag{3}
因此两边求偏导:
\frac{\partial L(\Delta \mathbf{x})}{\partial \Delta \mathbf{x}} = \mathbf{J}^{\top} \mathbf{f} + \mathbf{J}^{\top} \mathbf{J} \Delta \mathbf{x} = 0\tag{4}
得到:
\left(\mathbf{J}^{\top} \mathbf{J}\right) \Delta \mathbf{x}_{\mathbf{g n}}=-\mathbf{J}^{\top} \mathbf{f}\tag{5}
高斯牛顿法由于不需要求解二阶的海森矩阵而是用 \mathbf{J}^{\top} \mathbf{J} 近似,因此对比牛顿法计算量会更小一些。
参考文献
[1] 贺一家, 高翔, 崔华坤.《从零开始手写 VIO》讲座