當根本沒有精確解時
真實資料不會乖乖落在一條完美的直線上。假設你測了許多點,想用一條直線穿過它們。把「這條直線恰好經過每一個點」寫出來,會得到一個方程比未知數多的方程組 A x = b——這就是過定的。幾乎總是沒有精確解;雜訊讓這些方程互相矛盾。
fit y = m*t + c to three points: (t,y) = (0,1), (1,2), (2,2) [0 1][m] [1] [1 1][c] = [2] <- 3 equations, 2 unknowns [2 1] [2] no exact (m,c) hits all three
退而求其次:要最接近的
如果你打不中 b 本身,那就改打搆得著的最近的點。你能造出的每一個 A x 都住在 A 的行空間裡——也就是 A 各列的所有組合構成的集合。而你真正想要的 b,通常落在那個空間之外。最小平方挑選這樣的 x:讓它的 A x 離 b 最近,用總平方誤差來衡量。
正規方程
怎樣把「誤差垂直於行空間」變成能算的東西?A 的每一列都必須與誤差 b - A x 正交,也就是 A^T (b - A x) = 0。整理一下,就是著名的正規方程:A^T A x = A^T b。這下成了一個方陣的、可解的方程組,求出最佳的 x。
- 由資料矩陣 A 和目標 b 構造 A^T A 與 A^T b。
- 解方陣方程組 A^T A x = A^T b 得到 x(直線的斜率與截距)。
- 這個 x 使總平方誤差最小——就是你的最佳擬合直線。