第4章 线性代数与矩阵运算
非常好,这一章是很多人“入门机器学习”时最模糊、但“深入机器学习”后才恍然大悟的部分。
几乎所有的算法——从线性回归到神经网络,从聚类到推荐系统——底层都离不开 线性代数。
下面我会以「直观解释 + 数学形式 + 实际应用」的方式来系统讲解。
4.1 向量空间与特征表示
🧩 向量(Vector)
在机器学习中,向量 = 一个样本的特征集合。 例如,一个房屋样本: [ x = [\text{面积}, \text{卧室数}, \text{楼层}, \text{城区编码}] ] 可写作一个 4 维向量: [ x = [120, 3, 2, 5] ]
向量是机器学习中最基础的数据单位。
- 每个维度表示一个特征(feature)
- 整个向量表示样本在特征空间中的位置
🧠 向量空间(Vector Space)
一组向量加上线性运算(加法、数乘)就构成一个向量空间。
例如,二维空间的所有点 ((x_1, x_2)) 构成一个二维向量空间。 在机器学习中,这种空间常称为「特征空间(Feature Space)」。
📈 特征表示(Feature Representation)
向量的几何意义非常重要:
- 每个样本是一个点;
- 每个维度是一个特征轴;
- 模型的“学习”其实就是在高维空间中寻找“划分这些点的超平面”。
例如,逻辑回归学习的其实就是一个超平面: [ w_1x_1 + w_2x_2 + b = 0 ] 它把空间分成“正类”和“负类”。
🧮 向量运算与几何意义
| 运算 | 数学形式 | 含义 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 点积(Dot Product) | ( a \cdot b = \sum_i a_i b_i ) | 衡量相似度(方向是否一致) | ||||||||
| 范数(Norm) | ( | a | = \sqrt{\sum_i a_i^2} ) | 向量长度 | ||||||
| 余弦相似度 | ( \cos\theta = \frac{a \cdot b}{ | a | , | b | } ) | 两个样本相似度 | ||||
| 线性组合 | ( c = \alpha a + \beta b ) | 新特征的组合方式 |
💡 在推荐系统中,“用户向量”和“商品向量”的点积就代表偏好相似度(矩阵分解模型的核心)。
4.2 矩阵运算在学习算法中的作用
🧩 矩阵的定义
矩阵就是一组向量的集合。 如果每个样本是一个向量,那么所有样本组成的数据集就是一个矩阵:
[
X =
\begin{bmatrix}
x_{11} & x_{12} & \dots & x_{1d}
x_{21} & x_{22} & \dots & x_{2d}
\vdots & \vdots & \ddots & \vdots
x_{n1} & x_{n2} & \dots & x_{nd}
\end{bmatrix}
]
其中:
- ( n ):样本数
- ( d ):特征维度
这是所有算法的起点。
🧮 矩阵乘法与模型训练
矩阵乘法背后隐藏着「批量预测」与「特征加权」。
例如线性回归: [ y = Xw + b ]
- ( X ):输入数据矩阵(n×d)
- ( w ):参数权重向量(d×1)
- ( y ):预测结果(n×1)
矩阵乘法的几何意义:
把原始数据投影到“权重方向”,得到模型输出。
在神经网络中,权重层的计算其实就是不断地执行 ( XW + b ) 的线性变换,只是叠了很多层。
📘 矩阵的核心操作及意义
| 操作 | 含义 | 实例 |
|---|---|---|
| 转置((A^T)) | 行列互换 | 用于求相似度或协方差 |
| 逆矩阵((A^{-1})) | 线性方程求解 | 线性回归正规方程法 |
| 迹(Trace) | 对角线和 | 协方差矩阵的方差和 |
| 行列式(Determinant) | 矩阵体积(可逆性) | PCA、线性无关性判断 |
💡 在优化算法中,矩阵求导(Jacobian/Hessian)决定了梯度下降的方向和收敛速度。
4.3 特征值与奇异值分解
🧠 特征值与特征向量(Eigenvalue & Eigenvector)
定义: [ A v = \lambda v ]
表示:矩阵 ( A ) 作用在向量 ( v ) 上,只改变它的长度(λ倍),不改变方向。
- ( v ):特征向量(方向不变的向量)
- ( \lambda ):特征值(方向上的伸缩比例)
📈 几何意义: 矩阵(线性变换)会把空间拉伸/压缩,而特征向量就是那些「拉伸方向不变」的轴。
📘 应用:
- PCA 降维(找出方差最大方向)
- 图的谱聚类(Graph Laplacian 特征值分解)
- 动态系统稳定性分析(通过特征值判断系统是否收敛)
🔹 奇异值分解(SVD, Singular Value Decomposition)
SVD 是矩阵分解中最重要的一个: [ A = U \Sigma V^T ]
其中:
- ( U ):左奇异向量(样本空间)
- ( V ):右奇异向量(特征空间)
- ( \Sigma ):奇异值(特征的重要性)
💡 可以理解为:
把任意矩阵分解成“旋转 + 缩放 + 再旋转”。
📘 应用举例:
- 信息检索中的 LSA(潜在语义分析)
- 图像压缩(保留前几个奇异值即可)
- 推荐系统中的 矩阵分解(SVD)
- 降维与噪声过滤(保留主要成分)
4.4 PCA 的数学推导与降维本质
🎯 PCA(主成分分析)的目标
找到一组新的坐标轴,使数据在这些轴上的投影方差最大,同时维度尽量少。
换句话说:
- 我们希望在保留最多信息的同时,去掉冗余维度。
🧮 PCA 的数学推导
给定样本矩阵 ( X )(n×d),假设已中心化(均值为0):
-
计算协方差矩阵: [ C = \frac{1}{n} X^T X ]
-
对 ( C ) 做特征值分解: [ C v_i = \lambda_i v_i ] 得到特征向量 ( v_i ) 与特征值 ( \lambda_i )。
-
选择前 k 个最大特征值对应的向量组成矩阵 ( V_k )。
-
降维后的数据为: [ X’ = X V_k ]
📘 几何意义:
- 特征向量 = 数据最大方差方向
- 特征值 = 每个方向的信息量
- 投影后 = 把高维数据“旋转”到信息最集中的轴上
📈 应用举例
| 应用场景 | 说明 |
|---|---|
| 图像压缩 | 保留前 50 个主成分即可恢复主要轮廓 |
| 降噪 | 去掉小特征值对应的噪声维度 |
| 可视化 | 将高维数据降到 2D / 3D |
| 特征提取 | 作为深度学习前的预处理 |
🧠 PCA 与 SVD 的关系
事实上,PCA 可以用 SVD 实现:
[ X = U \Sigma V^T ]
则:
- 协方差矩阵 ( C = X^T X = V \Sigma^2 V^T )
- 主成分方向就是 ( V ) 的列向量
🌍 小结
| 概念 | 本质作用 | 机器学习中的角色 |
|---|---|---|
| 向量空间 | 表示样本与特征 | 特征表示、语义嵌入 |
| 矩阵运算 | 批量计算与变换 | 模型训练、线性预测 |
| 特征值分解 | 方向与方差信息 | 稳定性、PCA、聚类 |
| 奇异值分解 | 通用分解工具 | 推荐系统、压缩、降噪 |
| PCA | 信息最大化投影 | 降维、特征提取、可视化 |
