数学随笔11
引用Gilbert老爷子的话:
The Singular Value Decomposition is a highlight of linear algebra.
奇异值分解,形式上是把一个矩阵
我们可以把
任意矩阵都可以这么分解
我们知道,实对称矩阵可以正交对角化,但一般的矩阵并没有这么好的性质。幸运的是,对称矩阵是易于构造的,Gilbert老爷子说,关于
做移项,暴露出对角阵:
这时,我们可以把
是一个正交阵,我们设
利用实对称阵的特征值非负,
因为
SVD与四个基本子空间
我们按照
这说明
然后再右乘
也就是说,行列空间存在双射。这与他们维度相等吻合。
伪逆快速求解
当一个矩阵
1. 基于 SVD 的直观定义
这是理解伪逆最简单、最实用的方式。假设矩阵
那么
这里的
-
将
矩阵转置(形状从 变为 )。 -
将对角线上所有非零的奇异值取倒数(
)。 -
保持所有的 0 元素不变。
2. 伪逆必须满足的四个条件
一个矩阵
-
**
-
**
-
**
-
容易验证,SVD给出的伪逆符合这四个方程,而且是易求的。
这时,若要解
主成分分析 (Principal Component Analysis) 定理与证明
1. 定理描述
定理 (Principal Component Analysis):
[!abstract] 物理意义 即在欧氏空间
的所有 维子空间中,点 到主子空间 的距离的平方和最小。
2. 证明过程
第一步:子空间投影表示
设
第二步:勾股定理与目标转化
对
欲使垂线平方和
第三步:矩阵迹的化简
利用 Frobenius 范数与迹的关系进行推导:
第四步:约束条件分析
记
知
第五步:得出结论
由
等号可在
[!important] 唯一性 当
时,等号仅在 取到,此时 维主子空间唯一。
矩阵的最佳低秩逼近 (Best Low-Rank Approximation)
1. 定理描述
设
其中:
分别是 级和 级正交矩阵。 是矩阵 的秩 ( )。 是 的奇异值。
记
[!tip] 核心结论
是 在秩 下的最佳逼近: 即对任意秩为 的矩阵 ,有:
2. 相关定义:Frobenius 范数
这里
3. 证明要点
记
- 距离不等式:
其中
- 目标函数转化:
根据 PCA 定理:
-
取等条件:
- 这里
是 列向量分布的主子空间。 - 上式中的等号可在
时取到。 - 此时
的列向量 刚好是 在 维主子空间 上的正交投影。
- 这里
-
最终结果:
*
这些结果可以用于图片压缩,将图片转化为灰度矩阵后保留其前
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
# 1. 加载图片并转换为灰度矩阵
img = Image.open('C:/Users/32372/Desktop/wallpaper/【哲风壁纸】三体-智子.png').convert('L')
A = np.array(img)
# 2. 进行奇异值分解
U, s, Vt = np.linalg.svd(A)
# 3. 取前 k 个奇异值进行重构
def reconstruct(k):
# s 是一个一维向量,需要构建成 Sigma 矩阵
Sigma_k = np.diag(s[:k])
# 矩阵相乘:U_k * Sigma_k * V^T_k
A_k = U[:, :k] @ Sigma_k @ Vt[:k, :]
return A_k
# 4. 可视化对比
plt.figure(figsize=(12, 4))
for i, k in enumerate([5, 20, 100]):
plt.subplot(1, 3, i+1)
plt.imshow(reconstruct(k), cmap='gray')
plt.title(f'Top {k} Singular Values')
plt.show()