线性代数基础
线性代数是机器学习、图形学、控制论乃至量子计算的底层语言。学习过程中如果只背公式,往往无法把抽象符号与具体场景联系起来。本文从零开始梳理关键概念、常见例子与学习路线,帮助你在“理解—计算—应用”之间建立桥梁。
1. 为什么线性代数如此重要
- 数据表示:向量可以描述单个样本的特征,矩阵可以并行操作一批样本。
- 线性变换:模型权重(全连接层、卷积核)本质都是线性映射。
- 优化与分解:梯度、Hessian、奇异值分解 (SVD) 等都植根于线性代数。
2. 前置知识清单
- 代数基础:熟悉实数运算、因式分解、函数图像。
- 集合与映射:理解“输入
输出”的函数关系,知道多元函数的含义。 - 基础几何:二维平面、三维空间中的点、向量、角度与面积。
- 初等数列:能处理求和符号
与简单递推。
若上述内容尚不牢固,建议先配合高中代数/几何教材或可汗学院的基础课程复习。
3. 向量:既是箭头也是列表
- 定义:
维向量写作 ,通常当作列向量。 - 几何直觉:二维向量是平面上的箭头,长度
表示箭头的“强度”,方向由坐标确定。 - 现实例子:影评情感向量
可表示“正面、负面、中性”特征贡献。 - 基本运算:
- 加法:
等价于把两个位移连在一起。 - 标量乘法:
拉伸或压缩向量长度。 - 点积:
,衡量相似度或投影。
- 加法:
示例:设用户喜好向量
4. 向量空间、线性组合与基
- 向量空间:在加法与标量乘法下封闭的集合。例如所有二维向量构成
。 - 线性组合:
。若若干向量的线性组合能覆盖整个空间,它们就是该空间的生成集。 - 基与维度:最小生成集叫基
(basis)。二维空间常用标准基
、 。基向量数量即维度。 - 形象例子:若以“甜味”“酸味”两个向量表示饮品口味空间,任何饮品都能写成它们的线性组合。换基就像改用“柑橘味”“莓果味”描述同一空间。
5. 矩阵:线性变换的载体
- 定义:
矩阵 是 行 列的数表,可看作把 维输入映射到 维输出的线性函数。 - 矩阵作用:
。矩阵的列向量描述基向量被变换后的结果。 - 几何例子:
- 缩放矩阵
:水平方向放大 2 倍、竖直方向压缩为原来的一半。 - 旋转矩阵
:围绕原点逆时针旋转 。
- 缩放矩阵
- 组合变换:两个变换先后执行等价于矩阵连乘
。
可以把矩阵视作“坐标轴变形机器”。二维标准坐标系的基为
这条公式告诉我们:矩阵的列向量就是被拉伸或扭曲后的坐标轴,原向量的系数
坐标轴表达示例:设
(水平切变矩阵)。有
,可以直观看出“沿新
示例:图像中的像素点
6. 矩阵基本运算
| 运算 | 表达式 | 含义 |
|---|---|---|
| 加法 | 对应元素相加 | |
| 数乘 | 所有元素乘以常数 |
|
| 乘法 | 复合变换或把“特征 |
|
| 转置 | 交换行列,点积可写为 |
|
| 逆矩阵 | 撤销变换,只有可逆矩阵才存在 |
理解矩阵乘法的“行 × 列”视角十分关键:每一行代表一个输出变量如何聚合输入各分量。
7. 线性方程组与高斯消元
把方程组写成
通过高斯消元(行变换)可化为上三角矩阵,再回代得到解。几何上,该例表示两条直线的交点;若系数矩阵行向量共线则无唯一交点。
示例 1(唯一解):上式增广矩阵
示例 2(欠定/最小二乘):若
, 两行相同导致方程组无解。最小二乘解
表示找到距离两条“重合直线”最近的点。
8. 行列式:体积与可逆性的度量
- 行列式
衡量单位立方体经过 变换后的体积缩放。 - 若
,说明变换把空间压成更低维子空间,矩阵不可逆。 - 二维示例:矩阵
的行列式为 ,表示面积缩放 2 倍并翻转方向。
三维示例:设
, 利用展开可得
这意味着单位立方体被拉伸为体积为 3 的平行六面体,并保持右手坐标系方向。
9. 特征值与特征向量
特征向量满足
- 现实场景:主成分分析 (PCA) 中,协方差矩阵的特征向量就是最大方差方向,特征值表示该方向的方差大小。
- 计算方式:解特征方程
得到特征值,再回代求特征向量。 - 几何意义:找到“不会被扭曲方向”的轴,便于判断系统的稳定性或数据的主方向。
10. 正交性、投影与最小二乘
- 正交向量:
,夹角为 。 - 正交矩阵:
,既保持长度又保持角度。 - 投影公式:
- 最小二乘:当
无精确解时,选择 使残差 最小,相当于把 投影到矩阵列空间上。
投影示例:令
11. 常见矩阵分解
| 分解 | 形式 | 典型用途 |
|---|---|---|
| LU | 一次分解,多次求解 |
|
| QR | 正交化、稳定地解最小二乘 | |
| 特征分解 | 谱聚类、PCA、动力系统分析 | |
| SVD | 降维、伪逆、低秩近似、推荐系统 |
分解的本质是把复杂映射拆解成“旋转 + 缩放 + 投影”等易理解的步骤。
奇异值分解 (SVD) 的 LaTeX 图示
SVD 把任意矩阵拆成三段:
:在输入空间旋转/翻转,使数据对齐到“主轴”方向。 :保留非负奇异值 ,沿坐标轴做纯拉伸或压缩。 :把变形后的结果放回输出空间,再旋转/翻转到目标坐标系。
为了兼容 Hexo 默认的 MathJax 配置,我们可以用一条“箭头链”表示 SVD 的三步变换:
这条箭头链展示了“旋转 → 缩放 →
再旋转”的流水线:左侧单位圆上的每个点被
数值示例:对于
12. 线性代数与机器学习的衔接
- 数据标准化:零均值处理等价于把样本投影到均值向量的正交补。
- 特征工程:PCA/ICA 即寻找协方差矩阵的特征向量或独立基。
- 优化算法:梯度、牛顿法中的 Hessian、二阶近似全部依赖矩阵微积分。
- 正则化:
正则限制向量的 Euclidean 范数, 正则鼓励稀疏系数。 - 深度学习:注意力矩阵、卷积核展开、BatchNorm 统计量都可用线性映射描述。
实例: - 数据标准化:对房价特征(面积、房龄、卧室数)做零均值后再训练线性回归,相当于让模型在“去掉公共偏移量”的子空间里拟合。 - PCA:将 784 维的 MNIST 手写图片降到 32 维时,只保留前 32 个最大的奇异值和特征向量,降低存储成本的同时保留主要笔画结构。 - 深度学习:Transformer 中 Query 和 Key 的点积本质是比较两个向量在同一子空间的对齐程度,奇异值过大时常用谱归一化控制注意力权重的放大倍数。
13. 建议的学习路线
- 向量直觉阶段:手画二维、三维向量的加法、点积、投影,理解长度与角度的含义。
- 矩阵运算阶段:练习矩阵与向量、矩阵与矩阵的乘法,关注形状匹配与变换效果。
- 行列式与消元阶段:手算 2×2、3×3 行列式,掌握高斯消元和秩的概念。
- 谱分析阶段:从对称矩阵入手求特征值/特征向量,并用真实数据做 PCA。
- 分解与数值阶段:实现 Gram-Schmidt、QR、SVD,理解数值稳定性和条件数。
- 应用阶段:编程实现线性回归、低秩图像压缩、推荐系统嵌入,观察每一步的线性代数含义。
14. 练习与资源
- 可视化课程:3Blue1Brown 的 Essence of Linear Algebra 动画。
- 系统教材:Gilbert Strang 的 Introduction to Linear Algebra 及 MIT 公开课 18.06。
- 编程练习:使用 NumPy/PyTorch 验证矩阵运算、SVD、最小二乘公式。
- 自测题:自己构造小矩阵,判断其可逆性、特征值,并在坐标纸上描绘变换后的网格。
循序渐进地把抽象概念与“箭头如何移动”“数据方差指向哪里”等可视图像绑定,线性代数就能真正成为解决问题的工具而非考试公式。