查看全课大纲(第 4 / 82 节)
- 1.函数与数据泛化
- 2.向量:从几何直觉到高维空间
- 3.矩阵与张量
- 4.特征值与特征向量:矩阵变换的不动方向
- 5.凸函数:从向量求导的矩阵记号到好优化的函数形状
- 6.概率与统计:机器学习的数学基础
- 7.独立性与随机变量:贝叶斯公式与二项分布
- 8.期望、方差与协方差:随机变量的数字画像
- 9.联合概率:当一条轴不够用的时候
- 10.概率分布(一):从伯努利到伽马函数
- 11.概率分布(二):贝塔、泊松、正态与两个贝叶斯故事
- 12.机器学习的模型:找输入与输出的关系
- 13.机器学习的应用
- 14.过拟合
- 15.机器学习的分类
- 16.有监督学习:从房价预测说起
- 17.损失函数
- 18.梯度下降(上):更新规则与学习速率
- 19.梯度下降(2)
- 20.牛顿方法
- 21.KNN简介
- 22.距离测算
- 23.朴素贝叶斯
- 24.朴素贝叶斯的实际应用
- 25.信息熵:决策树构建的度量基础
- 26.信息增益与决策树的构建
- 27.ID3算法
- 28.决策树节点的划分
- 29.CART树
- 30.Bagging
- 31.Boosting:自适应提升算法
- 32.Gradient Boosting
- 33.线性模型:回归与分类的同一副骨架
- 34.最小二乘:把最优参数直接解出来
- 35.最小二乘法的几何与概率视角
- 36.极大似然:给最小二乘一个概率出身
- 37.逻辑回归(1):把线性模型接到分类上
- 38.逻辑回归(2):损失函数与多分类
- 39.---- 手造数据: 5 个样本, 2 个特征; x2 几乎 = 2*x1 (偏差手工指定, 无随机) ----
- 40.讲师例: 向量 "23014" -- 三把范数尺子量同一个向量
- 41.优化方法(1):坐标下降与前向选择
- 42.优化方法(2):前向策略与最小角回归
- 43.拉格朗日乘子法(1):从无约束到等式约束
- 44.拉格朗日乘子法(2):等式约束下的平行条件与拉格朗日函数
- 45.拉格朗日乘子法(3):不等式约束与 KKT 条件
- 46.最大间隔:把分类问题变成优化问题
- 47.拉格朗日对偶问题:把 w 和 b 全部换成 α
- 48.支持向量:边界上的少数派
- 49.SVM 计算过程:一笔到底算完,再走进核方法
- 50.贝叶斯公式:概率即信念
- 51.隐含变量和概率模型:给看不见的原因建模
- 52.EM 算法:期望与最大化的迭代
- 53.琴生不等式:EM 的数学钥匙
- 54.三个硬币问题:EM 的复盘与衔接
- 55.高斯混合模型:用隐变量解释双峰数据
- 56.隐马尔可夫模型
- 57.隐马尔可夫模型(2):前向算法与动态混合模型
- 58.隐马尔可夫模型在 NLP 中的运用
- 59.EM 算法:把「为什么收敛」推到底
- 60.HMM 在 NLP 中的运用:从分词到机器翻译
- 61.HMM 参数估计:Baum-Welch 的三块拉格朗日
- 62.高维下的高斯模型
- 63.主题模型:从词袋到隐含主题
- 64.Dirichlet 分布(1)
- 65.Dirichlet 分布(2)
- 66.统计学习内容回顾
- 67.K-means 算法
- 68.PCA 降维
- 69.SVD 降维
- 70.从聚类到流形
- 71.局部线性嵌入
- 72.随机邻域嵌入:SNE 与 t-SNE
- 73.无参模型:让数据自己说话
- 74.高斯过程:函数空间里的正态分布
- 75.高斯过程(2):噪声、正则化与核的线性组合
- 76.神经网络简介:从感知器到自编码器
- 77.反向传播:把误差一层层传回去
- 78.卷积神经网络(CNN):让特征自己学出来
- 79.循环神经网络(RNN):给网络装上记忆
- 80.深度学习回顾:静态一类,动态一类
- 81.增强学习(1):蒙特卡洛、树搜索与 Q-learning
- 82.强化学习(2):从乌鸦吃核桃到井字棋的 value 回传
特征值与特征向量:矩阵变换的不动方向
约 15 分钟
小象实战讲义 · 机器学习算法精讲
本节回到矩阵本身,看它的两件”镇家之宝”:行列式与特征值、特征向量。行列式的值不只是计算口诀,它有清晰的几何含义;特征值与特征向量则揭示了矩阵作为线性变换时那些”方向不变”的秘密轴。视频末尾讲师还用一分多钟预告了 SVD(奇异值分解)——本节顺带认识它的样子,正式展开留到第 16 章降维时。
💡 核心导读
- 行列式的几何意义:方阵的行列式绝对值,等于其列向量张成的”有向面积/体积”(二维是平行四边形面积,三维是平行六面体体积)。
- 矩阵即变换:左乘一个矩阵,就是把空间中的向量做一次线性变换,矩阵的列就是标准基向量被”搬”到的新位置。
- 特征值与特征向量:变换后方向不变、只被拉伸或压缩的向量是特征向量,缩放倍数就是特征值;连乘矩阵时,它们决定结果是发散还是收敛。
- SVD 初见:任何实矩阵都能分解为”正交 × 对角 × 正交”三个矩阵的乘积——第 16 章降维的主角提前亮相。
行列式的几何直观
先复习计算:对于 矩阵
这个式子不只是定义,它有非常清晰的几何含义。讲师在课上现场算了一遍:以矩阵的两个列向量为邻边,可以在平面上张成一个平行四边形,用”大矩形面积减去四周三角形”的拼图法化简,结果恰好就是 。
用代码复现这个验证(列向量 、 张成的平行四边形,其面积本应等于 ):
# 验证:det(A) 的绝对值 = 列向量张成的平行四边形面积
A = [[3, 1],
[1, 2]]
det_A = A[0][0] * A[1][1] - A[0][1] * A[1][0] # ad - bc
print(f"矩阵 A = {A}")
print(f"行列式 det(A) = {det_A}")
# 列向量 v1 = (3, 1), v2 = (1, 2)
v1 = (A[0][0], A[1][0])
v2 = (A[0][1], A[1][1])
# 二维叉积 (x1,y1)x(x2,y2) = x1*y2 - y1*x2,其绝对值即张成面积
cross_product = v1[0] * v2[1] - v1[1] * v2[0]
area = abs(cross_product)
print(f"列向量张成的平行四边形面积 = {area}")
print(f"两者是否相等? {abs(det_A - area) < 1e-10}")矩阵 A = [[3, 1], [1, 2]]
行列式 det(A) = 5
列向量张成的平行四边形面积 = 5
两者是否相等? True推广到三维: 矩阵的行列式代表三个列向量张成的平行六面体的体积——每多一个维度,就多”乘上一层”。这也顺便解释了行列式为零意味着什么:列向量张成的体积塌成了零,说明它们线性相关,矩阵不可逆。
矩阵作为线性变换
理解特征值的关键前提,是把矩阵看成对整个空间施加的一次线性变换。
给定矩阵 和向量 ,乘积 把 从空间中一点搬到另一点。讲师在课上用一个可交互的演示展示了这件事(setosa.io 的 eigenvectors and eigenvalues 页面,课件里附了链接):调整矩阵 的两个列向量,整个坐标网格随之被拉伸、倾斜——而 的每一列,正是原标准基向量 、 被变换后到达的新位置。矩阵没做别的,就是给空间做了一次线性变换。
特征值与特征向量:变换中的”不动方向”
在这个变换里,有没有一些特殊的向量,方向始终不变、只被拉伸或压缩?有——它们就是特征向量(eigenvector),缩放的倍数就是特征值(eigenvalue)。数学定义:对 方阵 ,若存在非零向量 与标量 使
则 是特征值, 是对应的特征向量。几何上: 作用在特征向量上,等价于在原方向上放大 倍( 拉长、 缩短、 反向);向量到原点的距离,变换前后正好放大 倍。 矩阵一般有两个特征方向 、 和对应的两个特征值——特征向量可以认为是”矩阵最有代表性的东西”,它指明了这个变换”偏爱”的方向。
讲师在演示里还展示了两个值得记住的现象:
- 连乘的走向:把矩阵 反复作用于向量,若向量落在较大特征值的方向上,结果会越乘越大、冲向无穷;落在较小特征值方向上则越乘越小,最终收缩到另一个特征方向上去。矩阵的长期行为,由它的特征值决定。
- 迹(trace):方阵对角线元素之和 ,有时也用来刻画矩阵,是个常用的伴随量。
怎么求? 由 移项得 ,要使非零 存在,必须 ——这就是特征方程,解这个关于 的多项式即得特征值,再回代解出特征向量。(这是标准线性代数方法,站内《人工智能数学基础》有系统展开;本课直接用它。)用一个最小例子跑通全流程:
# 手工求解 2x2 矩阵的特征值与特征向量(A = [[2,1],[1,2]])
A = [[2, 1],
[1, 2]]
# 特征方程 det(A - λI) = (2-λ)^2 - 1 = λ^2 - 4λ + 3 = 0
# 由求根公式 λ = [4 ± sqrt(16-12)] / 2 = [4 ± 2] / 2
lambda1 = (4 + 2) / 2 # 3
lambda2 = (4 - 2) / 2 # 1
print(f"矩阵 A = {A}")
print(f"特征值 λ1 = {lambda1}, λ2 = {lambda2}")
# 回代求特征向量:λ1=3 时 (A-3I)v=0 → -x+y=0 → v1=(1,1)
# λ2=1 时 (A-I)v=0 → x+y=0 → v2=(1,-1)
v1 = [1, 1]
v2 = [1, -1]
for lam, v in [(lambda1, v1), (lambda2, v2)]:
Av = [A[0][0] * v[0] + A[0][1] * v[1], A[1][0] * v[0] + A[1][1] * v[1]]
lv = [lam * v[0], lam * v[1]]
ok = all(abs(a - b) < 1e-10 for a, b in zip(Av, lv))
print(f"λ={lam}: v={v}, Av={Av}, λv={lv}, Av=λv? {ok}")矩阵 A = [[2, 1], [1, 2]]
特征值 λ1 = 3.0, λ2 = 1.0
λ=3.0: v=[1, 1], Av=[3, 3], λv=[3.0, 3.0], Av=λv? True
λ=1.0: v=[1, -1], Av=[1, -1], λv=[1.0, -1.0], Av=λv? True两个特征方向 与 上,矩阵确实只做了”放大 3 倍 / 保持 1 倍”的操作。
SVD 初见:任何矩阵都能”正交-对角-正交”三分
视频的最后,讲师用一分多钟预告了奇异值分解(Singular Value Decomposition, SVD):特征值分解只对方阵成立,而对一般的 实矩阵 ,SVD 断言它总能分解成三个矩阵的乘积
其中 、 是正交矩阵, 是对角矩阵——对角线上的元素叫奇异值。实际使用时,在 R 或 MATLAB 里输入 svd(A) 一行就能得到分解结果。
为什么”任何矩阵都能这样拆”、奇异值又有什么用?讲师留了个钩子:讲主题模型之前会细讲。对应到本课程,SVD 的正式舞台在第 16 章——PCA 降维、SVD 降维都在那里展开。现在只需要记住它的形状:正交 × 对角 × 正交。
📝 动手练一练
- 概念辨析:一个 矩阵 的行列式 ,从几何角度和特征值角度分别意味着什么?
👉 点击查看参考答案
几何角度:三个列向量张成的平行六面体体积为零——它们共面甚至共线,整个三维空间被这个变换”压扁”到低维子空间上,变换不可逆。
特征值角度:特征方程 的常数项恰是 ; 意味着 必是特征方程的根——存在非零向量 使 ,即某个方向被整个压到原点,同样说明了不可逆。
- 动手验证:对 ,求特征值,并验证 是否为特征向量。
👉 点击查看参考答案
特征方程 ,解得 、。
验证:。若 是特征向量,需 :第一个分量要求 ,第二个分量要求 ,矛盾——所以 不是 的特征向量(顺带一提, 的两个特征方向分别在 与 对应的解空间里)。
本章小结
- 行列式是几何量: = 列向量张成的面积/体积;行列式为零 = 空间被压扁 = 矩阵不可逆。
- 矩阵即线性变换:左乘矩阵就是把空间做一次变换,矩阵的列是基向量变换后的落点。
- 特征向量是变换中方向不变的轴,特征值是沿该轴的缩放倍数;矩阵连乘时”越乘越大还是越乘越小”由特征值决定;迹 (对角线之和)是常用伴随量。
- SVD 把任意矩阵拆成”正交 × 对角 × 正交”,第 16 章降维时正式展开。
📋 行动清单
- 打开课件里 setosa.io 的特征向量互动页,拖动矩阵的列向量,观察特征方向如何随矩阵变化
- 任取一个 矩阵,纸上走一遍完整流程:写特征方程 → 解 → 回代解 → 用 验证
- 预习下一节:Jacobian、Hessian 与凸函数——导数工具如何升级到多元与矩阵世界
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。