SVD(奇异值分解)被誉为线性代数的"皇冠明珠"——它能分解任何矩阵,不仅仅是方阵或对称矩阵。从图像压缩到 Netflix 推荐算法,从人脸识别到基因分析, SVD 无处不在。理解 SVD,就是掌握了数据科学最强大的数学工具之一。
引言:为什么 SVD 如此重要?
在前一章我们学习了对称矩阵的谱分解:
现实世界中,大多数矩阵都不对称:
- 图像矩阵(
,通常 ) - 用户-物品评分矩阵(推荐系统)
- 文档-词项矩阵(自然语言处理)
- 基因表达数据矩阵(生物信息学)
奇异值分解( SVD) 可以分解任意
$$
A = UV^T $$
这是线性代数中最强大、最有用的分解之一。
一个生活类比:理解 SVD 的本质
想象你是一位摄影师,想要理解一张照片的"本质"。照片可以看作一个矩阵——每个像素是一个数字。 SVD 告诉你:
- 任何照片都可以分解为若干"基础图层"的叠加
- 这些图层按重要性排序——第一层捕获最主要的结构,第二层捕获次要细节...
- 只保留前几层就能还原大部分信息
这就像乐队的录音可以分解为不同乐器的轨道:主唱、吉他、贝斯、鼓...有些轨道(如主唱)更"重要",去掉背景和声影响不大,但去掉主唱整首歌就变味了。
本章学习目标
- SVD 的定义与几何意义:理解
的含义 - 计算方法:如何求奇异值和奇异向量
- 与特征分解的关系: SVD 如何推广谱定理
- 低秩逼近:最佳秩-
逼近定理 - 伪逆:处理不可逆矩阵的通用方法
- 应用:图像压缩、主成分分析、推荐系统、潜在语义分析
SVD 的定义
基本定理
奇异值分解定理:任何
$$
A = UV^T $$
其中:
: 正交矩阵(左奇异向量) : 对角矩阵(奇异值),对角元 : 正交矩阵(右奇异向量)
标准形式:
关键性质:
- 奇异值
永远是非负实数(与特征值可能为负或复数不同) - 奇异值按降序排列:
- SVD 对任意矩阵都存在(这是它比特征分解更强大的原因)
几何意义:变换的"解剖"
SVD 告诉我们:任何线性变换都可以分解为三步:
- 旋转/反射(
):在输入空间中旋转坐标系 - 拉伸(
):沿新坐标轴方向拉伸(或压缩) - 旋转/反射(
):在输出空间中旋转坐标系

生活类比:想象你在揉面团。
- 第一步(
):把面团转到一个"方便操作"的角度 - 第二步(
):用擀面杖把面团压扁、拉长——这是真正改变形状的步骤 - 第三步(
):把压好的面团转到最终需要的方向
可视化理解: -
单位圆经过矩阵
外积形式
SVD 还有一个重要的等价表达——外积展开:
$$
A = _1 _1 _1^T + _2 _2 _2^T + + _r _r _r^T $$
每个
任何矩阵都是若干秩 1 矩阵的加权和,权重就是奇异值。
这个视角在低秩逼近中至关重要。
例子
考虑
$$
A =$$
SVD 分解(计算过程后面详述):
$$
A =$$
奇异值:
SVD 的计算
与
和 的关系
SVD 与对称矩阵的谱分解紧密相关。
关键观察: -
详细推导:
从
$$
A^TA = (UVT)T (UV^T) = V^T U^T UV^T = VTVT $$
因为
$$
A^TA = V (_1^2, , _n^2) V^T $$
这正是
结论: -
类似地:
$$
AA^T = U (_1^2, , _m^2) U^T $$ -
直觉理解:为什么要用
计算步骤
给定
步骤 1:计算
步骤 4:构造
从
$$
A_i = _i _i $$
所以
例子:手工计算 SVD
计算
解:
步骤 1:计算
$$
A^TA =$$
特征方程:
特征值:
步骤 3:左奇异向量
计算得:
$$
A =$$
SVD 与四个基本子空间
SVD 优雅地揭示了矩阵的四个基本子空间。
四个子空间的关系
对于
行空间
零空间
列空间
左零空间
关键洞察: -
SVD 的几何图像
SVD 给出了
$$
A_i =$$
意义: - 行空间的正交基
低秩逼近
SVD 最重要的应用之一是最佳低秩逼近。这是数据压缩、降噪、推荐系统的理论基础。
Eckart-Young 定理
定理:设
$$
A_k = _{i=1}^k _i _i _i^T = U_k _k V_k^T $$
其中
则
意义: - 保留前
生活类比:这就像音乐压缩。 MP3 格式丢弃人耳不敏感的高频成分,保留最重要的频率。 SVD 同理——保留"能量"最大的几个分量。
能量观点
奇异值的平方和等于矩阵的 Frobenius 范数平方:
前
实际观察:大部分矩阵的奇异值快速衰减。例如,一张 1000 × 1000 的自然图像,前 50 个奇异值可能捕获 95%的能量。
应用:图像压缩
图像可以看作矩阵(灰度值)。用低秩逼近压缩:
原始图像:
压缩图像(秩$ k

Python 实现:
1 | import numpy as np |
伪逆
动机:当逆矩阵不存在时
对于方程
伪逆(又称 Moore-Penrose 逆)提供了一个"最佳替代方案"。
定义
对于矩阵
$$
A^+ = V^+ U^T $$
其中
即:非零对角元取倒数,零元素保持为零,然后转置(调整维度)。
性质
伪逆满足四个 Moore-Penrose 条件:
2. $A+AA+ = A^+$3. ( 是对称的) ( 是对称的)
特殊情况:如果
最小二乘解
对于方程
最小二乘解(最小化
如果有多个最小二乘解,
几何解释:
应用:过定和欠定系统
过定系统(
欠定系统(
实际应用:机器学习中的线性回归、数据拟合、系统辨识都大量使用伪逆。
主成分分析( PCA)
PCA 与 SVD 的关系
主成分分析是数据降维的经典方法,其核心就是 SVD 。
给定数据矩阵
步骤 1:中心化数据
步骤 2:对
则: - 主成分方向:
降维:保留前
$$
X_{reduced} = V_k = U_k_k $$
为什么 PCA 有效?
PCA 寻找数据变化最大的方向:
第一主成分:方差最大的方向
第二主成分:与
结论:这正是 SVD 给出的右奇异向量。
生活类比:想象你有一团数据点的"云"。 PCA 找到云最"扁"的方向和最"长"的方向。最长的方向(方差最大)是第一主成分——它捕获数据最多的变化。
应用:数据可视化
高维数据(如 100 维)→ 投影到前 2 或 3 个主成分 → 可视化
例子:手写数字识别。每张
推荐系统中的 SVD
问题背景
Netflix 、 Amazon 、淘宝等平台面临一个核心问题:如何预测用户对未评价商品的喜好?
用户-物品评分矩阵
矩阵分解思想
核心假设:评分由少数"潜在因子"决定。
例如电影评分可能由以下潜在因子决定: - 动作程度 - 浪漫程度 - 幽默程度 - 深度/艺术性 - ...
每个用户对这些因子有不同偏好,每部电影在这些因子上有不同得分。
SVD 方法:
$$
R U_k _k V_k^T $$ -
Netflix Prize
Netflix 在 2006-2009 年举办百万美元大奖赛: - 任务:预测用户电影评分 - 数据: 1 亿条评分记录 - 目标:比 Netflix 算法准确 10%
获胜方法的核心:矩阵分解( SVD 的变种),处理稀疏数据和隐式反馈。

其他应用
潜在语义分析( LSA)
在自然语言处理中,文档-词项矩阵
LSA:对
信号去噪
模型:观测信号 = 真实信号 + 噪声
如果真实信号是"低秩"的(有结构),而噪声是"满秩"的(随机): - SVD 分解观测信号 - 保留大奇异值(信号) - 丢弃小奇异值(噪声)
人脸识别( Eigenfaces)
将人脸图像集合进行 PCA: - 主成分 = "特征脸"( eigenfaces) - 每张人脸 ≈ 特征脸的线性组合 - 识别:比较系数向量的距离
总结与展望
本章关键要点
SVD 定义:
- :左奇异向量(输出空间正交基) :奇异值(拉伸因子,永远非负) :右奇异向量(输入空间正交基)
几何意义:任何线性变换 = 旋转 + 拉伸 + 旋转
计算方法:
: 的特征向量 : 的特征向量 4. 低秩逼近:- Eckart-Young 定理:
是最佳秩- 逼近 - 应用:数据压缩、降噪
伪逆:
- 处理不可逆和非方阵矩阵- 给出最小二乘解和最小范数解
PCA: SVD 在数据分析中的核心应用
SVD vs 特征分解
| 特性 | 特征分解 | SVD |
|---|---|---|
| 适用矩阵 | 方阵(通常对称) | 任意矩阵 |
| 分解形式 | ||
| 向量 | 特征向量 | 奇异向量 |
| 值 | 特征值(可负/复数) | 奇异值(非负实数) |
| 几何意义 | 不变方向+缩放 | 旋转+拉伸+旋转 |
为什么 SVD 是"皇冠明珠"?
- 普适性:适用于任何矩阵
- 稳定性:数值计算非常稳定
- 最优性:低秩逼近的最优性保证
- 洞察力:揭示矩阵的完整结构
- 应用广泛:从图像压缩到推荐系统
下一章预告
《矩阵范数与条件数》
- 什么是"矩阵的大小"?
- 不同范数的意义和应用
- 条件数:矩阵有多"病态"?
- 数值稳定性分析
- 应用:误差分析、算法设计
理解范数和条件数对数值线性代数至关重要!
练习题
基础概念题
解释为什么奇异值永远是非负实数,而特征值可能是负数或复数。
计算
的 SVD(手工)。证明:
( Frobenius 范数)。为什么
和 有相同的奇异值?给出证明。如果
是 矩阵, 的形状是什么? 和 分别是什么形状?
计算与证明题
证明:
非零奇异值的个数。设
,求其 SVD 和伪逆 。证明 Eckart-Young 定理:
是最佳秩-$ k |A-B|F^2 {k+1}^2 + + _r^2$)逼 近 。 ( 提 示 : 利 用 不 等 式 证明伪逆满足:
是到列空间的投影矩阵, 是到行空间的投影矩阵。若
是正交矩阵,它的奇异值是什么?为什么?
应用题
- 图像压缩实验:选择一张灰度图像,实现 SVD 压缩。
- 画出奇异值衰减曲线
- 比较
时的压缩图像 - 计算每种情况的 PSNR(峰值信噪比)
- PCA 降维:使用 Iris 数据集:
- 对数据进行 PCA
- 画出前两个主成分的散点图,用颜色区分三种花
- 计算前两个主成分解释的方差比例
- 简单推荐系统:创建一个 5 用户× 10
电影的评分矩阵(部分缺失):
- 用 SVD 进行低秩近似(
) - 预测缺失评分
- 讨论结果的合理性
- 用 SVD 进行低秩近似(
- 文本分析:构造一个小型文档-词项矩阵( 5 个文档, 10
个词):
- 计算 SVD
- 解释前两个奇异向量的"语义"
- 计算文档之间的相似度
挑战题
SVD 与 2-范数:证明矩阵的 2-范数(算子范数)等于最大奇异值:
。随机矩阵的奇异值:生成
的随机矩阵(元素独立同分布于 ),画出奇异值分布。与理论预测( Marchenko-Pastur 分布)比较。截断 SVD 的误差界:证明
( 2-范数意义下的误差)。条件数与 SVD:矩阵的条件数定义为
。解释为什么条件数大意味着矩阵"病态",求解 对误差敏感。
参考资料
- Strang, G. (2019). Introduction to Linear
Algebra. 5th ed. Chapter 7.
- SVD 的经典讲解
- Trefethen, L. N., & Bau, D. (1997).
Numerical Linear Algebra. SIAM.
- SVD 的数值计算和应用
- Golub, G. H., & Van Loan, C. F. (2013).
Matrix Computations. 4th ed. Johns Hopkins.
- SVD 算法的权威参考
- Hastie, T., Tibshirani, R., & Friedman, J.
(2009). The Elements of Statistical Learning. Springer.
- PCA 和数据降维
- Koren, Y., Bell, R., & Volinsky, C. (2009).
"Matrix Factorization Techniques for Recommender Systems".
Computer, 42(8).
- Netflix Prize 和推荐系统
- 3Blue1Brown. Essence of Linear Algebra
series. YouTube.
SVD 的优秀可视化
本文是《线性代数的本质与应用》系列的第 9 章,共 18 章。
- 本文标题:线性代数(九)奇异值分解 SVD
- 本文作者:Chen Kai
- 创建时间:2019-02-17 14:45:00
- 本文链接:https://www.chenk.top/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%EF%BC%88%E4%B9%9D%EF%BC%89%E5%A5%87%E5%BC%82%E5%80%BC%E5%88%86%E8%A7%A3SVD/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!