线性代数与矩阵运算:AI 背后的数学基石
前言
深度学习的每一次前向传播,本质上都是一连串矩阵乘法。理解线性代数,不是为了考试,而是为了真正看懂 AI 在做什么。
一、向量与向量空间
向量(Vector) 是 n 维空间中的一个有向线段:
v⃗=[v1,v2,...,vn]T\vec{v} = [v_1, v_2, ..., v_n]^Tv =[v1,v2,...,vn]T
在 AI 中,输入文本被 embedding 成向量,图像被展平为向量,每一行数据也是一个向量。向量就是 AI 处理信息的基本单位。
向量空间(Vector Space) 由所有可能的向量组成,支持加法和数乘两种运算。
二、矩阵:线性变换的语言
矩阵(Matrix) 是 m 行 n 列的数表:
A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n
矩阵乘法的物理含义
矩阵乘法 C=ABC = ABC=AB 可以理解为"先做 A 变换,再做 B 变换":
python
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A @ B # 矩阵乘法
神经网络中的矩阵
全连接层的前向传播:y=Wx+by = Wx + by=Wx+b
- W∈Rdout×dinW \in \mathbb{R}^{d_{out} \times d_{in}}W∈Rdout×din 是权重矩阵
- x∈Rdinx \in \mathbb{R}^{d_{in}}x∈Rdin 是输入向量
- y∈Rdouty \in \mathbb{R}^{d_{out}}y∈Rdout 是输出向量
一次矩阵乘法就完成了整层神经网络的计算。
三、特征值与特征向量
特征方程 :Av⃗=λv⃗A\vec{v} = \lambda \vec{v}Av =λv
其中 λ\lambdaλ 是特征值,v⃗\vec{v}v 是对应的特征向量。
PCA 中的应用
主成分分析(PCA)本质上是找数据协方差矩阵的特征值和特征向量:
python
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X) # X_reduced 的每一维就是一个特征向量方向
最大的 k 个特征值对应的特征向量,就是数据最重要的 k 个主成分。
四、奇异值分解(SVD)
任意矩阵 A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n 可以分解为:
A=UΣVTA = U \Sigma V^TA=UΣVT
- U∈Rm×mU \in \mathbb{R}^{m \times m}U∈Rm×m:左奇异向量(行空间正交基)
- Σ∈Rm×n\Sigma \in \mathbb{R}^{m \times n}Σ∈Rm×n:对角矩阵,对角线是奇异值
- V∈Rn×nV \in \mathbb{R}^{n \times n}V∈Rn×n:右奇异向量(列空间正交基)
SVD 在 AI 中的应用
- 降维:保留最大的 k 个奇异值对应的分量
- 推荐系统:矩阵分解做协同过滤
- 图像压缩:保留主要奇异值即可重建图像
python
U, s, Vt = np.linalg.svd(A, full_matrices=False)
A_k = U[:, :k] @ np.diag(s[:k]) @ Vt[:k, :] # k 阶近似
五、范数:向量的长度
L1 范数(曼哈顿距离):∥x∥1=∑i∣xi∣\|x\|_1 = \sum_i |x_i|∥x∥1=∑i∣xi∣ → 稀疏性 (Lasso 正则化)
L2 范数(欧氏距离):∥x∥2=∑ixi2\|x\|_2 = \sqrt{\sum_i x_i^2}∥x∥2=∑ixi2 → 平滑性(Ridge 正则化)
python
x = np.array([3, 4])
print(np.linalg.norm(x, ord=1)) # 7.0
print(np.linalg.norm(x, ord=2)) # 5.0
六、总结
| 概念 | AI 中的角色 |
|---|---|
| 向量 | Embedding、数据表示 |
| 矩阵乘法 | 神经网络前向传播 |
| 特征值分解 | PCA 降维、谱方法 |
| SVD | 降维、推荐系统、图像处理 |
| 范数 | 正则化、损失函数 |
线性代数是 AI 的骨架。掌握这些核心概念,才能真正理解模型内部在做什么。