神经网络之奇异值分解

一、矩阵分解的核心思想

矩阵分解(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)(Σ) 奇异值矩阵(拉伸尺度)
几何意义 任意线性变换 = 旋转 → 拉伸 → 旋转
应用 降维、压缩、模式识别、特征提取
相关推荐
yLDeveloper6 小时前
一只菜鸟学机器学习的日记:入门分布偏移
机器学习·dive into deep learning
强化学习与机器人控制仿真7 小时前
RSL-RL:开源人形机器人强化学习控制研究库
开发语言·人工智能·stm32·神经网络·机器人·强化学习·模仿学习
xier_ran11 小时前
深度学习:生成对抗网络(GAN)详解
人工智能·深度学习·机器学习·gan
海边夕阳200611 小时前
【每天一个AI小知识】:什么是循环神经网络?
人工智能·经验分享·rnn·深度学习·神经网络·机器学习
Salt_072812 小时前
DAY 19 数组的常见操作和形状
人工智能·python·机器学习
智能交通技术14 小时前
iTSTech:自动驾驶技术综述报告 2025
人工智能·机器学习·自动驾驶
大佬,救命!!!17 小时前
更换适配python版本直接进行机器学习深度学习等相关环境配置(非仿真环境)
人工智能·python·深度学习·机器学习·学习笔记·详细配置
passxgx17 小时前
11.1 高斯消元法的应用
线性代数·矩阵
yLDeveloper19 小时前
致深度学习小白:一文理解拟合问题与经典解决方案
机器学习·dive into deep learning
6***x5451 天前
C在机器学习中的ML.NET应用
人工智能·机器学习