数学随笔 #数学随笔#数学

数学随笔11

Shane Lorien

引用Gilbert老爷子的话:

The Singular Value Decomposition is a highlight of linear algebra.

奇异值分解,形式上是把一个矩阵 写作 ,其中 是正交阵, 是对角阵。一方面看,我们相当于在输入空间和输出空间同时换基得到一个漂亮的对角阵,也就是把线性映射拆成旋转、拉伸、旋转,另一方面,我们展开 也就得到:

我们可以把 拆成若干个秩一矩阵的和,如果我们需要,可以丢掉 也就是奇异值较小的那些矩阵,从而得到一个漂亮的近似,我们可以证明,保留前 大的奇异值对应矩阵,是 的最佳秩 近似,这也就是 定理。


任意矩阵都可以这么分解

我们知道,实对称矩阵可以正交对角化,但一般的矩阵并没有这么好的性质。幸运的是,对称矩阵是易于构造的,Gilbert老爷子说,关于 的问题,往往可以变成 的问题。

做移项,暴露出对角阵:

这时,我们可以把 看成整体,记为 ,也就有 ,这说明 是一个正交阵!因为非对角元是列向量之间的内积都是 ,那么我们可以得到:

是一个正交阵,我们设 于是有:

利用实对称阵的特征值非负, 我们设为 ,那么也就有 ,我们于是可以除以 来构造标准正交基,记 ,于是有:

因为 也是正交阵,两边右乘 就得到了我们想要的形式。 从这里我们也可以看到,SVD中的对角阵由 的特征值开根得到,不难知道同样可以由 的特征值得到,计算上看 的形状我们可以选二者中比较小的那个算,会好算一点(


SVD与四个基本子空间

我们按照 的大小依次排列,让 最大, 最小,这样利用 的非负性我们就知道从第 个奇异值开始 都是 是矩阵的秩。这样我们也就可以看出:

这说明 构成 的零空间,那么前 是后面向量的正交补,说明前面的向量构成 的行空间,类似的做转置我们就知道,前 构成 的列空间,剩下的 构成 的左零空间。SVD直接将 的四个基本子空间暴露在我们眼前。那么再利用 ,我们就得到了行空间和列空间之间的映射,我们可以做一个转置:

然后再右乘 就有:

也就是说,行列空间存在双射。这与他们维度相等吻合。


伪逆快速求解

当一个矩阵 不是方阵,或者它是方阵但不可逆(奇异矩阵)时,我们无法定义标准逆矩阵 。为了解决这个问题,数学家提出了广义逆的概念,其中最常用、最精确的一种叫做 Moore-Penrose 伪逆(通常记作 )。


1. 基于 SVD 的直观定义

这是理解伪逆最简单、最实用的方式。假设矩阵 的奇异值分解为:

那么 的伪逆 定义为:

这里的 是怎么得到的?

  1. 矩阵转置(形状从 变为 )。

  2. 将对角线上所有非零的奇异值取倒数()。

  3. 保持所有的 0 元素不变。


2. 伪逆必须满足的四个条件

一个矩阵 要想成为 的 Moore-Penrose 伪逆,必须严格满足以下四个 Penrose 方程:

  1. **

  2. **

  3. **

容易验证,SVD给出的伪逆符合这四个方程,而且是易求的。 这时,若要解 ,只要两边同乘伪逆就得到了最小二乘解。


主成分分析 (Principal Component Analysis) 定理与证明

1. 定理描述

定理 (Principal Component Analysis):

[!abstract] 物理意义 即在欧氏空间 的所有 维子空间中,点 到主子空间 距离的平方和最小


2. 证明过程

第一步:子空间投影表示

的一个 维子空间, 的一组标准正交基。 记 ,则有

在子空间 上的正交投影:

第二步:勾股定理与目标转化

应用勾股定理后求和:

线

欲使垂线平方和 取最小值,只需让正交投影的平方和取最大,即最大化:

第三步:矩阵迹的化简

利用 Frobenius 范数与迹的关系进行推导:

第四步:约束条件分析

矩阵 ,由

列也由两两正交的单位向量组成。 故 的列组可扩充成 的标准正交基,排成一个正交矩阵。 故 行元素的平方和 满足条件 ,且:

第五步:得出结论

及排序不等式,得:

等号可在 ,即 时取到。

[!important] 唯一性 当 时,等号仅在 取到,此时 维主子空间唯一。

矩阵的最佳低秩逼近 (Best Low-Rank Approximation)

1. 定理描述

是实矩阵 SVD 分解

其中:

  • 分别是 级和 级正交矩阵。
  • 是矩阵 的秩 ()。
  • 的奇异值。

,定义:

[!tip] 核心结论 在秩 下的最佳逼近: 即对任意秩为 的矩阵 ,有:


2. 相关定义:Frobenius 范数

这里 表示实矩阵 Frobenius 范数


3. 证明要点

。 设 () 表示 的列空间。

  1. 距离不等式

其中 表示向量 到子空间 的欧氏距离。

  1. 目标函数转化

根据 PCA 定理

  1. 取等条件

    • 这里 列向量分布的主子空间。
    • 上式中的等号可在 时取到。
    • 此时 的列向量 刚好是 维主子空间 上的正交投影。
  2. 最终结果

    • *

这些结果可以用于图片压缩,将图片转化为灰度矩阵后保留其前 大的奇异值,就达到了压缩图片的效果。以下是一个python利用奇异值分解实现图片压缩的代码:

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()