正规方程 (Normal Equation)
正规方程 (Normal Equation) 是在线性代数和统计学中,求解线性最小二乘法 (Linear Least Squares) 问题的一种解析解(Analytical Solution)形式。在机器学习领域,它被广泛用于直接计算线性回归模型的最优参数,而无需使用梯度下降等迭代优化算法。
其核心思想是通过最小化损失函数(通常是残差平方和),找到一组参数 θ,使得模型的预测值与真实值之间的差异最小。正规方程提供了一个封闭形式的公式,可以直接计算出这组最优参数 θ。
数学推导 (Mathematical Derivation)
为了推导出正规方程,我们首先需要定义线性回归模型及其损失函数。
1. 模型假设与向量化表示
假设我们有一个训练集,包含 m 个样本。对于第 i 个样本,其特征为 x(i)=(x1(i),x2(i),…,xn(i))T,对应的真实标签为 y(i)。 线性回归模型的假设函数 (Hypothesis Function) 为:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn=θTx
为了方便计算,我们定义 x0=1,此时参数向量 θ=(θ0,θ1,…,θn)T,特征向量 x=(x0,x1,…,xn)T。
我们可以将整个训练集用矩阵形式表示:
- 设计矩阵 (Design Matrix) X:一个 m×(n+1) 的矩阵,每一行代表一个训练样本的特征向量(包含 x0=1)。
X=(x(1))T(x(2))T⋮(x(m))T=11⋮1x1(1)x1(2)⋮x1(m)……⋱…xn(1)xn(2)⋮xn(m)
- 标签向量 y:一个 m×1 的列向量,包含所有样本的真实标签。
y=y(1)y(2)⋮y(m)
- 参数向量 θ:一个 (n+1)×1 的列向量,即我们需要求解的参数。
θ=θ0θ1⋮θn
所有样本的预测值向量可以简洁地表示为 y^=Xθ。
2. 定义损失函数
最小二乘法的目标是最小化残差平方和 (Sum of Squared Residuals, SSR),我们将其定义为损失函数 J(θ):
J(θ)=i=1∑m(hθ(x(i))−y(i))2
使用向量化表示,残差向量为 Xθ−y。因此,损失函数可以写作:
J(θ)=(Xθ−y)T(Xθ−y)
3. 求解最优参数 θ
为了找到使 J(θ) 最小的 θ,我们需要计算 J(θ) 对 θ 的梯度 (Gradient),并令其为零。 首先,展开 J(θ):
\begin{align*}
J(\theta) & = ( (X\theta)^T - y^T ) (X\theta - y) \\
& = (\theta^T X^T - y^T)(X\theta - y) \\
& = \theta^T X^T X\theta - \theta^T X^T y - y^T X\theta + y^T y
\end{align*} 由于 θTXTy 是一个标量,其转置 (θTXTy)T=yT(XT)T(θT)T=yTXθ 与其自身相等。因此,上式可以简化为:
J(θ)=θTXTXθ−2yTXθ+yTy
接下来,我们对 J(θ) 求关于 θ 的梯度 ∇θJ(θ)。根据矩阵微积分的法则:
- ∇z(aTz)=a
- ∇z(zTAz)=(A+AT)z
应用这些法则,我们得到:
\begin{align*}
\nabla_{\theta} J(\theta) & = \nabla_{\theta} (\theta^T X^T X\theta - 2y^T X\theta + y^T y) \\
& = (X^T X + (X^T X)^T)\theta - 2(y^T X)^T + 0 \\
& = (X^T X + X^T X)\theta - 2X^T y \\
& = 2X^T X\theta - 2X^T y
\end{align*} 令梯度为零向量以找到极值点:
2XTXθ−2XTy=0
XTXθ=XTy
最后,假设矩阵 XTX 是可逆的,我们在等式两边左乘其逆矩阵 (XTX)−1,即可解出 θ:
θ=(XTX)−1XTy
这个方程就是正规方程。它给出了最小二乘问题的解析解。
几何解释 (Geometric Interpretation)
正规方程有一个非常直观的几何解释,这涉及到向量空间和投影的概念。
- 列空间 (Column Space):模型的所有可能预测值构成的向量 y^=Xθ 是设计矩阵 X 的列向量的线性组合。因此,所有可能的预测向量 y^ 构成了 X 的列空间,记为 C(X)。
- 最小化距离:最小二乘法的目标是找到一个在列空间 C(X) 内的向量 y^,使其与真实标签向量 y 的欧几里得距离 ∥y−y^∥ 最小。
- 正交投影 (Orthogonal Projection):根据几何原理,要使得距离最小,向量 y^ 必须是 y 在列空间 C(X) 上的正交投影。
- 正交性:当 y^ 是 y 的正交投影时,残差向量 e=y−y^=y−Xθ 必须与 C(X) 中的任何向量都正交。这意味着残差向量 e 必须与 X 的每一个列向量都正交。
- 推导:如果 e 与 X 的所有列向量都正交,那么 X 的转置 XT 与 e 的乘积必然是零向量:
将 e=y−Xθ 代入,我们得到:
XT(y−Xθ)=0
展开后可得:
XTy−XTXθ=0
这正是我们之前通过微积分推导出的 XTXθ=XTy。这个几何视角清晰地揭示了最小二乘法寻找的是一个投影,而正规方程是这个投影性质的代数表达。
应用与实践考量
与梯度下降的比较
| 特性 | 正规方程 | 梯度下降 (Gradient Descent) | | :--- | :--- | :--- | | 求解方式 | 解析解,一步到位 | 迭代解,逐步逼近最优值 | | 学习率 | 无需选择学习率 α | 需要仔细选择学习率 α | | 计算复杂度 | 核心是计算 (XTX)−1,复杂度约为 O(n3),其中 n 是特征数量 | 每次迭代的复杂度约为 O(m⋅n),其中 m 是样本数量 | | 特征缩放 | 不需要特征缩放 (Feature Scaling) | 建议进行特征缩放以加速收敛 | | 适用场景 | 特征数量 n 较小(如 n<10,000)时非常高效 | 特征数量 n 非常大时更优,能够处理大规模数据集 | | 模型扩展性 | 主要用于线性模型 | 适用性更广,是训练复杂模型(如神经网络)的基础 |
XTX 不可逆问题 (The Non-Invertibility of XTX)
正规方程依赖于矩阵 XTX 的可逆性。如果 XTX 是一个奇异矩阵(或称不可逆矩阵),我们就无法直接求逆。这种情况主要由以下两个原因导致:
- 特征之间存在多重共线性 (Multicollinearity):即特征之间存在线性依赖关系。例如,一个特征是房屋面积(平方米),另一个特征是房屋面积(平方英尺),这两个特征是线性相关的,导致 X 的列向量线性相关,从而使 XTX 不可逆。
- 特征数量过多 (m≤n):当样本数量 m 小于或等于特征数量 n 时,数据不足以唯一确定所有参数,这会导致 XTX 成为一个奇异矩阵。
解决方案:
- 特征选择:检查并移除冗余或线性相关的特征。
- 正则化 (Regularization):在损失函数中加入一个正则化项,以惩罚过大的参数。例如,在岭回归 (Ridge Regression) 中,正规方程变为:
θ=(XTX+λI)−1XTy
其中 λ>0 是正则化参数,I 是单位矩阵。这个 λI 项保证了 (XTX+λI) 总是可逆的。
- 使用伪逆 (Pseudoinverse):即使 XTX 不可逆,我们仍然可以使用其摩尔-彭若斯伪逆 (XTX)+ 来求解。许多科学计算库(如 NumPy 的 \texttt{linalg.pinv})在发现矩阵奇异时会自动计算伪逆,这会给出众多可能解中L2范数最小的一个解。