神经网络之奇异值分解

一、矩阵分解的核心思想

矩阵分解(Matrix Factorization)是线性代数中的一个核心思想:

将一个复杂的矩阵分解成若干个结构更简单、性质更好的矩阵的乘积。

形式上,给定一个矩阵
(A∈Rm×n)( A \in \mathbb{R}^{m \times n} )(A∈Rm×n),

矩阵分解的目标是找到若干个矩阵 (B,C,... )( B, C, \dots )(B,C,...),使得

A=BC... A = BC \dots A=BC...

这样做的意义在于:

  • 理解结构:揭示矩阵所代表的线性变换的几何本质;
  • 简化计算:通过分解形式求解方程或逆更方便;
  • 降维与压缩:保留主要信息,去掉冗余噪声;
  • 特征提取:找到数据中最主要的变化方向。

二、常见的矩阵分解类型

分解类型 形式 主要用途
LU分解 (A=LU)( A = LU )(A=LU) 解线性方程、求逆
QR分解 (A=QR)( A = QR )(A=QR) 最小二乘、正交化
特征分解 (A=QΛQ−1)( A = Q \Lambda Q^{-1} )(A=QΛQ−1) 对称矩阵分析
奇异值分解(SVD) (A=UΣVT)( A = U \Sigma V^T )(A=UΣVT) 降维、压缩、模式提取

接下来我们深入讲解 SVD。


三、奇异值分解(Singular Value Decomposition)

1. 定义

对于任意实矩阵 (A∈Rm×n)( A \in \mathbb{R}^{m \times n} )(A∈Rm×n),

总可以分解为:

A=UΣVT A = U \Sigma V^T A=UΣVT

其中:

  • (U∈Rm×m)( U \in \mathbb{R}^{m \times m} )(U∈Rm×m):左奇异向量矩阵(列正交);
  • (V∈Rn×n)( V \in \mathbb{R}^{n \times n} )(V∈Rn×n):右奇异向量矩阵(列正交);
  • (Σ∈Rm×n)( \Sigma \in \mathbb{R}^{m \times n} )(Σ∈Rm×n):对角矩阵,对角线非负,元素为奇异值。

Σ=[σ100⋯ 0σ20⋯ 00⋱ ],σ1≥σ2≥⋯≥0 \Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 & \cdots \ 0 & \sigma_2 & 0 & \cdots \ 0 & 0 & \ddots & \ \end{bmatrix}, \quad \sigma_1 \ge \sigma_2 \ge \dots \ge 0 Σ=[σ100⋯ 0σ20⋯ 00⋱ ],σ1≥σ2≥⋯≥0


2. 几何意义

SVD 可以看作是把矩阵 (A)( A )(A) 的线性变换拆解为三步几何操作:

  1. 右乘 (VT)( V^T )(VT):对输入空间进行旋转或反射,使坐标轴对齐到主要方向;
  2. 乘以 (Σ)( \Sigma )(Σ):沿坐标轴方向进行拉伸或压缩;
  3. 左乘 (U)( U )(U):对输出空间再进行旋转或反射。

所以:

A=UΣVT⟹线性变换=旋转/反射→拉伸→旋转/反射 A = U \Sigma V^T \quad \Longrightarrow \quad \text{线性变换} = \text{旋转/反射} \rightarrow \text{拉伸} \rightarrow \text{旋转/反射} A=UΣVT⟹线性变换=旋转/反射→拉伸→旋转/反射


3. 奇异值与能量

  • 每个奇异值 (σi)( \sigma_i )(σi) 表示矩阵在第 (i)( i )(i) 个主方向上的伸缩比例;
  • 较大的奇异值对应主要的结构信息;
  • 较小的奇异值往往对应噪声或冗余信息;
  • 矩阵的"能量"主要集中在前几个奇异值上。

矩阵的 Frobenius 范数有:
∣A∣F2=∑iσi2 |A|_F^2 = \sum_i \sigma_i^2 ∣A∣F2=i∑σi2


4. 降维与最佳近似

只保留前 (k)( k )(k) 个最大的奇异值及对应的奇异向量,可以得到一个低秩近似矩阵:

Ak=UkΣkVkT A_k = U_k \Sigma_k V_k^T Ak=UkΣkVkT

其中:

  • (Uk∈Rm×k)( U_k \in \mathbb{R}^{m \times k} )(Uk∈Rm×k)
  • (Σk∈Rk×k)( \Sigma_k \in \mathbb{R}^{k \times k} )(Σk∈Rk×k)
  • (Vk∈Rn×k)( V_k \in \mathbb{R}^{n \times k} )(Vk∈Rn×k)

这个近似有一个非常重要的最优性:

(Ak)( A_k )(Ak) 是所有秩为 (k)( k )(k) 的矩阵中距离 (A)( A )(A) 最近的一个(在 Frobenius 范数意义下)

Ak=arg⁡min⁡rank(B)=k∣A−B∣F A_k = \arg\min_{\text{rank}(B)=k} |A - B|_F Ak=argrank(B)=kmin∣A−B∣F

这正是主成分分析(PCA)的数学基础。


5. 与特征分解的关系

对称矩阵 (ATA)( A^T A )(ATA) 可以被特征分解为:

ATA=VΛVT A^T A = V \Lambda V^T ATA=VΛVT

其中 (Λ)( \Lambda )(Λ) 是特征值矩阵。

那么:

σi=λi,U=AVΣ−1 \sigma_i = \sqrt{\lambda_i}, \quad U = A V \Sigma^{-1} σi=λi ,U=AVΣ−1

因此,SVD 是特征分解在一般(非方阵)矩阵上的推广。


四、应用场景

  1. 主成分分析(PCA)

    • 提取数据的主要方向,实现降维;
  2. 推荐系统

    • 用户--物品评分矩阵分解为潜在因子;
  3. 图像压缩

    • 保留最大的奇异值即可实现高质量压缩;
  4. 文本语义分析(LSA)

    • 对共现矩阵做 SVD,提取语义空间;
  5. 噪声过滤

    • 去掉小奇异值对应的高频噪声。

五、总结

概念 含义
分解形式 (A=UΣVT)( A = U \Sigma V^T )(A=UΣVT)
(U,V)(U, V)(U,V) 正交矩阵(旋转或反射)
(Σ)(\Sigma)(Σ) 奇异值矩阵(拉伸尺度)
几何意义 任意线性变换 = 旋转 → 拉伸 → 旋转
应用 降维、压缩、模式识别、特征提取
相关推荐
~~李木子~~2 小时前
五子棋项目Alpha-Beta剪枝与MCTS+神经网络实现人机对弈算法对比报告
神经网络·算法·剪枝
HelloRevit2 小时前
机器学习、深度学习、大模型 是什么关系?
人工智能·深度学习·机器学习
woshihonghonga3 小时前
Dropout提升模型泛化能力【动手学深度学习:PyTorch版 4.6 暂退法】
人工智能·pytorch·python·深度学习·机器学习
机器学习ing.3 小时前
Vision Transformer(ViT)保姆级教程:从原理到CIFAR-10实战(PyTorch)!
人工智能·深度学习·机器学习
NON-JUDGMENTAL4 小时前
指令微调(Instruction Tuning)
人工智能·深度学习·机器学习
西西弗Sisyphus4 小时前
线性代数 - 奇异值分解(SVD Singular Value Decomposition)- 奇异值在哪里
线性代数·矩阵·奇异值分解·线程方程组
小蜜蜂爱编程5 小时前
行列式的展开
线性代数
weixin_421133416 小时前
深度强化学习,用神经网络代替 Q-table
人工智能·深度学习·神经网络
数字化脑洞实验室6 小时前
智能决策算法的核心原理是什么?
人工智能·算法·机器学习