摘要
最小二乘零零总总学过很多次 ,但总是没用上,最近学习光流算法(包括之前学习的卡尔曼滤波)又提到最小二乘,于是打算对其做个简单的总结。主要包括理论的通俗理解,和公式的理论推导。
通俗理解
**最小二乘基本思想:**传感器等测量工具得到了一组数据,我们假定这组数据会服从一定的数学表达式(说白了就是服从某一个函数),这个函数可以是线性的(如果是非线性的,那就泰勒展开转为线性的),那么我们可以通过 最小二乘这个思想,利用这组数据估计出这个函数的表达式。
估计出了这个表达式后,之后有了测量值,我们就可以把这个测量值带入这个表达式,得出一个误差较小的估计值。
理论推导
观测值Y的获取
现我们通过传感器等观测器获取到了m个数据记为 Y m Ym Ym;
理论值J的假设
除了可以直接通过观测器得到目标值,还可以通过物理/数学模型得到目标值,但我们并不知道这个物理/数学模型的具体表达式是什么,现在我们假设为是线性的,为 J = K ∗ X J =K*X J=K∗X ;
最小二乘估计策略
使 L = ∑ i = 1 m ( J − Y ) i 2 L=\sum_{i=1}^m (J -Y)^2_i L=∑i=1m(J−Y)i2最小,转为向量表达式为:
L = ∣ ∣ J − Y ∣ ∣ 2 = ( J − Y ) T ( J − Y ) L=||J - Y||^2 = (J - Y) ^T(J - Y) L=∣∣J−Y∣∣2=(J−Y)T(J−Y)
将
J
=
K
∗
X
J =K*X
J=K∗X 带入上式得到:
L
=
K
T
X
T
X
K
−
K
T
X
T
Y
−
Y
T
X
K
+
Y
T
Y
L=K^TX^TXK-K^TX^TY-Y^TXK+Y^TY
L=KTXTXK−KTXTY−YTXK+YTY
对K求导,得到:
d
L
/
d
K
=
2
X
T
X
K
−
2
X
T
Y
dL/dK=2X^TXK-2X^TY
dL/dK=2XTXK−2XTY
令其等于0,得到使L最小时的K:
K
=
(
X
T
X
)
−
X
T
Y
K=(X^TX)^-X^TY
K=(XTX)−XTY
最后得到的J:
J
=
(
X
T
X
)
−
X
T
Y
X
J=(X^TX)^-X^TYX
J=(XTX)−XTYX
简单验证
当 X X X的维度为1维时, J = Y J = Y J=Y,与最小二乘的目标思想相同。
参考
https://blog.csdn.net/MoreAction_/article/details/106443383
https://blog.csdn.net/lirika_777/article/details/79646453