手机照片太大,能不能只保留主要结构?
把一张灰度照片看成数字表:每个数字表示一个像素的亮度。若某个小块的两行是 和 ,第二行只是第一行的两倍,只要存一行再存一个倍数,就能恢复整块。
现实照片不会如此完美,但常有近似重复的纹理与明暗。SVD 把图片拆成一层层简单的横竖模式,并按照贡献大小排列。保留主要层,文件可变小;丢掉细层,会损失纹理和边缘。
下面会算清楚“主要”指什么:奇异值衡量这些模式的伸缩大小,截断后的误差能用被丢弃的奇异值定量表达。它不是“压缩后肯定看不出来”,而是有一笔可计算的信息损失。
先把一个图片块拆成秩一层
对两行 与 组成的矩阵,有
左边六个像素值由一根竖向变化模式与一根横向变化模式相乘生成。这叫秩一层。一般图片是许多这样的层叠加,SVD 找的是一组彼此正交、按大小排序的层。
先不要纠结压缩文件格式;这里只比较线性代数意义上的近似。真正图片编码还涉及量化、边界、色彩与编码开销。
SVD 与特征分解的关键不同
特征向量要求输入输出仍沿同一个方向,因此只能比较同一个空间中的方向。SVD 允许输入方向 经过机器后变成另一个输出方向 ,只要求不同模式的输出互相正交。
这让它能处理非方阵,例如 100 个输入特征变成 3 个输出读数。式子 在说“这一根输入轴被送到哪一根输出轴,以及放大几倍”,并不要求 。
用能量账决定保留几层
假设某图像矩阵的奇异值是 10、3、1。总平方能量为 。只留第一层,丢掉的平方误差为 10;保留前两层,平方误差只剩 1。
因此前两层保留了 的 Frobenius 能量。但这不保证任何人眼判断或分类任务都只损失 :平方像素误差是这里明确优化的标准,任务意义需要另行评估。
PCA 里为什么先减均值
假设所有人的身高体重都围绕某个大均值波动。不减均值时,最大的方向可能主要指向“整体离坐标原点有多远”;减去均值后,才是在研究人群内部怎样变化。
对中心化数据,沿单位方向 的投影方差与 成比例。要让它最大,选 最大特征值的方向,也就是 最大奇异值对应的右奇异向量。PCA 不是凭经验选一条斜线,而是一个带约束的最大方差问题。
带你做:用奇异值判断压缩代价
设矩阵奇异值为 8、4、2、1。总 Frobenius 平方能量是 。只留两层,遗漏平方误差为 5,保留能量比例为 。
若要求保留至少 99% 能量,前三层保留 ,仍不够,所以这份要求迫使你全部保留。不能看到“前三层已经很大”就随意声称达到 99%。
而二范数误差看最大的遗漏奇异值:留两层时为 2,留三层时为 1。它关心最坏输入方向的输出误差,Frobenius 范数关心全部矩阵条目的平方误差;两个指标在回答不同问题。
最后再问应用:如果最小层刚好包含文字笔画,能量比例很高的压缩仍可能影响阅读。数学最优始终相对于指定损失而言,不自动替代实际任务验收。
回头整理:定义、工具与练习
一个圆为什么会变成椭圆
一般矩阵可能没有足够特征向量,但总能找到一套输入正交方向,使各方向的输出相互正交。单位圆或球便被变成椭圆或椭球,其半轴长度就是奇异值。
对任意实矩阵 ,存在
其中 正交, 为矩形对角阵,对角元 。从右向左读:用 的方向读取输入,按奇异值伸缩,再用 的方向输出。
与特征值的关系
对称半正定,特征值为 。若 且 ,令 ,则这些 正交,且
为秩。每一项是秩一变换:先读出一个输入坐标,再沿一个输出方向放置结果。
丢弃小奇异值
保留前 项得 。Eckart–Young 定理给出:它是二范数和 Frobenius 范数下的最佳秩至多 近似,并且
这为图像压缩提供误差量化。不过小奇异值对应的方向也可能携带任务相关信息,“能量小”不等于“任何任务都不重要”。
PCA 是数据的正交投影
设数据矩阵 每行是样本,并且每列已经减去均值。样本协方差矩阵为 ()。它的主要特征向量也就是 的主要右奇异向量。
最大化投影方差等价于在固定维数下最小化重构平方误差。中心化很关键:未经中心化的 SVD 也合法,但其主方向未必是围绕均值的最大方差方向。
例题与练习
的奇异值为 3 和 1。最佳秩一近似为 ,二范数误差为 1。
- 的奇异值是否含负数?
- 为何矩阵二范数等于最大奇异值?
- 只有一个非零奇异值说明什么?
解答:1. 不含,仍为 3、1,符号进入左右方向。2. 正交变换保持长度,对角伸缩的最大比例为 。3. 矩阵秩为 1,所有输出都落在同一条直线上。