线性最小二乘问题是数学和统计学中一个常见的优化问题
,其目标是在一组线性方程没有精确解的情况下,找到一组解,使得模型预测值
与实际观测值
之间的误差平方和最小
。具体来说,假设我们有以下线性系统:
A x = b Ax = b Ax=b
其中 (A) 是一个 m * n 的矩阵,(x) 是一个 n*1 的未知
向量,而 (b) 是一个 m * 1 的已知
向量。当 (m > n) 并且 (A) 不是满秩时(即 (rank(A) < m)),该系统通常没有精确解。
线性最小二乘法寻找的是使得残差向量 \(b - Ax\) 的欧几里得范数最小的 \(x\)
,即求解:
min x ∣ ∣ b − A x ∣ ∣ 2 \min_{x} ||b - Ax||^2 xmin∣∣b−Ax∣∣2
具体例子:
假设我们要通过一组观测数据点来拟合一条直线。设数据点为
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
(x_1, y_1), (x_2, y_2), ..., (x_m, y_m)
(x1,y1),(x2,y2),...,(xm,ym)我们想要找到直线 (y = ax + b) 中的系数
(a) 和 (b),使得这条直线尽可能接近所有数据点。将直线方程改写为矩阵形式
,我们有:
A x = b Ax = b Ax=b
这里,(A) 是一个 m * 2 的矩阵,每一行代表一个数据点,形式为 [ x i , 1 ] [x_i, 1] [xi,1] (x) 是一个 2 * 1 的向量,包含 (a) 和 (b),(b) 是一个 m * 1 的向量,包含每个数据点的实际 (y) 值。
A = [ x 1 1 x 2 1 . . . . . . x m 1 ] , x = [ a b ] , b = [ y 1 y 2 . . . y m ] A = \begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ ... & ... \\ x_m & 1 \end{bmatrix}, \quad x = \begin{bmatrix} a \\ b \end{bmatrix}, \quad b = \begin{bmatrix} y_1 \\ y_2 \\ ... \\ y_m \end{bmatrix} A= x1x2...xm11...1 ,x=[ab],b= y1y2...ym
求解最小二乘问题,我们需要计算 (x) 使得:
min x ∣ ∣ b − A x ∣ ∣ 2 \min_x ||b - Ax||^2 xmin∣∣b−Ax∣∣2
计算步骤:
-
构造系统矩阵:基于
数据点
构建矩阵 (A) 和向量 (b)。 -
计算正规方程:为了求解
最小
二乘解,我们通常不直接解原方程,而是利用正规方程 A T A x = A T b A^TAx = A^Tb ATAx=ATb 这是因为正规方程直接给出了最小二乘解的封闭
形式表达。 -
求解:解正规方程 A T A x = A T b A^TAx = A^Tb ATAx=ATb 得到 (x)。如果 (A^TA) 是满秩的(即 (rank(A) = n)),则解是唯一的;
否则,(A^TA) 可能需要使用
如 QR 分解、奇异值分解(SVD)等方法来稳定求解。
-
结果解释:解出的 (x) 即为我们所需的
参数向量
,其中 (a) 和 (b) 分别对应直线的斜率和截距
。这表示了使得模型预测值与实际观测值误差平方和最小
的直线方程。
最终求得的 (a) 和 (b) 将定义最佳拟合直线,这条直线最能代表数据点的趋势。
例子
线性最小二乘问题的一个典型应用场景是数据拟合,例如,我们要根据一系列实验测量点找出一条最佳拟合直线。具体来说,假设你有一组实验数据,记录了不同输入变量x对应的输出y值,如下所示:
- (x1, y1) = (1, 3)
- (x2, y2) = (2, 5)
- (x3, y3) = (3, 7)
- (x4, y4) = (4, 9)
我们希望找到一条直线y=ax+b,使得这条直线能够最大程度地接近这些点。这里的“最大程度地接近”可以通过最小化
所有数据点到直线上的垂直距离(即误差)的平方和来量化。这个过程就是解决一个线性最小二乘问题。
步骤如下:
-
建立模型:我们将模型表示为线性方程组。对于给定的数据点,我们有:
y = a x + b y = ax + b y=ax+b改写为矩阵形式,其中 (A) 是设计矩阵,(x) 是参数向量,(b) 是观测值向量:
( a b ) ⋅ ( x 1 1 x 2 1 x 3 1 x 4 1 ) = ( y 1 y 2 y 3 y 4 ) \begin{pmatrix} a \\ b \end{pmatrix} \cdot \begin{pmatrix} x_1 & 1 \\ x_2 & 1 \\ x_3 & 1 \\ x_4 & 1 \end{pmatrix} = \begin{pmatrix} y_1 \\ y_2 \\ y_3 \\ y_4 \end{pmatrix} (ab)⋅ x1x2x3x41111 = y1y2y3y4
或简写为 (Ax = b),其中
A = ( 1 1 2 1 3 1 4 1 ) , x = ( a b ) , b = ( 3 5 7 9 ) A = \begin{pmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ 4 & 1 \end{pmatrix}, \quad x = \begin{pmatrix} a \\ b \end{pmatrix}, \quad b = \begin{pmatrix} 3 \\ 5 \\ 7 \\ 9 \end{pmatrix} A= 12341111 ,x=(ab),b= 3579 -
求解最小二乘解:由于 (A) 不是方阵,我们不能直接求逆解,而是采用最小二乘法,即求解
min x ∥ A x − b ∥ 2 \min_x \|Ax - b\|^2 xmin∥Ax−b∥2
这通常通过解正规方程
A
T
A
x
=
A
T
b
完成,得到
这通常通过解正规方程 A^TAx = A^Tb 完成,得到
这通常通过解正规方程ATAx=ATb完成,得到
(
1
2
3
4
1
1
1
1
)
T
(
1
1
2
1
3
1
4
1
)
(
a
b
)
=
(
1
2
3
4
1
1
1
1
)
T
(
3
5
7
9
)
\begin{pmatrix} 1 & 2 & 3 & 4 \\ 1 & 1 & 1 & 1 \end{pmatrix}^T \begin{pmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ 4 & 1 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 1 & 1 & 1 & 1 \end{pmatrix}^T \begin{pmatrix} 3 \\ 5 \\ 7 \\ 9 \end{pmatrix}
(11213141)T
12341111
(ab)=(11213141)T
3579
-
计算结果:计算上述方程,我们得到
( 10 10 10 4 ) ( a b ) = ( 34 22 ) \begin{pmatrix} 10 & 10 \\ 10 & 4 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 34 \\ 22 \end{pmatrix} (1010104)(ab)=(3422)解这个方程组,得到 (a = 2.2, b = 1.8)。因此,最佳拟合直线为 (y = 2.2x + 1.8)。
通过这种方法,我们得到了一条直线,它在所有可能的直线上,使得各数据点到直线的垂直距离平方和最小。这就是线性最小二乘问题的一个实例及其解决过程。