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

奇异值与其应用

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 提供了数值稳定的解法,特别适用于病态或超定方程组。

相关推荐
泰迪智能科技0134 分钟前
高校深度学习视觉应用平台产品介绍
人工智能·深度学习
盛派网络小助手1 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Eric.Lee20211 小时前
Paddle OCR 中英文检测识别 - python 实现
人工智能·opencv·计算机视觉·ocr检测
cd_farsight1 小时前
nlp初学者怎么入门?需要学习哪些?
人工智能·自然语言处理
AI明说2 小时前
评估大语言模型在药物基因组学问答任务中的表现:PGxQA
人工智能·语言模型·自然语言处理·数智药师·数智药学
Focus_Liu2 小时前
NLP-UIE(Universal Information Extraction)
人工智能·自然语言处理
PowerBI学谦2 小时前
使用copilot轻松将电子邮件转为高效会议
人工智能·copilot
audyxiao0012 小时前
AI一周重要会议和活动概览
人工智能·计算机视觉·数据挖掘·多模态
Jeremy_lf2 小时前
【生成模型之三】ControlNet & Latent Diffusion Models论文详解
人工智能·深度学习·stable diffusion·aigc·扩散模型