Math-03.线性代数-01.总论

本页为 Math-03 线性代数 子系列总论。在 ML / DL / 大模型中,数据是矩阵、参数是矩阵、梯度是向量——线性代数是读代码与论文的「坐标系」。

段末注释张量(tensor)可视为向量的高维推广;PyTorch 中 float32 张量的 shape 即各维大小,矩阵为二维张量。

系列入口00.系列规划 | 前置:Math-00 总论Math-02 总论


1. 为何 ML 离不开线性代数(D1)

图 1 数据→矩阵→模型

对象 形状示例 含义
样本特征矩阵 $X$ $n \times d$ $n$ 个样本,$d$ 维特征
权重 $W$ $d \times k$ 线性层:$d$ 输入 → $k$ 输出
嵌入 $E$ $V \times h$ 词表大小 $V$,隐藏维 $h$
Attention $QK^\top$ 序列 token 两两相似度

典型场景:PCA 降维、协方差矩阵、Transformer 的 $Q,K,V$、LoRA 低秩更新。


2. 核心对象一览(D2–D3)

图 2 核心运算与分解

向量 $\mathbf{x} \in \mathbb{R}^d$:一个样本的特征;矩阵 $A \in \mathbb{R}^{m \times n}$:线性变换或数据集。

常用运算:

  • 点积 $\mathbf{a}^\top \mathbf{b} = \sum_i a_i b_i$ → 相似度、logits 一部分
  • 矩阵乘 $C = AB$:批量线性变换;Attention 核心
  • 转置 $A^\top$:反向传播中维度对齐
  • $A^{-1}$(可逆时):解线性方程;实际多用数值稳定替代

分解(详见专篇):

分解 公式 ML 用途
特征分解 $A = Q \Lambda Q^\top$(对称) PCA、谱聚类
SVD $A = U \Sigma V^\top$ 降维、LoRA、推荐
Cholesky $A = LL^\top$(正定) 多元正态采样

3. 与统计/ML 概念的对应(D6)

图 3 线性代数在 ML 中的位置

统计概念 线性代数形式
均值向量 $\bar{\mathbf{x}} = \frac{1}{n}\sum_i \mathbf{x}_i$
协方差矩阵 $\Sigma = \frac{1}{n-1}\sum_i (\mathbf{x}_i-\bar{\mathbf{x}})(\mathbf{x}_i-\bar{\mathbf{x}})^\top$
Pearson 相关矩阵 $R = D^{-1/2} \Sigma D^{-1/2}$(Math-02/05
多元正态 $\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu}, \Sigma)$(Math-00/30
线性回归 $\hat{\mathbf{y}} = X\boldsymbol{\beta}$
L2 正则 $|\boldsymbol{\beta}|_2^2 = \boldsymbol{\beta}^\top \boldsymbol{\beta}$

4. 选型与阅读地图(D4–D7)

1
2
3
4
5
6
7
8
9
10
11
ML 线性代数需求
├── 读写数据与 batch 运算
│ └── [02 向量与矩阵运算]
├── 理解「信息保留/压缩」
│ ├── [04 特征值] → [10 PCA]
│ └── [05 SVD与低秩] → [20 Attention与LoRA]
├── 训练稳定与正则
│ ├── [06 范数](clip、weight decay)
│ └── [07 正定与条件数]
└── 求梯度(配合 Math-06)
└── 矩阵微积分系列

5. 局限与数值注意(D8)

图 4 常见误用

问题 后果 对策
维度不对齐 静默广播错误或 shape 报错 显式检查 shape
直接求 $A^{-1}$ 病态矩阵数值爆炸 SVD、伪逆、正则
忽视条件数 梯度不稳定 归一化、LayerNorm
把相关当因果 错误特征工程 实验设计 + Math-02

大模型:混合精度下矩阵乘累积误差;梯度裁剪依赖范数(见 06 范数)。


6. NumPy 速览(D12)

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np

X = np.random.randn(100, 20) # n=100, d=20
W = np.random.randn(20, 5)
Y = X @ W # (100,5) 批量线性变换

# 协方差(列=特征)
Sigma = np.cov(X, rowvar=False) # (20,20)

# SVD
U, s, Vt = np.linalg.svd(X, full_matrices=False)
X_rank5 = (U[:, :5] * s[:5]) @ Vt[:5] # 秩-5 近似

PyTorch 中 @.T 用法相同;GPU 上大规模 matmul 是训练瓶颈。


7. 系列导航

篇号 主题
02 向量矩阵 点积、广播、batch
04 特征值 谱、PCA 数学
05 SVD LoRA
10 PCA 降维实践
20 Attention+LoRA Transformer

兄弟系列Math-04 优化 | Math-06 矩阵微积分


8. 小结

线性代数提供 ML 的表示语言:数据与参数是矩阵,训练是矩阵上的迭代。先掌握 02 运算 + 05 SVD,再读 Attention / LoRA 与大模型论文会顺畅很多。

系列导航00 规划 | 02 向量矩阵

-------------本文结束感谢您的阅读-------------