机器学习数学基础 120 章

线性方程组与高斯消元

层级:A|必学

1. 为什么线性方程组是核心问题

最小二乘的正规方程、线性回归闭式解、概率图模型中的高斯推断和许多数值优化步骤,最终都要解

Ax=b.\boldsymbol A\boldsymbol x=\boldsymbol b.

理解“有无解、解是否唯一、怎样稳定求解”比熟练手算大矩阵更重要。

2. 从方程到矩阵

方程组

{2x1+x2=5,x1x2=1\begin{cases} 2x_1+x_2=5,\\ x_1-x_2=1 \end{cases}

写成

[2111]A[x1x2]x=[51]b.\underbrace{\begin{bmatrix}2&1\\1&-1\end{bmatrix}}_{A} \underbrace{\begin{bmatrix}x_1\\x_2\end{bmatrix}}_x =\underbrace{\begin{bmatrix}5\\1\end{bmatrix}}_b.

矩阵每行对应一个方程,每列对应一个未知量。增广矩阵把常数列并在右侧:

[Ab]=[215111].[A\mid b] =\begin{bmatrix}2&1&|&5\\1&-1&|&1\end{bmatrix}.

3. 三种基本行变换

对方程做以下操作不改变解集:

  1. 交换两行;
  2. 某一行乘非零常数;
  3. 某一行加上另一行的倍数。

它们分别对应交换方程、等式两边同乘非零数、一个方程加上另一个方程的倍数。

4. 高斯消元

目标是通过行变换把矩阵化为阶梯形,再回代求解。以上例为例,先交换两行:

[111215].\begin{bmatrix}1&-1&|&1\\2&1&|&5\end{bmatrix}.

第二行减去第一行两倍:

[111033].\begin{bmatrix}1&-1&|&1\\0&3&|&3\end{bmatrix}.

由第二行 x2=1x_2=1,代入第一行得 x1=2x_1=2

若继续把主元化为 1,并消去主元上方元素,得到简化行阶梯形,这称 Gauss–Jordan 消元。实际数值求解通常不必消到最彻底。

5. 主元与自由变量

阶梯形中每个非零行最左侧的非零位置称主元位置。对应列是主元列,对应变量是基本变量;没有主元的列对应自由变量。

例:

[12030014]\begin{bmatrix} 1&2&0&|&3\\ 0&0&1&|&4 \end{bmatrix}

x1,x3x_1,x_3 是基本变量,x2x_2 自由。令 x2=tx_2=t

x1=32t,x3=4.x_1=3-2t,\qquad x_3=4.

因此有无穷多个解,解集是一条仿射直线。

6. 无解、唯一解、无穷多解

消元后:

  • 若出现 [0  0c][0\ \cdots\ 0\mid c]c0c\ne0,表示 0=c0=c,无解;
  • 若每个未知量列都有主元,且无矛盾行,解唯一;
  • 若无矛盾但存在自由变量,有无穷多解。

用秩表示:

rank(A)<rank([Ab])无解,\operatorname{rank}(A)<\operatorname{rank}([A|b]) \Rightarrow\text{无解}, rank(A)=rank([Ab])=n唯一解,\operatorname{rank}(A)=\operatorname{rank}([A|b])=n \Rightarrow\text{唯一解}, rank(A)=rank([Ab])<n无穷多解.\operatorname{rank}(A)=\operatorname{rank}([A|b])<n \Rightarrow\text{无穷多解}.

这里 nn 是未知量个数。

7. 几何解释

每个二维线性方程是一条直线:两条直线相交一点、平行不交或完全重合,分别对应唯一解、无解、无穷多解。

另一种解释是列组合:Ax=bAx=b 问的是“bb 能否由 AA 的列线性组合得到”。若 bb 不在列空间中,无解;若表示唯一,唯一解;若列向量相关,同一个 bb 可能有多种系数表示。

8. 齐次方程

Ax=0A x=0

总有零解。若还有非零解,则矩阵列线性相关。所有解构成零空间。对方阵而言,以下性质等价:

  • 齐次方程只有零解;
  • 列线性无关;
  • 矩阵满秩;
  • 行列式非零;
  • 矩阵可逆。

这组等价关系是线性代数的主干。

9. 超定系统与最小二乘

机器学习通常有 n>dn>d:方程多于未知参数。真实数据含噪声,Xw=yXw=y 往往没有精确解。于是改求

minwXwy22.\min_w\|Xw-y\|_2^2.

最优预测 Xw^X\hat wyyXX 列空间上的投影,残差与列空间正交,从而得到正规方程

XTXw^=XTy.X^TX\hat w=X^Ty.

数值实现通常用 QR、SVD 或专用最小二乘求解器,不直接构造逆矩阵。

10. 欠定系统

若未知量多于独立方程,通常有无穷多解。伪逆可以选 Euclidean 范数最小的解;L1 正则化可偏向稀疏解;先验或业务约束也能从众多解中选择。

“数据能拟合”不表示参数被唯一确定,这是高维建模的重要区别。

11. 数值稳定性与主元选择

理论上任何非零主元都能消元;浮点计算中若主元很小,除法会放大舍入误差。部分主元法在当前列选择绝对值最大的候选行交换上来。成熟线性代数库还会使用块算法和硬件优化。

不要自己为生产问题编写朴素高斯消元,除非是教学或有特殊结构。

易错点

  1. 方程数等于未知量数不保证唯一解,仍需满秩。
  2. 行变换保持解集,但一般会改变矩阵特征值等其他性质。
  3. 无解不表示问题无法近似,可改求最小二乘。
  4. 正规方程有理论意义,但数值上可能平方条件数。
  5. 直接求 A1bA^{-1}b 通常不如解线性系统。

常见问答

Q1:为什么机器学习很少手算高斯消元?

实际矩阵规模大且有数值误差,需要优化过的分解算法。但高斯消元帮助理解解的结构、秩和自由变量。

Q2:有无穷多解时训练如何返回一个?

优化器初始化、隐式偏好、伪逆、正则化或早停会选择某个解。不同算法可能产生相同训练预测但不同参数。

Q3:solve(A,b)inv(A)@b 有何区别?

前者直接通过分解解方程,通常更快、更稳定;后者先计算完整逆矩阵,做了不必要工作并放大误差。

练习

  1. x+y=3, 2xy=0x+y=3,\ 2x-y=0
  2. 方程组消元后出现 [0 02][0\ 0\mid2],说明什么?
  3. AA 有 5 列、秩为 3,若 Ax=bAx=b 相容,有多少个自由变量?
  4. 解释为什么 bb 不在 AA 的列空间时方程无解。
  5. 为什么 Xw=yXw=y 无解时可用最小二乘?

答案与提示

  1. x=1,y=2x=1,y=2
  2. 矛盾 0=20=2,无解。
  3. 2 个。
  4. AxAx 的所有可能值正是列空间,若 bb 不在其中无法到达。
  5. 它寻找列空间中离 yy 最近的点,而非要求精确相等。