① 线性代数(22 天)
AI 的地基。embedding、attention、推荐系统、PCA、SVD 全靠它。
资源
主资源:
- 3Blue1Brown《Essence of Linear Algebra》(14 集,每集 10-15 分钟)
辅助资源:
- Immersive Math(immersivemath.com)— 交互式 3D 线代可视化,比 3B1B 更直观
- MIT 18.06 Strang 作业题(挑着做,不需要全做,巩固直觉)
- NumPy 官方文档(矩阵运算 API)
第一周:向量与矩阵基础(Day 1-7)
- [ ] 看完 3B1B Ep1-Ep3(向量、线性组合、矩阵乘法)
- [ ] 浏览 Immersive Math 对应章节的交互演示
- [ ] NumPy 实验:创建向量/矩阵,做加减乘除
- [ ] 理解:向量 = 多维特征,矩阵 = 线性变换
动手: 用 NumPy 实现一个简单的用户-物品评分矩阵,计算用户相似度(余弦相似度 = 归一化点积)
第二周:空间变换与行列式(Day 8-14)
- [ ] 看完 3B1B Ep4-Ep7(行列式、逆矩阵、列空间、零空间)
- [ ] 做 2-3 道 MIT 18.06 作业题(不需要全做,挑和工程相关的)
- [ ] 理解:行列式 = 变换的面积/体积缩放比
- [ ] 理解:逆矩阵 = 撤销变换
动手: 用 NumPy 实现矩阵求逆(对比 np.linalg.inv),理解为什么逆矩阵能解线性方程组
第三周:特征值与 SVD(Day 15-18)
- [ ] 看完 3B1B Ep8-Ep12(特征值、特征向量、SVD)
- [ ] 理解:特征值 = 变换中不改变方向的轴及其缩放
- [ ] 理解:SVD = 任何矩阵都能拆成三个简单变换的乘积
动手: 用 NumPy 对一个矩阵做 SVD 分解,用前 k 个奇异值做图像压缩(经典的 SVD 应用)
第四周:输出项目(Day 19-22)
📦 项目:简易向量搜索引擎
用 Python + NumPy 实现一个基于向量相似度的搜索引擎:
- 把文本转成 TF-IDF 向量
- 存入 NumPy 矩阵
- 用户查询 → 向量化 → 与所有文档算余弦相似度
- 返回 Top-K 结果
- 加分项: 用 sentence-transformers 跑一个预训练 embedding 做对比,感受"手工特征 vs 学习到的向量"的差距
这个项目直接对应你工作中 embedding + 相似度搜索的核心原理。
不需要看
- ❌ 大量行列式证明
- ❌ 抽象线性空间严谨定义
- ❌ Jordan 标准型(先用不到)
核心概念检验(学完能解释这些就算过关)
- [ ] 为什么 embedding 用向量?高维空间中距离/角度意味着什么?
- [ ] Attention 里的 Q·K^T 在做什么?为什么除以 √d?
- [ ] SVD 降维的直觉是什么?为什么能压缩信息?
- [ ] 矩阵乘法为什么不满足交换律?(用变换的视角解释)
工作映射
- Embedding → 向量空间 + 余弦相似度
- Attention → 点积作为相关性度量
- 推荐系统 → 用户/物品向量内积
- PCA 降维 → 特征值分解 / SVD
- 图像压缩 → SVD 低秩近似