【VSLAM面试】必备基础知识2-最小二乘问题求解,基础矩阵、本质矩阵和单应矩阵,矩阵分解(求解Ax = b)

【VSLAM面试】必备基础知识2-最小二乘问题求解,基础矩阵、本质矩阵和单应矩阵,矩阵分解(求解 A x = b Ax = b Ax=b

最小二乘问题求解——求解b在A的列向量空间中的投影

名称目标函数的一般形式 m i n F ( x ) = ∣ ∣ 1 2 f ( x ) ∣ ∣ 2 \mathbf{minF(x)=\left|\right|\frac{1}{2}{{f(x)}}\left|\right|^{2}} minF(x)=21f(x)2, F ( x ) F(x) F(x) f ( x ) f(x) f(x)二范数的平方
简单情况——解析解 f ( x ) f(x) f(x)形式简单的情况,如线性函数,可以直接求解析解,令: d F / d x = 0 dF/dx = 0 dF/dx=0
复杂情况——迭代求解非线性复杂情况,导数形式复杂,解析解求解困难:迭代求解,寻找下降增量 △ x {\bigtriangleup x} x
问题转换解析法:求解析解 d F / d x = 0 dF/dx = 0 dF/dx=0→非线性最小二乘问题迭代法:寻找下降增量 △ x {\bigtriangleup x} x
非线性最小二乘迭代求解步骤
1.确定求解的目标函数,及迭代初始值 x 0 x_0 x0
2.对第 k k k次迭代,根据当前下降梯度,寻找增量 △ x {\bigtriangleup x} x,使目标函数达到最小值
3.若 △ x {\bigtriangleup x} x足够小,停止迭代,否则令 x k + 1 = x k + △ x k x_{k+1} = x_{k}+{\bigtriangleup x}_{k} xk+1=xk+xk,返回第二步
迭代方法:一阶二阶梯度法、高斯牛顿法、L-M法
非线性优化问题求解的前提是需要提供良好的初值,否则容易陷入局部最小值(在SLAM中,常用 I C P , P n P ICP,PnP ICP,PnP等算法提供初始优化值)
∙ \bullet F ( x ) F(x) F(x)泰勒展开 F ( x ) = ∣ ∣ f ( x + △ x ) ∣ ∣ 2 2 ≈ ∣ ∣ f ( x ) ∣ ∣ 2 2 + J ( x ) △ x + 1 2 △ x T H △ x F(x)=\left|\right|{{f(x+ {\bigtriangleup x} )}}\left|\right|^{2}_{2} \approx \left|\right|{{f(x)}}\left|\right|^{2}_{2} + J(x){\bigtriangleup x} + \frac{1}{2}{\bigtriangleup x}^{T}H{\bigtriangleup x} F(x)=f(x+x)22f(x)22+J(x)x+21xTHx
∙ \bullet f ( x ) f(x) f(x)泰勒展开 f ( x + △ x ) ≈ f ( x ) + J ( x ) △ x f(x+ {\bigtriangleup x})\approx f(x) + J(x){\bigtriangleup x} f(x+x)f(x)+J(x)x
名称一阶梯度法/
最速下降法
二阶梯度法/
牛顿法
高斯牛顿法L-M法Dog-Leg法
主要思想一阶泰勒展开(沿负梯度方向下降)二阶泰勒展开,并对 Δ x \Delta x Δx求导 f ( x ) f(x) f(x)进行一阶泰勒展开, H H H矩阵近似计算 J J T JJ^T JJT △ x {\bigtriangleup x} x附近,添加信赖区域(二阶近似有效性),根据近似性,适当放大或缩小近似范围通过找到一个合适的步长指导参数的更新方向,以在参数空间中找到更好的解
展开方式 F ( x ) F(x) F(x)泰勒展开 F ( x ) F(x) F(x)泰勒展开 f ( x ) f(x) f(x)泰勒展开 f ( x ) f(x) f(x)泰勒展开 f ( x ) f(x) f(x)泰勒展开
框架Line SearchLine SearchLine SearchTrust RegionTrust Region
增量求解 △ x ∗ = − J T ( x ) {\bigtriangleup x}^{*}=-J^{T}(x) x=JT(x)
通常需要设置步长
J + H △ x = 0 ⟹ H △ x = − J J+H{\bigtriangleup x}= 0\Longrightarrow H{\bigtriangleup x}=-J J+Hx=0Hx=J J ( x ) J T ( x ) △ x ⏟ H ( x ) = − J ( x ) f ( x ) ⏟ g ( x ) \underbrace{J(x){J^{T}(x)}{\bigtriangleup x}}_{H(x)} = \underbrace{-J(x)f(x)}_{g(x)} H(x) J(x)JT(x)x=g(x) J(x)f(x) H △ x = g H{\bigtriangleup x}=g Hx=g ( H + λ D T D ) △ x = g (H+\lambda D^TD){\bigtriangleup x}=g (H+λDTD)x=g ( H + λ I ) △ x = g (H+\lambda I){\bigtriangleup x}=g (H+λI)x=g
特点 ∙ \bullet 遇到zigzag问题,过于贪婪,容易走出锯齿路线,反而增加了迭代次数
∙ \bullet 计算快
∙ \bullet 收敛慢
∙ \bullet 需要计算目标函数地 H H H矩阵,在问题规模较大时非常困难
∙ \bullet 收敛慢
∙ \bullet J T J J^TJ JTJ近似牛顿法中的H矩阵,省去计算H的过程
∙ \bullet 无法保证H矩阵可逆,可能出现 J T J J^TJ JTJ为奇异矩阵或病态矩阵,导致算法不收敛(即展开点的局部近似不像二次函数)
∙ \bullet 问题性质较好时使用(比较简单的情况)
∙ \bullet 计算方便

∙ \bullet 增加了H矩阵的正定性,使得 ( H + λ I ) (H+\lambda I) (H+λI)一定可逆
∙ \bullet λ \lambda λ较小时,H占主要作用,二次近似较好,L-M方法接近于高斯牛顿法
∙ \bullet λ \lambda λ较大时, λ D T D \lambda D^TD λDTD占主要作用,二次近似不够好,L-M法更接近于一阶梯度下降法(最速下降法)
∙ \bullet 收敛速度较慢
∙ \bullet 问题接近病态(复杂情况)时使用
∙ \bullet 控制 λ \lambda λ调整收敛结果

∙ \bullet 在初始阶段更接近于高斯牛顿法的预测步长,因此可以在迭代的早期快速收敛到最优解附近
∙ \bullet 通过信赖区域的大小来控制步长的选择,可以根据问题的特性和需求进行调整,以平衡收敛速度和精确性

∙ \bullet Line Search:先固定搜索⽅向,然后在该⽅向寻找步⻓,以最速下降法和 Gauss-Newton 法为代表
∙ \bullet Trust Region:先固定搜索区域,再考虑找该区域内的最优点,以 L-M 为代表
∙ \bullet 实际问题中,通常选择 G-N 或 L-M 之⼀作为梯度下降策略
∙ \bullet Dog-Leg:G-N与最速下降的混合

基础矩阵、本质矩阵和单应矩阵

名称自由度公式适用情况求解方法纯旋转情况
基础矩阵 F F F7 F = K − T E K − 1 F = \mathbf{K}^{-T}E\mathbf{K}^{-1} F=KTEK1空间中的特征点运动估计八点法(五点法)纯旋转情况下两视图的对极约束不成立,基础矩阵为0
本质矩阵 E E E5 E = t ^ R E = \hat{t}R E=t^R空间中的特征点运动估计八点法(五点法)
单应矩阵 H H H8 H = ( R − t n T d ) K − 1 H = (R-\frac{t\mathbf{n}^{T}}{d})\mathbf{K}^{-1} H=(RdtnT)K1同一平面上的特征点运动估计DLT法(4对匹配点)纯旋转情况下仍然适用,可以通过单应矩阵H分解出R
同时估计基础矩阵和单应矩阵,选择重投影误差比较小的作为最终的运动估计矩阵

矩阵分解(求解 A x = b Ax = b Ax=b

名称公式分解描述(将矩阵 A A A分解成不同的形式)求解方法
QR分解 A = Q R A=QR A=QR一个正交矩阵 Q Q Q和一个上三角矩阵 R R R相乘的形式正交矩阵的逆等于转置,把 A x = b Ax=b Ax=b问题转换为求解 R x = Q − 1 b Rx=Q^{-1}b Rx=Q1b问题
LU分解 A = L U A = LU A=LU一个下三角矩阵 L L L和一个上三角矩阵 U U U相乘的形式高斯消元
Chokesly分解 A = L L T = R T R A = LL^T = R^TR A=LLT=RTR一个下三角矩阵 L L L和其转置 L T L^T LT相乘的形式将问题转换为 L y = b Ly=b Ly=b L T x = y L^Tx=y LTx=y两个子线性方程进行分步求解,LLT分解要求 A A A对称正定矩阵,其改进版本LDLT分解要求A矩阵可以是对称半正定矩阵; 半正定矩阵:设 A A A n n n阶方阵, A ∈ R n × n A \in R^{n\times n} ARn×n,如果对于任意的非零向量 z ∈ R n z \in R^n zRn,都有 z T A z ≥ 0 z^TAz\geq 0 zTAz0,则称 A A A为半正定矩阵,如果严格 z T A z > 0 z^TAz > 0 zTAz>0,则称 A A A为正定矩阵。
SVD分解 A = U Σ V T A = UΣV^T A=UΣVT两个正交矩阵 U U U V V V和一个非负对角矩阵 Σ Σ Σ相乘的形式利用正交矩阵的逆等于转置,实现快速求解

∙ \bullet 从速度上来看,Cholesky分解方法速度是最快的,并且精度较好,但其要求矩阵A是对称正定的
∙ \bullet 精度最好最稳定的是SVD分解法,但求解速度慢
∙ \bullet LU分解和QR分解速度和精确性居中,但其要求矩阵A是满秩的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值