1. 高斯牛顿法
残差函数f(x)为非线性函数,对其一阶泰勒近似有:
这里的J是残差函数f的雅可比矩阵,带入损失函数的:
令其一阶导等于0,得:
这就是论文里常看到的normal equation。
2.LM
LM是对高斯牛顿法进行了改进,在求解过程中引入了阻尼因子:
2.1 阻尼因子的作用:
2.2 阻尼因子的初始值选取:
一个简单的策略就是:
2.3 阻尼因子的更新策略
3.核心代码讲解
3.1 构建H矩阵
void Problem::MakeHessian() {
TicToc t_h