数学基础 -- 线性代数之奇异值

奇异值与其应用

1. 奇异值定义

对于任意的矩阵 A A A(可以是方阵或非方阵),存在三个矩阵 U U U、 Σ \Sigma Σ 和 V V V,使得:
A = U Σ V T A = U \Sigma V^T A=UΣVT

其中:

  • U U U 是一个 m × m m \times m m×m 的正交矩阵,表示左奇异向量;
  • V V V 是一个 n × n n \times n n×n 的正交矩阵,表示右奇异向量;
  • Σ \Sigma Σ 是一个 m × n m \times n m×n 的对角矩阵,其中对角线上的元素为奇异值。

2. 奇异值的性质

  1. 非负性 :奇异值始终为非负数,即对角矩阵 Σ \Sigma Σ 的对角元素均为非负。
  2. 奇异值的数量 :对于一个 m × n m \times n m×n 的矩阵 A A A,最多有 min ⁡ ( m , n ) \min(m, n) min(m,n) 个奇异值。
  3. 矩阵的秩 :矩阵 A A A 的秩等于其非零奇异值的数量。
  4. 特征值与奇异值的关系 :方阵 A A A 的奇异值是矩阵 A T A A^T A ATA 的特征值的平方根。
  5. 不变性:奇异值是矩阵的固有属性,与矩阵的旋转或变换无关。

2.1 奇异值分解的示例

为了更好地理解奇异值分解的具体过程和应用,我们通过一个简单的例子展示如何进行奇异值分解。

示例矩阵

考虑一个 3 × 2 3 \times 2 3×2 的矩阵 A A A:
A = ( 1 0 0 1 1 1 ) A = \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{pmatrix} A= 101011

我们将对这个矩阵进行奇异值分解。

1. 计算 A T A A^T A ATA

首先,我们计算矩阵 A T A A^T A ATA:
A T A = ( 1 0 1 0 1 1 ) ( 1 0 0 1 1 1 ) = ( 2 1 1 2 ) A^T A = \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{pmatrix} \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{pmatrix} = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix} ATA=(100111) 101011 =(2112)

2. 求 A T A A^T A ATA 的特征值和特征向量

接下来,我们求矩阵 A T A A^T A ATA 的特征值和特征向量。先写出特征方程:
det ⁡ ( A T A − λ I ) = det ⁡ ( 2 − λ 1 1 2 − λ ) = ( 2 − λ ) 2 − 1 = λ 2 − 4 λ + 3 = 0 \det(A^T A - \lambda I) = \det\begin{pmatrix} 2 - \lambda & 1 \\ 1 & 2 - \lambda \end{pmatrix} = (2 - \lambda)^2 - 1 = \lambda^2 - 4\lambda + 3 = 0 det(ATA−λI)=det(2−λ112−λ)=(2−λ)2−1=λ2−4λ+3=0

解得特征值为:
λ 1 = 3 , λ 2 = 1 \lambda_1 = 3, \quad \lambda_2 = 1 λ1=3,λ2=1

对于 λ 1 = 3 \lambda_1 = 3 λ1=3,解特征方程 ( A T A − 3 I ) v = 0 (A^T A - 3I)v = 0 (ATA−3I)v=0 得到特征向量:
v 1 = 1 2 ( 1 1 ) v_1 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} v1=2 1(11)

对于 λ 2 = 1 \lambda_2 = 1 λ2=1,解 ( A T A − I ) v = 0 (A^T A - I)v = 0 (ATA−I)v=0 得到特征向量:
v 2 = 1 2 ( 1 − 1 ) v_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} v2=2 1(1−1)

因此,矩阵 V V V 的列向量是特征向量:
V = ( 1 2 1 2 1 2 − 1 2 ) V = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} V=(2 12 12 1−2 1)

3. 计算奇异值

奇异值是 A T A A^T A ATA 的特征值的平方根,因此:
σ 1 = 3 , σ 2 = 1 = 1 \sigma_1 = \sqrt{3}, \quad \sigma_2 = \sqrt{1} = 1 σ1=3 ,σ2=1 =1

因此,矩阵 Σ \Sigma Σ 为:
Σ = ( 3 0 0 1 0 0 ) \Sigma = \begin{pmatrix} \sqrt{3} & 0 \\ 0 & 1 \\ 0 & 0 \end{pmatrix} Σ= 3 00010

4. 计算 U U U

矩阵 U U U 的列向量是矩阵 A A A 的左奇异向量,左奇异向量通过公式 A v i = σ i u i A v_i = \sigma_i u_i Avi=σiui 计算。

对于 σ 1 = 3 \sigma_1 = \sqrt{3} σ1=3 ,我们有:
A ( 1 2 1 2 ) = ( 1 1 2 ) , u 1 = 1 6 ( 1 1 2 ) A \begin{pmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \\ 2 \end{pmatrix}, \quad u_1 = \frac{1}{\sqrt{6}} \begin{pmatrix} 1 \\ 1 \\ 2 \end{pmatrix} A(2 12 1)= 112 ,u1=6 1 112

对于 σ 2 = 1 \sigma_2 = 1 σ2=1,我们有:
A ( 1 2 − 1 2 ) = ( 1 − 1 0 ) , u 2 = 1 2 ( 1 − 1 0 ) A \begin{pmatrix} \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1 \\ -1 \\ 0 \end{pmatrix}, \quad u_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \\ 0 \end{pmatrix} A(2 1−2 1)= 1−10 ,u2=2 1 1−10

因此,矩阵 U U U 为:
U = ( 1 6 1 2 1 6 − 1 2 2 6 0 ) U = \begin{pmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}} \\ \frac{2}{\sqrt{6}} & 0 \end{pmatrix} U= 6 16 16 22 1−2 10

5. 奇异值分解结果

最终,矩阵 A A A 的奇异值分解为:
A = U Σ V T A = U \Sigma V^T A=UΣVT

其中:
U = ( 1 6 1 2 1 6 − 1 2 2 6 0 ) , Σ = ( 3 0 0 1 0 0 ) , V T = ( 1 2 1 2 1 2 − 1 2 ) U = \begin{pmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}} \\ \frac{2}{\sqrt{6}} & 0 \end{pmatrix}, \quad \Sigma = \begin{pmatrix} \sqrt{3} & 0 \\ 0 & 1 \\ 0 & 0 \end{pmatrix}, \quad V^T = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} U= 6 16 16 22 1−2 10 ,Σ= 3 00010 ,VT=(2 12 12 1−2 1)


3. 奇异值分解的应用

3.1 数据降维与压缩

奇异值分解可用于数据降维,特别是在图像处理或主成分分析(PCA)中,通过保留最大的奇异值,能够有效减少数据量,同时保留数据的主要信息。

3.2 最小二乘问题

在解超定方程或病态方程时,奇异值分解能够提供稳定的最小二乘解。通过分解矩阵 A A A 为奇异值分解形式 A = U Σ V T A = U \Sigma V^T A=UΣVT,我们可以稳定地求解方程组。


例子:奇异值分解在数据压缩中的应用

1. 问题描述

假设我们有一张大小为 100 × 100 100 \times 100 100×100 的灰度图像,用一个矩阵 A A A 表示,每个元素表示像素的亮度值。我们希望通过奇异值分解对这张图像进行压缩。

2. 奇异值分解

对矩阵 A A A 进行奇异值分解,得到:
A = U Σ V T A = U \Sigma V^T A=UΣVT

其中:

  • U U U 是 100 × 100 100 \times 100 100×100 的矩阵;
  • Σ \Sigma Σ 是 100 × 100 100 \times 100 100×100 的对角矩阵,包含奇异值;
  • V T V^T VT 是 100 × 100 100 \times 100 100×100 的矩阵。

3. 压缩过程

我们只保留最大的 k = 20 k = 20 k=20 个奇异值,构造近似矩阵 A k A_k Ak:
A k = U k Σ k V k T A_k = U_k \Sigma_k V_k^T Ak=UkΣkVkT

其中:

  • U k U_k Uk 是 100 × 20 100 \times 20 100×20 的矩阵;
  • Σ k \Sigma_k Σk 是 20 × 20 20 \times 20 20×20 的对角矩阵;
  • V k T V_k^T VkT 是 20 × 100 20 \times 100 20×100 的矩阵。

经过压缩后,总数据量从原来的 10,000 个数据点减少到 6400 个数据点。


例子:奇异值分解在最小二乘问题中的应用

1. 问题描述

我们要解一个线性方程组:
A x = b A x = b Ax=b

其中 A A A 是一个 3 × 2 3 \times 2 3×2 的矩阵, b b b 是一个 3 × 1 3 \times 1 3×1 的已知向量。

矩阵 A A A 和向量 b b b 如下:
A = ( 1 0 0 1 1 1 ) , b = ( 2 2 4 ) A = \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{pmatrix}, \quad b = \begin{pmatrix} 2 \\ 2 \\ 4 \end{pmatrix} A= 101011 ,b= 224

2. 奇异值分解求解最小二乘问题

我们首先对 A A A 进行奇异值分解:
A = U Σ V T A = U \Sigma V^T A=UΣVT

通过计算得到:
U = ( − 0.577 0.707 − 0.577 − 0.707 − 0.577 0.000 ) , Σ = ( 1.732 0 0 1 ) , V T = ( − 0.707 − 0.707 0.707 − 0.707 ) U = \begin{pmatrix} -0.577 & 0.707 \\ -0.577 & -0.707 \\ -0.577 & 0.000 \end{pmatrix}, \quad \Sigma = \begin{pmatrix} 1.732 & 0 \\ 0 & 1 \end{pmatrix}, \quad V^T = \begin{pmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{pmatrix} U= −0.577−0.577−0.5770.707−0.7070.000 ,Σ=(1.732001),VT=(−0.7070.707−0.707−0.707)

2.1 计算 U T b U^T b UTb

U T b = ( − 0.577 − 0.577 − 0.577 0.707 − 0.707 0 ) ( 2 2 4 ) = ( − 4.618 1.414 ) U^T b = \begin{pmatrix} -0.577 & -0.577 & -0.577 \\ 0.707 & -0.707 & 0 \end{pmatrix} \begin{pmatrix} 2 \\ 2 \\ 4 \end{pmatrix} = \begin{pmatrix} -4.618 \\ 1.414 \end{pmatrix} UTb=(−0.5770.707−0.577−0.707−0.5770) 224 =(−4.6181.414)

2.2 解 Σ y = U T b \Sigma y = U^T b Σy=UTb

Σ y = ( 1.732 0 0 1 ) ( y 1 y 2 ) = ( − 4.618 1.414 ) \Sigma y = \begin{pmatrix} 1.732 & 0 \\ 0 & 1 \end{pmatrix} \begin{pmatrix} y_1 \\ y_2 \end{pmatrix} = \begin{pmatrix} -4.618 \\ 1.414 \end{pmatrix} Σy=(1.732001)(y1y2)=(−4.6181.414)

解得:
y 1 = − 2.666 , y 2 = 1.414 y_1 = -2.666, \quad y_2 = 1.414 y1=−2.666,y2=1.414

2.3 计算 x = V y x = V y x=Vy

x = V y = ( − 0.707 − 0.707 0.707 − 0.707 ) ( − 2.666 1.414 ) = ( 2 1 ) x = V y = \begin{pmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{pmatrix} \begin{pmatrix} -2.666 \\ 1.414 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \end{pmatrix} x=Vy=(−0.7070.707−0.707−0.707)(−2.6661.414)=(21)

因此,最小二乘解为 x = ( 2 1 ) x = \begin{pmatrix} 2 \\ 1 \end{pmatrix} x=(21)。


总结

奇异值分解在数据压缩和最小二乘问题中有广泛的应用。在数据压缩中,通过保留最大的奇异值,我们可以有效减少数据量,压缩图片或信号;在最小二乘问题中,SVD 提供了数值稳定的解法,特别适用于病态或超定方程组。

相关推荐
Navicat中国1 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI1 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区1 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris3 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy3 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V3 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI4 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技4 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据4 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
冬奇Lab4 小时前
开源项目第242期:HyperFrames —— 写 HTML 就能渲染视频,专为 AI Agent 设计的确定性视频框架
人工智能·开源·音视频开发