线性最小二乘问题

线性最小二乘问题是数学和统计学中一个常见的优化问题,其目标是在一组线性方程没有精确解的情况下,找到一组解,使得模型预测值实际观测值之间的误差平方和最小。具体来说,假设我们有以下线性系统:

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∣∣bAx2

具体例子:

假设我们要通过一组观测数据点来拟合一条直线。设数据点为 ( 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∣∣bAx2

计算步骤:

  1. 构造系统矩阵:基于数据点构建矩阵 (A) 和向量 (b)。

  2. 计算正规方程:为了求解最小二乘解,我们通常不直接解原方程,而是利用正规方程 A T A x = A T b A^TAx = A^Tb ATAx=ATb 这是因为正规方程直接给出了最小二乘解的封闭形式表达。

  3. 求解:解正规方程 A T A x = A T b A^TAx = A^Tb ATAx=ATb 得到 (x)。如果 (A^TA) 是满秩的(即 (rank(A) = n)),则解是唯一的;
    否则,(A^TA) 可能需要使用如 QR 分解、奇异值分解(SVD)等方法来稳定求解。

  4. 结果解释:解出的 (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,使得这条直线能够最大程度地接近这些点。这里的“最大程度地接近”可以通过最小化所有数据点到直线上的垂直距离(即误差)的平方和来量化。这个过程就是解决一个线性最小二乘问题。

步骤如下:

  1. 建立模型:我们将模型表示为线性方程组。对于给定的数据点,我们有:
    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

  2. 求解最小二乘解:由于 (A) 不是方阵,我们不能直接求逆解,而是采用最小二乘法,即求解
    min ⁡ x ∥ A x − b ∥ 2 \min_x \|Ax - b\|^2 xminAxb2

这通常通过解正规方程 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

  1. 计算结果:计算上述方程,我们得到
    ( 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)。

通过这种方法,我们得到了一条直线,它在所有可能的直线上,使得各数据点到直线的垂直距离平方和最小。这就是线性最小二乘问题的一个实例及其解决过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不易撞的网名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值