① 线性代数(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 实现一个基于向量相似度的搜索引擎:

  1. 把文本转成 TF-IDF 向量
  2. 存入 NumPy 矩阵
  3. 用户查询 → 向量化 → 与所有文档算余弦相似度
  4. 返回 Top-K 结果
  5. 加分项: 用 sentence-transformers 跑一个预训练 embedding 做对比,感受"手工特征 vs 学习到的向量"的差距

这个项目直接对应你工作中 embedding + 相似度搜索的核心原理。


不需要看

  • ❌ 大量行列式证明
  • ❌ 抽象线性空间严谨定义
  • ❌ Jordan 标准型(先用不到)

核心概念检验(学完能解释这些就算过关)

  • [ ] 为什么 embedding 用向量?高维空间中距离/角度意味着什么?
  • [ ] Attention 里的 Q·K^T 在做什么?为什么除以 √d?
  • [ ] SVD 降维的直觉是什么?为什么能压缩信息?
  • [ ] 矩阵乘法为什么不满足交换律?(用变换的视角解释)

工作映射

  • Embedding → 向量空间 + 余弦相似度
  • Attention → 点积作为相关性度量
  • 推荐系统 → 用户/物品向量内积
  • PCA 降维 → 特征值分解 / SVD
  • 图像压缩 → SVD 低秩近似

学习记录