一文让你彻底搞懂最小二乘法(超详细推导)
一文让你彻底搞懂最小二乘法(超详细推导)
最小二乘法是一种广泛应用于数据拟合和回归分析中的数学方法。本文将从矩阵表示的角度出发,详细推导最小二乘法的解析解,并通过几何意义进一步解释其原理。
最小二乘法的矩阵表示
假设我们有一组数据点,每个数据点包含一个输入特征向量和一个输出值。用矩阵表示,可以写作:
$$
\mathbf{h}=\mathbf{X} \theta
$$
其中:
- $\mathbf{h}$ 是 $m \times 1$ 的向量,代表模型的理论值
- $\theta$ 是 $n \times 1$ 的向量,包含模型的参数
- $\mathbf{X}$ 是 $m \times n$ 的矩阵,包含所有样本的特征
- $m$ 代表样本的个数
- $n$ 代表样本的特征数
我们的目标是找到一个 $\theta$,使得模型的预测值 $\mathbf{h}$ 尽可能接近实际观测值 $\mathbf{Y}$。为此,我们定义损失函数:
$$
J(\theta)=|\mathbf{h}-\mathbf{Y}|^2 =|\mathbf{X}\theta-\mathbf{Y}|^2= (\mathbf{X} \theta-\mathbf{Y})^{T}(\mathbf{X} \theta-\mathbf{Y})
$$
其中 $\mathbf{Y}$ 是样本的输出向量,维度为 $m \times 1$。
最小二乘法的解析解
为了找到使损失函数最小的 $\theta$,我们需要对损失函数求导并令其等于0。这里需要用到一些矩阵求导的公式:
$$
\frac{\partial x^{T} a}{\partial x}=\frac{\partial a^{T} x}{\partial x}=a
$$
$$
\frac{\partial x^{T} A x}{\partial x}=A x+A^{T} x
$$
如果矩阵 $A$ 是对称的,则有:
$$
A x+A^{T} x=2 A x
$$
对目标函数化简:
$$
J(\theta)=\theta^{T} X^{T} X \theta-\theta^{T} X{T}Y-Y{T} X\theta+Y^{T} Y
$$
求导并令其等于0:
$$
\frac{\partial}{\partial \theta} J(\theta)=2X^{T} X \theta-2X^TY=0
$$
解得:
$$
\theta=\left(X{T}X\right){-1} X^{T}Y
$$
经过推导,我们得到了 $\theta$ 的解析解。这意味着只要给定了数据,我们就可以直接计算出最优的参数 $\theta$。
最小二乘法的几何意义
为了更直观地理解最小二乘法,我们可以从几何角度来解释。首先,我们需要理解矩阵乘法的几何意义。对于方程组 $Ax$,可以看作是 $x$ 对矩阵 $A$ 的列向量的线性组合。
例如,考虑以下方程组:
$$
\begin{cases}
1 \times x_{1}+x_{2}=3 \
-1 \times x_{1}+x_{2}=1
\end{cases}
\Leftrightarrow
\begin{bmatrix}
1 & 1 \
-1 & 1
\end{bmatrix}
\begin{bmatrix}
x_{1} \
x_{2}
\end{bmatrix}
\begin{bmatrix}
3 \
1
\end{bmatrix}
\Leftrightarrow A \times x=b
$$
这可以看作是:
$$
\begin{bmatrix}
1 \
-1
\end{bmatrix} \times x_{1}+
\begin{bmatrix}
1 \
1
\end{bmatrix} \times x_{2}=
\begin{bmatrix}
3 \
1
\end{bmatrix}
\Leftrightarrow a_{1} \times x_{1}+a_{2} \times x_{2}=b
$$
在坐标轴上,向量 $b$ 实际上是向量 $a_1$ 与 $a_2$ 的线性组合,因为它们都在同一个平面上,所以这个方程组是有解的。
然而,在实际应用中,由于存在观测误差,我们往往会进行过量观测。例如,如果我们想要拟合一个一次方程 $y=kx+b$,但观测了三个点(0,2),(1,2),(2,3),那么方程组就会变成:
$$
\begin{cases}
1 \times x_{1}+x_{2}=2 \
0 \times x_{1}+x_{2}=2 \
2 \times x_{1}+x_{2}=3
\end{cases}
\Leftrightarrow
\begin{bmatrix}
1 & 1 \
0 & 1 \
2 & 1
\end{bmatrix}
\begin{bmatrix}
x_{1} \
x_{2}
\end{bmatrix}
\begin{bmatrix}
2 \
2 \
3
\end{bmatrix}
\Leftrightarrow A \times x=b
$$
表示成线性组合的方式:
$$
\begin{bmatrix}
1 \
0 \
2
\end{bmatrix} \times x_{1}+
\begin{bmatrix}
1 \
1 \
1
\end{bmatrix} \times x_{2}=
\begin{bmatrix}
2 \
2 \
3
\end{bmatrix}
\Leftrightarrow a_{1} \times x_{1}+a_{2} \times x_{2}=b
$$
从图中可以看出,无论 $a_1$ 和 $a_2$ 怎么线性组合都不可能得到 $b$,因为 $a_1$ 和 $a_2$ 的线性组合只能落在它们组成的子空间 $S$ 中。
因此,我们退而求其次,在 $S$ 上找一个和 $b$ 最接近的向量 $p$。将 $b$ 投影到平面 $S$ 上得到的向量 $p$ 就是和 $b$ 最接近的向量。
换句话说,方程组 $Ax=b$ 虽然无解,但我们可以找到 $A$ 的列空间中与 $b$ 最接近的向量 $p$,即 $b$ 在 $A$ 的列空间中的投影。通过求解 $Ax=p$,我们得到原方程的最小二乘解。
由几何意义可知,垂线 $e=b-p=b-Ax$ 正交于平面 $S$,即 $a_1^T e=0, a_2^T e=0$。写成矩阵形式:
$$
A^{T} e=A{T}(b-Ax)=A{T} b-A^{T} Ax=0
$$
解得:
$$
x=\left(A^{T} A\right)^{-1} A^{T} b
$$
可以看到,这个结果与矩阵法推导的结果一致。最小二乘法的几何意义就是求解 $b$ 在 $A$ 的列空间中的投影。
总结
最小二乘法通过矩阵运算和几何解释,为我们提供了一种系统化的方法来解决数据拟合问题。理解最小二乘法不仅有助于掌握其数学原理,还能帮助我们在实际应用中更好地运用这一方法。