最小二乘問題詳解1:線性最小二乘
1. 引言
最小二乘可以說是現代科學與工程的“隱形骨架”,幾乎無處不在。比如:
- 測繪與空間信息科學:攝影測量平差、GNSS/RTK定位、控制網平差。
- 機器人與自動駕駛:視覺SLAM/LiDAR SLAM、傳感器融合、手眼標定、運動學/動力學參數辨識。
- 計算機視覺與計算機圖形學:圖像配準、三維重建、光照估計、紋理映射。
- 機器學習與數據科學:線性回歸、嶺回歸、主成分分析、支持向量機、神經網絡訓練。
筆者之前對最小二乘問題也只是一知半解,這里就詳細學習總結一下。
2. 最小二乘
2.1 定義
最小二乘是一種從有誤差的數據中尋找最佳擬合模型的數學方法,它的核心思想是讓模型的預測值與實際觀測值之間的“誤差平方和”最小。
比如經典的最小二乘擬合直線的問題:給定一組有噪聲的數據點,需要擬合一條直線\(y=kx+b\),那么不可能所有點都正好在一條直線上,合理的方案是找到最佳的斜率\(k\)和截距\(b\),使得所有點到這條直線的豎直距離的平方和最小。
最小二乘的數學表達為:
其中:
- \(r_i(\theta)\) 是第 \(i\) 個觀測的殘差(residual):
\(r_i = y_i - f(x_i; \theta)\) - \(\mathbf{r}(\theta)\) 是所有殘差組成的向量
- \(\theta\) 是待估計的參數向量
雖然定義出來了,但是另一個問題是——為什么最小二乘用“平方和”而不是“絕對值和”、“四次方和”或其他方式?這背后其實有深刻的數學原理:
- 從統計學的角度上來講,最小二乘就是在誤差服從高斯分布時的最大似然估計。
- 從幾何的角度上來講,平方和是歐氏距離的平方,是最自然的距離度量。
不過要說清楚這兩點有點麻煩,我們可以先暫時通過高數知識來簡單的理解。函數\(f(r)=r^2\)是一個凸函數,所謂凸函數,直觀來說就是任意兩點之間的線段始終在函數圖像之上,只有一個“谷底”,這個“谷底”就是全局最小值。這意味著任何局部最小值就是全局最小值,在求解優化問題的時候,可以通過梯度下降等算法收斂到全局最優。
2.2 線性
最小二乘問題可以分為線性最小二乘和非線性最小二乘來討論。首先,我們先來討論一個比較本質的問題,什么叫做線性?在《初等線性代數》中,線性指的是可加性和齊次性,例如一個變換\(T\)能滿足如下兩個條件:
- \(T(x + y) = T(x) + T(y)\)
- \(T(\alpha x) = \alpha T(x)\)
突然地引入數學上的定義確實有點難以理解,不過我們只需要明白,線性是一種非常優良的性質。比如說,滿足線性的函數/變換顯然是連續的、可導的以及光滑的,這意味著這個函數/變換不僅結構簡單,也易于預測和控制。科學家和工程師都喜歡假設問題的模型是線性的開始研究,即使真實世界的問題模型大多數是非線性的,也會通過數學方法將非線性問題轉換成線性問題。因此,要研究最小二乘,首先需要理解線性最小二乘。
3. 線性最小二乘
3.1 定義
需要明確指出的是,問題模型的線性還是非線性,是相對于待定參數\(\theta\)而言的,而不是已知參數\(x\)。線性最小二乘的問題模型可以寫成如下形式:
那么,線性最小二乘的數學表達為:
其中:
- \(A\):設計矩陣(\(m \times n\),\(m\) 是數據點數,\(n\) 是參數數)
- \(\theta\):未知參數向量(\(n \times 1\))
- \(b\):觀測向量(\(m \times 1\))
3.2 具體化
數學上的概念比較抽象,這里還是結合前面最小二乘擬合直線的例子來理解。給定一組有噪聲的數據點:
我們希望擬合一條直線:
其中 \(k\) 是斜率,\(b_0\) 是截距。很顯然,對于待定參數\(k\)和\(b_0\)來說,這個問題模型是線性的,需要使用線性最小二乘來估計參數。
將數據點帶入這個問題模型,可得方程組:
將方程組寫成矩陣形式:
令:
- 設計矩陣:\(A = \begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ \vdots & \vdots \\ x_m & 1 \\ \end{bmatrix}\)(\(m \times 2\))
- 參數向量:\(\theta = \begin{bmatrix} k \\ b_0 \end{bmatrix}\)(\(2 \times 1\))
- 觀測向量:\(b = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix}\)(\(m \times 1\))
- 問題模型函數:$ f(x; \theta) = kx + b_1 = \begin{bmatrix} x & 1 \end{bmatrix} \begin{bmatrix} k \ b_1 \end{bmatrix} $
那么問題模型的殘差就是:
線性最小二乘問題可歸納為:
3.3 求解
先不談如何求解最小二乘公式(2)的問題,先說說如何解決方程組(1),畢竟如果能正確求解方程組(1),那么這個問題就解決了。很顯然,方程組(1)就是《初等線性代數》中的線性方程組,根據《初等線性代數》中的知識,這種方程個數\(m\)比未知數多的線性方程組\(n\)是沒有解的。但是,歸結到具體的顯式問題中來說,這個方程組應該要有解:假設所有的數據點\((x_i, y_i)\)都沒有噪聲,那么選取任意\(n\)組數據即可計算出唯一解。但是真實世界的數據是有噪聲的,不能這么做。
回憶《初等線性代數》中的知識,求解線性方程組\(A\theta=b\)最容易理解就是矩陣求逆法,但是這個方程組\(m\)要遠大于\(n\),明顯是沒辦法求解逆矩陣的。但是我們可以改造這個方程組,在兩邊都乘以相同的矩陣\(A^{T}\):
這個方程就是正規方程。\(A^T A\)是方陣,在滿秩的情況下可以求逆矩陣,其解為:
這個解其實就是最小二乘公式(2)的解,即最小二乘解。
3.4 原理
為什么說上文的式(3)恰好就是式(2)的最小二乘解呢?為什么我們會知道在兩邊都乘以相同的矩陣\(A^{T}\)呢?這里就來推導一下。
3.4.1 代數推導
之前已經提到過,最小二乘是“誤差平方和”,是一個凸函數,可以求它的極小值。令
根據《高等數學》中的知識,要求函數的極小值,需要對 \(\theta\) 求導,并令梯度(導數)為 0:
根據矩陣微積分的知識,\(f(\theta)=a^T\theta\)的導數是\(a\),因此:
調換位置,也就得到了正規方程:
3.4.2 幾何推導
在回答這個問題之前,我們必須要對《線性代數》中的矩陣有更深刻的認識:矩陣的列向量張成了一個?列空間(Column Space)??,由該矩陣所有列向量的線性組合所構成。而矩陣與向量相乘的結果,正是這些列向量以向量中對應分量為系數的線性組合。例如,設矩陣 $ A = \begin{bmatrix} \mathbf{a}_1 & \mathbf{a}_2 & \cdots & \mathbf{a}_n \end{bmatrix} $,其中 $ \mathbf{a}_i $ 是列向量。對于任意向量 $ \mathbf{x} = \begin{bmatrix} x_1 \ x_2 \ \vdots \ x_n \end{bmatrix} $,有:
這個結果 $ A\mathbf{x} $ 顯然是矩陣 $ A $ 的列向量的一個線性組合,因此它屬于列空間。所以,矩陣乘以一個向量的結果,是其列向量的一個線性組合,且這個結果落在矩陣的列空間中。
那么,對于線性最小二乘問題\(A\theta=b\)中來說,觀測向量\(b\)會落到設計矩陣\(A\)的列空間中嗎?由于噪聲的存在,肯定是不行的,只能盡量尋找一個\(\theta\),使得\(A\theta\)盡量靠近\(b\)。那么什么樣的\(\theta\)才能滿足盡可能接近的要求呢?答案很簡單,就是做正交投影。形象的解釋就是,一個向量\(b\)投影平面\(A\)的影子\(A\theta^*\)才是最接近\(b\)的,并且最接近的投影方式是正交投影,而這個\(\theta\)就是最小二乘解\(\theta^*\)。
所謂正交投影,指的是一個點向一個平面(或直線)作垂線,垂足就是投影點;也就是說,\(b-A\theta\)應該垂直于\(A\)的列空間。這也意味著,\(b-A\theta\)與\(A\)的每一個列向量都正交,那么就有
調換位置,同樣得到正規方程:
以上推論也說明了一個原理:在歐幾里得空間中,點到子空間的最短歐式距離,是通過正交投影實現的,最小二乘利用的就是這個原理。

浙公網安備 33010602011771號