线性回归的法方程:原理与解析
核心定义
法方程是为解决线性回归问题而设计的一种数学方法,它通过直接求解一个线性方程组来找到一组最优参数,使得成本函数(Cost Function)(通常是均方误差)的值最小化。
它是一种闭式解(Closed-form Solution),或者说解析解,意味着我们可以直接通过公式计算得到最优解,而不需要使用像梯度下降那样的迭代优化算法。
数学表述
对于一个线性回归模型,我们假设假设函数(Hypothesis Function)为:
hθ(x) = θ₀ + θ₁x₁ + θ₂x₂ + ... + θₙxₙ
其中:
θ
是我们需要求解的参数向量[θ₀, θ₁, ..., θₙ]ᵀ
x₁, x₂, ..., xₙ
是特征变量。
我们有 m
个训练样本。
法方程的解由以下公式给出:
θ = (XᵀX)⁻¹Xᵀy
这个公式就是法方程的核心。
公式组成部分详解
让我们来分解这个公式 θ = (XᵀX)⁻¹Xᵀy
的每个部分:
-
X
(设计矩阵 - Design Matrix):- 这是一个
m x (n+1)
维的矩阵。m
是样本数量,n
是特征数量(注意:这里包含了偏置项 θ₀ 对应的特征)。 - 矩阵的每一行代表一个训练样本,每一列代表一个特征。
- 第一列通常全部为 1,对应于参数 θ₀(截距项)。
- 例如,如果有两个特征 (x₁, x₂) 和 3 个样本 (m=3),设计矩阵
X
看起来像这样:X = [1, x₁⁽¹⁾, x₂⁽¹⁾][1, x₁⁽²⁾, x₂⁽²⁾][1, x₁⁽³⁾, x₂⁽³⁾]
- 这是一个
-
y
(目标变量向量):- 这是一个
m x 1
维的列向量,包含了所有训练样本对应的真实值(标签)。 y = [y⁽¹⁾, y⁽²⁾, ..., y⁽ᵐ⁾]ᵀ
- 这是一个
-
Xᵀ
(X 的转置):- 这是一个
(n+1) x m
维的矩阵。
- 这是一个
-
XᵀX
:- 将
Xᵀ
与X
相乘,得到一个(n+1) x (n+1)
维的方阵。这个矩阵在推导中源于对成本函数求导并设其为零。
- 将
-
(XᵀX)⁻¹
(XᵀX 的逆):- 这是求解方程的关键一步。前提是
XᵀX
必须是可逆的(即满秩矩阵)。
- 这是求解方程的关键一步。前提是
-
Xᵀy
:- 将
Xᵀ
与向量y
相乘,得到一个(n+1) x 1
维的列向量。
- 将
最终,将 (XᵀX)⁻¹
和 Xᵀy
相乘,就得到了最优的参数向量 θ
,其维度为 (n+1) x 1
。
几何解释 / 为什么叫“法方程”?
这个名字来源于它的几何意义。对于线性回归,我们是在寻找一个超平面来最佳地拟合数据点。
- “残差向量”
(y - Xθ)
代表了真实值y
和预测值Xθ
之间的差距。 - 最优解
θ
的一个关键性质是:残差向量与所有特征向量所张成的空间(列空间)正交。 - 这意味着残差向量与每一个特征向量(包括全为1的截距项特征)的点积都为0。用数学表达就是:
Xᵀ (y - Xθ) = 0
- 将这个方程重新排列,就得到了法方程:
XᵀXθ = Xᵀy
- 这里的 “Normal” 指的是正交(Orthogonal) 或垂直(Perpendicular) 的意思,即残差与特征空间垂直。所以 “Normal Equation” 更准确的翻译是 “正规方程” 或 “正交方程”。
优缺点
优点:
- 无需选择学习率:不像梯度下降需要手动设置超参数学习率 α。
- 无需迭代:一次计算即可得到精确解,没有收敛问题。
- 概念清晰:是一个直接的数学解决方案。
缺点:
- 计算成本高:当特征数量
n
非常大时(例如 >10,000),计算(XᵀX)⁻¹
的复杂度非常高,大约是O(n³)
。对于现代机器学习中的大规模数据集,这几乎是不可行的。 - 可能不可逆:如果特征之间存在线性相关性(多重共线性),或者样本数量少于特征数量 (
m < n
),则XᵀX
将是奇异矩阵(不可逆)。此时需要使用伪逆等技术。
总结
方面 | 描述 |
---|---|
定义 | 一种用于线性回归的解析解方法,通过公式 θ = (XᵀX)⁻¹Xᵀy 直接计算最优参数。 |
目的 | 最小化成本函数(均方误差)。 |
名字由来 | 源于其几何意义:最优解使得残差向量与所有特征向量正交(Normal)。 |
适用场景 | 特征数量 n 相对较小(例如几千以内)的线性回归问题。 |
替代方案 | 当特征数量很大时,梯度下降及其变体(如随机梯度下降)是更有效的选择。 |
因此,法方程是机器学习工具箱中一个非常重要且基础的工具,特别适用于中小规模的数据集。