在前面几篇文章中我们已经写下了一系列方程,这些方程从数学上定义了奇异值分解 (SVD) 的各个分量以及它们与输入矩阵 M 的关系。现在,让我们通过一些可视化,使这些导出的分量更加具象化。
图 1:方阵 M 的奇异值分解的 U 、 S 和 V 的可视化,其中 m=n
图 1:方阵 SVD 的“标准形态”(4×4 的例子)
这张图里有 4 个同样大小的热力图,从左到右可以理解为:
① 左一:原始矩阵 A
颜色红/蓝代表正负与大小,这就是你要分解的“混合变换”。
② 左二:U(左奇异向量矩阵)
U 的列向量是一组正交单位基。
它的本质作用:
在输出空间里定义“最舒服的坐标轴”(一组正交方向)
你可以把它当成:把坐标系旋转到某个新方向
性质:
③ 左三:Σ(奇异值矩阵,只有对角线亮)
你会看到大部分格子都接近 0(深蓝),只有对角线上有几个明显的亮块。
这就是 SVD 最“灵魂”的部分:
Σ 只做一件事:沿着某些轴做伸缩(拉伸/压缩)
对角线元素
就是奇异值
性质:
④ 右一:
(右奇异向量的转置)
V 的列向量也是一组正交单位基,但它属于“输入空间”。
它的作用:
在输入空间里先把向量换一套坐标系(旋转/镜像)
你可以理解为:把输入方向对齐到“最容易被拉伸的方向”
性质:
✅图 1 的一句话总结:
A(任意复杂)=U(输出旋转) Σ(轴向缩放)
(输入旋转)
图 2:高矩阵 M 的奇异值分解的 U 、 S 和 V 的可视化,其中 m>n 。
图 2:矩形矩阵的 SVD(“不是方阵也能拆!”)
这张图的关键点是:中间那个 Σ 变成“长方形对角阵”。
你会看到一个高高的深蓝矩阵,里面斜对角有几块亮色方块——这就是:
比如 m>n(高矩阵)时:
Σ 最多只有n个奇异值
也就是说最多只有 min(m,n) 个“有效拉伸方向”
所以矩形矩阵的 SVD 依然成立:
✅图 2 的一句话总结:
矩阵不必是方阵,SVD 仍然能把它拆成“旋转 + 拉伸 + 旋转”,只不过拉伸那一步的 Σ 是长方形。
图 3:宽矩阵 M 的奇异值分解的 U 、 S 和 V 的可视化,其中 m<n 。
图 3:SVD 的“秩”与“信息量”——为什么只亮了几格?
你会注意到:第三张图里有一个 Σ(或类似形态)只亮了很少几个对角块,这在暗示一个超重要事实:
很多矩阵虽然看起来很乱,但真正“有用的结构”只集中在前几个奇异值上。
SVD 有一个等价表达式特别关键:
这句话很炸裂,它说:
每一项
都是一个秩 1 矩阵
是“一个方向 × 另一个方向”的外积
决定这一项的“贡献强弱”
所以你在热力图里看到的效果就是:
第一项(σ1)贡献最大
后面的项越来越小
小到可以忽略,就像图里“几乎没颜色”
✅图 3 的一句话总结:
A 可以看成很多个“秩 1 图案”的叠加,而真正重要的往往只有前几个。
图 4,奇异向量构成正交基
左列显示了对随机矩阵 [m×n]=[10×5] 进行奇异值分解 (SVD) 后得到的 U 和 VT 矩阵。中间列绘制了沿每个矩阵的奇异向量(列)计算的 L2 范数;所有奇异向量的范数均为 1。右列显示了每个矩阵与其自身的内积;该内积为单位矩阵,表明奇异向量的正交性。
图 4:最核心的一张——“完整 SVD” vs “截断 SVD(低秩近似)”
这张图上下两排就是在对比:
上排:完整 SVD
左:原矩阵 A(看起来噪声很多)
中:U 或 V(用“竖条纹”表示它的列向量是正交单位基——每一列长度为 1,彼此垂直)
右:Σ(对角线全亮:表示你保留了全部奇异值)
下排:截断 SVD(只保留前 k 个奇异值)
右下角的只剩前几个亮块,这意味着:
它的含义是:
我只用最强的前 k 个“主方向”
丢掉后面那些弱小的、像噪声一样的方向
⚡这件事有一个世界级结论(SVD 的王炸性质):
是所有秩为 k 的矩阵里,离 A 最近的那个(误差最小)
(不管你用 Frobenius 范数还是 2-范数)
也就是:
✅图 4 的一句话总结:
SVD 不只是分解,它还能做“最优压缩/降噪”,只保留最重要的 k 个模式。
图 5 以可视化的方式展示了图 4 中计算/展示的 SVD 结果的三个属性。
这张图其实是在用可视化把图 4 的 SVD 结果的3 个关键属性“钉死在眼睛里”。我按从上到下、从左到右,把它归纳成 3 点:
①(最上面两张长条热力图)SVD 可以把原矩阵“完全重构”
你看到左上、右上两张几乎一模一样的长方形热力图:
左上:原始矩阵 M
右上:用 SVD 分解再乘回去得到的重构矩阵
它们一致,说明一个事实:
✅SVD 不是近似方法,它首先是一个“精确分解”
只要保留全部奇异值(完整 Σ),就能100%还原原矩阵。
②(中间两张方阵热力图)
与
的“非零谱”相同
中间那两张方阵热力图也是几乎一模一样:
左中:
(输出空间的 Gram/协方差型矩阵)
右中:
(输入空间的 Gram/协方差型矩阵)
它们“谱意义上的等价”是 SVD 的核心桥梁:
✅ 所以结论是:
两者的非零特征值完全相同
并且都等于
这就是为什么:
U 来自
的特征向量
V 来自
的特征向量
Σ 统一管理它们的“强度”(奇异值)
③(最下面两张折线图)奇异值衰减曲线 + “平方关系”被验证
底部两张图分别在讲两个重点:
左下红色折线:奇异值谱(Singular Value Spectrum)
红线明显从大到小下降,说明:
σ1 最大,代表“最主要结构”
越往后越小,代表“次要结构 / 细节 / 噪声”
✅ 这就是低秩近似为什么成立:
只用前 k 个奇异值就能抓住大部分信息:
右下蓝线 vs 黄虚线:两边特征值几乎重合
图例写着:
蓝色:eigs of
黄色虚线:eigs of
两条线几乎重合,视觉上证明了第②点:
✅它们的非零特征值相同
而结合 SVD 的关系就是:
一句话总归纳(这图展示的 SVD 三大属性)
可重构性:完整 SVD 能精确还原矩阵
双 Gram 同谱:
与
共享同一组非零特征值(=
)
能量集中:奇异值快速衰减 → 信息主要集中在前几个 → 低秩近似/压缩/降噪成立
把 SVD 原理“讲透”的一条主线
你可以把 SVD 牢牢记成下面这 5 句话(完全够你吃透它):
1)SVD 是在描述一个线性变换如何扭曲空间
把单位圆(或单位球)经过 A 变换,会变成一个椭圆(或椭球)。
椭球的主轴方向:由 U 给出(输出空间)
椭球主轴长度:由
给出
输入空间对齐主轴的方向:由 V 给出
2)V 给“输入最敏感的方向”,U 给“输出对应的方向”
这句是 SVD 的核心物理意义:
往
方向输入一个单位向量
输出一定落在
方向
长度被放大/缩小
倍
3)奇异值来自特征值:SVD 其实是“把特征分解做到了任意矩阵”
所以:
是
的特征向量
是
的特征向量
是对应特征值
4)SVD = 旋转 + 拉伸 + 再旋转
对任意向量 x:
按步骤读就是:
:把输入坐标系旋转到“主方向坐标系”
:沿各轴拉伸/压缩
:再旋转到输出空间
5)截断 SVD 是“最优低秩近似”,也是 PCA、压缩、去噪的底层
这就是:
图片压缩(只保留主要纹理)
推荐系统矩阵补全
NLP 里的语义空间压缩
PCA 的矩阵版本
图 1~图 3 下面那条带刻度的长条,叫做颜色条 / 色标(colorbar),它的作用是:
把“颜色”翻译成“数值大小”
让你知道热力图里每个格子的颜色到底对应多大、是正还是负。
1)它表示什么数?
热力图里的每一个小格子,对应矩阵里的一个元素 aija_{ij}aij。
颜色条告诉你:
蓝色→ 数值是负数(越蓝越小、越负)
白色→ 数值接近0
红色→ 数值是正数(越红越大、越正)
所以它本质上就是:
(数值)
2)为什么中间通常是白色?
因为很多绘图默认用的是“发散色图”(diverging colormap),把0放在中间:
负数往一边渐变成蓝
正数往另一边渐变成红
这样你能一眼看出“符号”和“强弱”。
3)刻度代表什么?
刻度就是具体数值范围,比如可能会标:
意思是:
如果某个格子颜色接近最蓝端,说明这个元素大约接近-3
接近白色,说明接近0
接近最红端,说明接近+3
4)为什么图 1~图 3 每张都有一条?
因为每张图(每个矩阵)都在用颜色表示数值,
没有 colorbar,你只能看“红蓝分布”,但不知道:
到底最大值是多少?
是不是正负对称?
两幅热力图之间能不能公平比较?
colorbar 就是统一的“数值尺子”。
5)特别关键:同一张图内,colorbar 的范围通常是统一的
比如图 1 的 4 个矩阵()往往共享同一个 colorbar 范围,这样才能直接比较:
A 的元素可能在 [−2,2]
Σ 可能只有对角线比较亮
多数元素在 [−1,1](因为它们是正交矩阵,元素一般不会很大)
所以你看到 U 和很“淡”,并不是它们不重要,而是因为它们数值本来就通常比较小(接近 -1 到 1),但依然在做旋转/镜像。
✅一句话总结:
那条长条就是“颜色—数值对照表”,告诉你红蓝到底代表多少、正负如何分布。