SLAM从入门到放弃:SLAM十四讲第六章习题

以下均为简单笔记,如有错误,请多多指教。

  1. 证明线性方程 A x = b Ax=b Ax=b当系数矩阵 A A A超定时,最小二乘解为 x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)1ATb
    解:首先声明是最小二乘解是使得 ∣ ∣ A x − b ∣ ∣ 2 ||Ax-b||^2 Axb2得到最小值的解,假设记 x a = x + x △ x_a=x+x_{\triangle} xa=x+x A x = b Ax=b Ax=b的一个解,则:
    ∣ ∣ A x − b ∣ ∣ 2 = ∣ ∣ A ( x + x △ ) − b ∣ ∣ 2 = ∣ ∣ A x + A x △ − b ∣ ∣ 2 = ∣ ( A x − b + A x △ ) T ( A x − b + A x △ ) ∣ ||Ax-b||^2=||A(x+x_{\triangle})-b||^2=||Ax+Ax_{\triangle}-b||^2=|(Ax-b+Ax_{\triangle})^T(Ax-b+Ax_{\triangle})| Axb2=A(x+x)b2=Ax+Axb2=(Axb+Ax)T(Axb+Ax)
    = ∣ ( A x − b ) T ( A x − b ) + ( A x − b ) T A x △ + ( A x △ ) T ( A x − b ) + ( A x △ ) T A x △ =|(Ax-b)^T(Ax-b)+(Ax-b)^TAx_{\triangle}+(Ax_{\triangle})^T(Ax-b)+(Ax_{\triangle})^TAx_{\triangle} =(Axb)T(Axb)+(Axb)TAx+(Ax)T(Axb)+(Ax)TAx
    = ∣ ∣ A x − b ∣ ∣ 2 + ∣ x T A T A x △ − b T A x △ + x △ T A T A x − x △ T A T b ∣ + ∣ ∣ A x △ ∣ ∣ 2 =||Ax-b||^2+|x^TA^TAx_{\triangle}-b^TAx_{\triangle}+x_{\triangle}^TA^TAx-x_{\triangle}^TA^Tb|+||Ax_{\triangle}||^2 =Axb2+xTATAxbTAx+xTATAxxTATb+Ax2
    ≥ ∣ ∣ A x − b ∣ ∣ 2 + ∣ ∣ A x △ ∣ ∣ 2 + ∣ ( ( A T A ) − 1 A T b ) T A T A x △ − b T A x △ + x △ T A T A ( A T A ) − 1 A T b ∣ \geq ||Ax-b||^2+||Ax_{\triangle}||^2+|((A^TA)^{-1}A^Tb)^TA^TAx_{\triangle}-b^TAx_{\triangle}+x_{\triangle}^TA^TA(A^TA)^{-1}A^Tb| Axb2+Ax2+((ATA)1ATb)TATAxbTAx+xTATA(ATA)1ATb
    = ∣ ∣ A x − b ∣ ∣ 2 + ∣ ∣ A x △ ∣ ∣ 2 + ∣ b T ( A T A ) − 1 A T A x △ − x △ T b ∣ =||Ax-b||^2+||Ax_{\triangle}||^2+|b^T(A^TA)^{-1}A^TAx_{\triangle}-x_{\triangle}^Tb| =Axb2+Ax2+bT(ATA)1ATAxxTb
    = ∣ ∣ A x − b ∣ ∣ 2 + ∣ ∣ A x △ ∣ ∣ 2 + ∣ b T x △ − x △ T b ∣ =||Ax-b||^2+||Ax_{\triangle}||^2+|b^Tx_{\triangle}-x_{\triangle}^Tb| =Axb2+Ax2+bTxxTb
    = ∣ ∣ A x − b ∣ ∣ 2 + ∣ ∣ A x △ ∣ ∣ 2 =||Ax-b||^2+||Ax_{\triangle}||^2 =Axb2+Ax2
    ∣ ∣ A x − b ∣ ∣ 2 ≥ ∣ ∣ A x − b ∣ ∣ 2 + ∣ ∣ A x △ ∣ ∣ 2 ||Ax-b||^2 \geq ||Ax-b||^2+||Ax_{\triangle}||^2 Axb2Axb2+Ax2
    即如果要最优解只需要 x △ = 0 x_{\triangle}=0 x=0,因此 x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)1ATb即为超定 A x = b Ax=b Ax=b的最小二乘解。

  2. 调研最速下降法、牛顿法、高斯牛顿法和列文伯格-马夸尔特(LM算法)方法各有什么优缺点。除了我们举的Ceres库和g2o库,还有那些常用的优化库?
    答:此处的答案直接来自课本。最速下降法:直观上将本算法十分简单,直接按照梯度的反方向下降即可;缺点是过于贪心,容易呈锯齿状下降,从而增加迭代次数。牛顿法:相对而言也非常直观,同时由于引入了二阶导数,可以处理一阶导为0的情况;但缺点是二阶导数具有非常大的计算量。高斯牛顿法:在牛顿法的基础上进行了一定程度的简化,使用 J T J J^TJ JTJ代替海塞矩阵,避免了二阶导数的计算;缺点在于 J T J J^TJ JTJ很容易病态,导致无法得到正确的结果。LM算法:通过引入阻尼项使得 J T J J^TJ JTJ不那么容易病态,并且可以通过调整阻尼完成在梯度法和牛顿法之间切换;缺点我不太清楚。
    除了Ceres和g2o,我还用过levmarsparseLM,另外听说过bundler_sfm

  3. 为什么高斯牛顿法的增量方程系数矩阵可能不正定?不正定有什么几何含义?为什么在这种情况下解就不稳定了?
    答:本人对数值优化不是完全懂,所以此处的理解可能非常简单,甚至可能是错误的。首先对于方程 f ( x ) f(x) f(x)进行泰勒展开得到 f ( x ) = f ( x ) + Δ x J T + 1 / 2 Δ x H Δ x T f(x)=f(x)+\Delta xJ^T+1/2\Delta xH\Delta x^T f(x)=f(x)+ΔxJT+1/2ΔxHΔxT,然而在高斯牛顿法中 H H H被近似为 J T J J^TJ JTJ,上述方程可以写成 f ( x ) = f ( x ) + Δ x J T + 1 / 2 Δ x J T J Δ x T f(x)=f(x)+\Delta xJ^T+1/2\Delta xJ^TJ\Delta x^T f(x)=f(x)+ΔxJT+1/2ΔxJTJΔxT
    接下来叙述一些与最优化相关的问题,首先要求解最小值,必须要保证以下两个条件。第一个条件是说明取最优解的时候当前值的导数必须为0,第二个条件是说明取最优解的时候当前的二阶导必须大于0。
    J T = 0 ; J T J > 0 J^T=0 ; J^TJ>0 JT=0JTJ>0
    下图充分说明了此情况,明显在低点时一阶导为0,二阶导大于0。
    在这里插入图片描述
    因此 x J T J x T = ( x J T ) ( x J T ) T xJ^TJx^T=(xJ^T)(xJ^T)^T xJTJxT=(xJT)(xJT)T,考虑到存在 x J T = 0 xJ^T=0 xJT=0(我的想象是垂直于 J T J^T JT的向量,或者说与一阶导数所构成的超平面垂直的向量),因此 x J T J x T ≥ 0 xJ^TJx^T \geq 0 xJTJxT0,故可以认为高斯牛顿的Hessian矩阵是半正定的。
    关于不正定的几何意义,此处应用要从导数的角度来进行理解。当 J T J J^TJ JTJ是不正定的,则意味着二阶导数在0附近波动或者小于0。当小于0时,则意味一阶导数逐渐变小,则此时应该得到极大值。
    当二阶导数大于0且在0附近波动时,即 J T J J^TJ JTJ不稳定,此时意味着一阶导数的变化非常小,则整个求解域附近非常平滑(如下图所示)。由于计算机精度问题,此时的解就会非常不稳定。
    在这里插入图片描述
    当二阶导数在0附近波动时,即 J T J J^TJ JTJ一会大于0,一会小于0,此时意味着该解附近会有许多局部最优解,求解区域附近凹凸不平,如下图所示。明显此时很容易陷入局部最优解,解的精度也不是非常高。
    在这里插入图片描述

  4. Dogleg是什么?它与高斯牛顿法和列文伯特-马夸尔特方法有何异同?请搜索相关的资料。
    与LM算法使用阻尼项不同,Dogleg算法使用了置信域来完成最速下降法和高斯牛顿法之间的切换。简单来说,Dogleg算法就是分别计算了高斯牛顿法和最速下降法的下降方向和大小,然后将两个方向融合成一个置信域内的变化量。如下图所示,其中 h s d h_{sd} hsd是最速下降法求出的方向, h G N h_{GN} hGN是高斯牛顿法的方向, h d l h_{dl} hdl是融合后得到的方向, Δ \Delta Δ是置信域的半径。更详细的介绍请看:http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值