slam数学基础——最小二乘
一、前言
1. 最小二乘是一类特殊形式的最优化求解问题,相比于其他优化问题,求解方式比较简洁
2.最小二乘被广泛应用于各种实际问题的建模,在求解实际工程问题中有着广泛的应用,例如 slam 中随处可见最小二乘的声影
二、线性最小二乘法
1. 预备知识
1. , rank(null_space) + rank(A) = n
2. 齐次线性方程组求解
(1)
肯定是该方程组的一个解
a. 存在唯一零解: rank(null_space) = 0, 等价于 rank(A) = n. 等价于 的各个列向量线性无关
b. 存在除了零解以外的其他解: rank(null_space)>0, 等价于 rank(A) < n,等价于 的各个列向量线性相关
3. 非齐次线性方程组求解
(2)
解的形式: 特解+通解: 若 是
的解,
是
的一个解,那么
也是
的一个解
a. 没有解: 向量不在
的列向量张成的向量空间
b. 唯一解: 向量在
的列向量张成的向量空间, 且 rank(null_space) = 0 (
只有唯一零解 )
c. 无穷多个解: 向量在
的列向量张成的向量空间, 且 rank(null_space) > 0 (
有多个解 )
2. 非齐次最小二乘
1. 定义
(3)
2.和求解线性方程组的联系
当求解(2)时,若该方程无原始解满足该方程,那么这时候需要求一个最小二乘解 ,也就是等价于求解 (3)
注意: 最小二乘解并不是原始解
3. 求解
在
的列向量张成的向量空间,
向量不在
的列向量张成的向量空间,若要使得
最小,
当且仅当 与
的列向量张成的向量空间 的正交时,
最小, 如下图:
那么有 (4)
得到 (5)
最后通过求解式(5) 可以得到最小二乘解, (5) 可以通过 SVD 求解
3. 齐次最小二乘
1. 定义
(6)
2.和求解线性方程组的联系
当求解(1)时,若该方程没有非零解满足该方程,那么那么这时候需要求一个最小二乘解 ,也就是等价于求解 (6)
3. 求解
将矩阵 A SVD 分解, (7)
展开为: (8)
其中 为矩阵的秩,
,
的各个列向量互相正交, 且对角矩阵中的奇异值按照从大到小的顺序排列,那么有:
(9)
结论: 最小二乘解 是最小奇异值对应的
的列向量
此时,
(10)
若取 的其他列向量,
三、非线性最小二乘
1. 定义
(11)
2. 求解流程
局部泰勒展开,求迭代 , 然后有 :
(12)
3. Gauss-Newton 法
四、非线性和线性最小二乘的讨论
1. 线性最小二乘对应全局最优解,非线性最小二乘无法保证全局最优,最终结果受初始值影响较大,容易陷入局部最优
2. 线性最小二乘: 若坐标用齐次坐标表示, 对应齐次最小二乘;若坐标用非齐次坐标表示,对应非齐次最小二乘
3. 线性最小二乘不用迭代,可通过SVD求解效率高。非线性最小二乘需要迭代求解,求解时间不可控
4. 一般线性最小二乘对应着 DLT 算法,作为初始值。非线性最小二乘通过最小化某些 error_term,对线性求解的结果进一步优化. 例如求解单应性矩阵
5. 举例: 二维平面直线拟合
a. 非齐次线性最小二乘: y=kx+b, error = y_mea - y_predict
b. 非齐次最小二乘: ax+by+c=0
c. 非线性最小二乘: error = y_mea 到直线的距离
五、M-Esimation
1. 引入 Loss function,抑制 outliers
六、Reference
1. MIT:Gilbert Strang Linear Algebra (公开课)
2. Robotics-perception - University of Pennsylvania- Jianbo Shi (公开课)
声明:本博客内容原创,谢绝转载,若有错误的地方,还请及时指出。