最小二乘问题总结

最小二乘问题总结

  • 1.题外话
  • 2.最小二乘基础概念
  • 3.线性最小二乘问题的求解方法
  • 4.非线性最小二乘问题的求解方法
    • 4.1 最快下降法
    • 4.2 高斯牛顿法
    • 4.3 LM阻尼最小二乘法
    • 4.4 Dog-Leg最小二乘法

1.题外话

最近在学习深蓝学院的VIO课程,最小二乘问题的求解作为基础知识,在VIO的优化过程中非常重要。因此在这里对课程内容和查阅的资料做个总结,以便能够加深对最小二乘问题的理解。

2.最小二乘基础概念

最小二乘问题泛指具有如下形式的问题。
m i n f ( x ) = 1 2 ∑ i = 1 m r i 2 ( x ) (1) minf(x) =\frac{1}{2}\displaystyle\sum_{i=1}^{m}r_{i}^2(x) \tag{1} minf(x)=21i=1mri2(x)(1)

其中m一般指实例的个数, r i ( x ) r_{i}(x) ri(x)指残差,即预测值与观测值的差, f ( x ) f(x) f(x)称为损失函数(或代价函数,cost function),根据模型的不同有线性模型和非线性模型,分为线性最小二乘和非线性最小二乘。

最小二乘问题的主要思想就是求解未知参数 ,使得预测值与观测值之差(即误差,或者说残差)的平方和达到最小。

最小二乘问题也可以写成如下的向量形式。

r ( x ) = ( r 1 ( x ) , r 2 ( x ) , r 3 ( x ) . . . r m ( x ) ) T r(x) = (r_1(x),r_{2}(x),r_{3}(x)...r_{m}(x))^T r(x)=(r1(x),r2(x),r3(x)...rm(x))T,则(1)式可表达为
f ( x ) = 1 2 ∣ ∣ r ( x ) ∣ ∣ 2 (2) f(x) = \frac{1}{2}||r(x)||^2\tag{2} f(x)=21r(x)2(2)

3.线性最小二乘问题的求解方法

线性最小二乘求解较为方便。我们假设模型为
y = θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + . . . + θ n x n (3) y= \theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}+...+\theta_{n} x_{n}\tag{3} y=θ1x1+θ2x2+θ3x3+...+θnxn(3)

y = θ T ∗ x (4) y =\theta^T *\boldsymbol x\tag{4} y=θTx(4)

其中 θ = ( θ 1 , θ 2 , θ 3 , . . . , θ n ) T \theta = (\theta_{1}, \theta_{2}, \theta_{3}, ... ,\theta_{n})^T θ=(θ1,θ2,θ3,...,θn)T x = ( x 1 , x 2 , x 3 , . . . , x n ) T \boldsymbol x= (x_{1},x_{2}, x_{3}, ... ,x_{n})^T x=(x1,x2,x3,...,xn)T

假设有 m m m组样本,则预测值为 y i y_{i} yi,测量值为 y ^ i = b i \hat y_{i}=b_{i} y^i=bi i ∈ ( 1... m ) i\in(1...m) i(1...m)。则残差函数可以表示为
r i ( θ ) = y i − y ^ i = θ T ∗ x i − b i = [ x 11 x 12 . . . x 1 n x 21 x 22 . . . x 2 n ⋮ x m 1 x m 2 . . . x m n ] [ θ 1 θ 2 ⋮ θ n ] − [ b 1 b 2 ⋮ b n ] = X θ − b (5) r_{i}(\theta) =y_{i}-\hat y_{i} = \theta^T *\boldsymbol x_{i}-b_{i}=\left[ \begin{matrix} x_{11} & x_{12} &... & x_{1n}\\ x_{21} & x_{22} &... & x_{2n} \\ & \vdots \\ x_{m1} & x_{m2} &... & x_{mn} \end{matrix}\right] \left[ \begin{matrix} \theta_{1} \\ \theta_{2}\\ \vdots \\ \theta_{n} \end{matrix}\right]-\left[ \begin{matrix} b_{1} \\ b_{2}\\ \vdots \\ b_{n} \end{matrix}\right]=X\theta-b\tag{5} ri(θ)=yiy^i=θTxibi=x11x21xm1x12x22xm2.........x1nx2nxmnθ1θ2θnb1b2bn=Xθb(5)

将其写成最小二乘的形式即为
f ( θ ) = 1 2 ∣ ∣ X θ − b ∣ ∣ 2 (6) f(\theta) = \frac{1}{2}||X\theta-b||^2 \tag{6} f(θ)=21Xθb2(6)


线性最小二乘问题如何求解呢?

我们可以进行如下处理:
f ( θ ) = 1 2 ∣ ∣ X θ − b ∣ ∣ 2 = 1 2 ( θ T X T X θ − b T X θ − θ T X T b + b T b ) (7) f(\theta) = \frac{1}{2}||X\theta-b||^2 = \frac{1}{2}(\theta^TX^TX\theta-b^TX\theta-\theta^TX^Tb+b^Tb)\tag{7} f(θ)=21Xθb2=21(θTXTXθbTXθθTXTb+bTb)(7)

上式对 θ \theta θ求导,并令导数等于零可得
∂ f ( θ ) ∂ θ = X T X θ − X T b = 0 (8) \frac{\partial f(\theta) }{\partial \theta}=X^TX\theta-X^Tb = 0\tag{8} θf(θ)=XTXθXTb=0(8)

θ = ( X T X ) − 1 X T b (9) \theta = (X^TX)^{-1}X^Tb\tag{9} θ=(XTX)1XTb(9)
式(9)即为线性最小二乘问题的解的矩阵形式

4.非线性最小二乘问题的求解方法

非线性最小二乘问题则不然,它要复杂得多,没有办法变换为矩阵方程形式,以至于它必须将问题化简为每一步均为可以直接求解的子问题,整个求解过程是迭代的。

求解非线性最小二乘问题的方法有很多种。为了介绍方便,我们重新表述一下最小二乘问题的形式。我们将最小二乘问题表述为:
F ( x ) = 1 2 ∑ i = 1 m f i 2 ( x ) = 1 2 ∣ ∣ f ( x ) ∣ ∣ 2 = 1 2 f ( x ) T f ( x ) (10) F(x) =\frac{1}{2}\displaystyle\sum_{i=1}^{m}f_{i}^2(x) =\frac{1}{2}||f(x)||^2=\frac{1}{2}f(x)^Tf(x) \tag{10} F(x)=21i=1mfi2(x)=21f(x)2=21f(x)Tf(x)(10)
最小二乘问题总结_第1张图片
最小二乘问题总结_第2张图片

4.1 最快下降法

最小二乘问题总结_第3张图片

4.2 高斯牛顿法

最小二乘问题总结_第4张图片
最小二乘问题总结_第5张图片

4.3 LM阻尼最小二乘法

最小二乘问题总结_第6张图片
最小二乘问题总结_第7张图片
在这里插入图片描述
最小二乘问题总结_第8张图片

4.4 Dog-Leg最小二乘法

最小二乘问题总结_第9张图片
最小二乘问题总结_第10张图片
最小二乘问题总结_第11张图片
最小二乘问题总结_第12张图片
在这里插入图片描述

https://blog.csdn.net/fangqingan_java/article/details/48951191
https://blog.csdn.net/qq_40913605/article/details/86675157
https://zhuanlan.zhihu.com/p/38128785
https://blog.csdn.net/jinshengtao/article/details/89066810
https://blog.csdn.net/stihy/article/details/52737723?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
https://blog.csdn.net/baoxiao7872/article/details/79914083

你可能感兴趣的:(SLAM,基础算法,数学基础,最小二乘)