【深度学习数学基础:线性代数】5. 矩阵分解:5.6 SVD分解

5. 矩阵分解

5.6 SVD分解

SVD分解是用的最多的

奇异值分解(SVD)的定义与形式

1. 全SVD(Full SVD)

对任意实矩阵 \(\boldsymbol{A}_{m \times n}\)(秩为 \(r\)),可分解为:

\[\boldsymbol{A} = \boldsymbol{U}_{m \times m} \boldsymbol{\Sigma}_{m \times n} \boldsymbol{V}_{n \times n}^\mathrm{T} \]

其中:

  • \(\boldsymbol{U}\)\(m \times m\) 正交矩阵(列向量两两正交且单位化,满足 \(\boldsymbol{U}^\mathrm{T}\boldsymbol{U} = \boldsymbol{I}\) ),其列向量称为 \(\boldsymbol{A}\)左奇异向量
  • \(\boldsymbol{\Sigma}\)\(m \times n\) 对角矩阵,对角元为 \(\boldsymbol{A}\)奇异值 \(\sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r > 0\),其余为 \(0\)(即 \(\boldsymbol{\Sigma} = \text{diag}(\sigma_1, \dots, \sigma_r, 0, \dots, 0)\)diag 表示对角元素构成的矩阵 );
  • \(\boldsymbol{V}\)\(n \times n\) 正交矩阵(列向量两两正交且单位化,满足 \(\boldsymbol{V}^\mathrm{T}\boldsymbol{V} = \boldsymbol{I}\) ),其列向量称为 \(\boldsymbol{A}\)右奇异向量

2. 降阶SVD(Reduced SVD)

\(\boldsymbol{A}\) 的秩为 \(r\),可简化分解形式(更高效):

\[\boldsymbol{A} = \boldsymbol{U}_{m \times r} \boldsymbol{\Sigma}_{r \times r} \boldsymbol{V}_{n \times r}^\mathrm{T} \]

其中:

  • \(\boldsymbol{U}_{m \times r}\):取 \(\boldsymbol{U}\) 的前 \(r\) 列(对应非零奇异值的左奇异向量 );
  • \(\boldsymbol{\Sigma}_{r \times r}\):取 \(\boldsymbol{\Sigma}\) 的前 \(r\) 个非零奇异值构成的对角阵(\(\boldsymbol{\Sigma} = \text{diag}(\sigma_1, \dots, \sigma_r)\) );
  • \(\boldsymbol{V}_{n \times r}\):取 \(\boldsymbol{V}\) 的前 \(r\) 列(对应非零奇异值的右奇异向量 )。

SVD的存在性证明(核心逻辑)

1. 奇异值非负性(由特征值推导)

要证明 \(\boldsymbol{A}\) 的奇异值非负,只需证明 \(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\)(或 \(\boldsymbol{A}\boldsymbol{A}^\mathrm{T}\))的特征值非负:

\(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 的特征值-特征向量对为 \((\lambda, \boldsymbol{x})\),即:

\[\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\boldsymbol{x} = \lambda \boldsymbol{x} \]

两边左乘 \(\boldsymbol{x}^\mathrm{T}\) 得:

\[\boldsymbol{x}^\mathrm{T}\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\boldsymbol{x} = \lambda \boldsymbol{x}^\mathrm{T}\boldsymbol{x} \]

左边等价于 \(\|\boldsymbol{A}\boldsymbol{x}\|^2\)(向量范数的平方),故:

\[\|\boldsymbol{A}\boldsymbol{x}\|^2 = \lambda \|\boldsymbol{x}\|^2 \]

因范数非负,且 \(\|\boldsymbol{x}\|^2 > 0\)(特征向量非零),故 \(\lambda \geq 0\)

因此,\(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 的特征值 \(\lambda_i \geq 0\),取奇异值 \(\sigma_i = \sqrt{\lambda_i}\)(非负)。

2. 构造 \(\boldsymbol{U}\)\(\boldsymbol{\Sigma}\)\(\boldsymbol{V}\)

  • 右奇异向量 \(\boldsymbol{V}\):由 \(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 的特征向量构成(因 \(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 是实对称阵,可谱分解为 \(\boldsymbol{A}^\mathrm{T}\boldsymbol{A} = \boldsymbol{V}\boldsymbol{\Sigma}^2\boldsymbol{V}^\mathrm{T}\) ,其中 \(\boldsymbol{\Sigma}^2 = \text{diag}(\sigma_1^2, \dots, \sigma_r^2)\) );
  • 左奇异向量 \(\boldsymbol{U}\):由 \(\boldsymbol{A}\boldsymbol{A}^\mathrm{T}\) 的特征向量构成,且 \(\boldsymbol{u}_i = \frac{\boldsymbol{A}\boldsymbol{v}_i}{\sigma_i}\)(可验证 \(\boldsymbol{u}_i\) 正交且单位化 );
  • 奇异值矩阵 \(\boldsymbol{\Sigma}\):由 \(\sigma_i = \sqrt{\lambda_i}\) 构成(\(\lambda_i\)\(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 的非零特征值 )。

SVD的不同形式与应用场景

1. 截断SVD(Truncated SVD)

\(\boldsymbol{A}\) 的奇异值满足 \(\sigma_r \gg \sigma_{r+1} \approx 0\),可定义 有效秩 \(k\)(或数值秩),仅保留前 \(k\) 个奇异值及对应向量,分解为:

\[\boldsymbol{A}_k = \boldsymbol{U}_{m \times k} \boldsymbol{\Sigma}_{k \times k} \boldsymbol{V}_{n \times k}^\mathrm{T} \]

\(\boldsymbol{A}_k\) 是与 \(\boldsymbol{A}\) 在Frobenius范数下最接近的秩 \(k\) 矩阵,常用于数据压缩降维(如PCA)。

2. SVD的不唯一性

因特征值可能有重数,调换 \(\boldsymbol{U}\)\(\boldsymbol{V}\) 中对应重数奇异值的列向量位置,可得到不同的SVD分解,但奇异值集合本质不变(仅顺序可能调整 )。

SVD举例验证(以2×3矩阵为例)

设矩阵 \(\boldsymbol{A} = \begin{pmatrix} 3 & 2 & 2 \\ 2 & 3 & -2 \end{pmatrix}\)(秩为2 ),计算:

  1. \(\boldsymbol{A}\boldsymbol{A}^\mathrm{T} = \begin{pmatrix} 17 & 8 \\ 8 & 17 \end{pmatrix}\),其特征值为 \(\lambda_1 = 25, \lambda_2 = 9\),对应奇异值 \(\sigma_1 = 5, \sigma_2 = 3\)
  2. \(\boldsymbol{A}^\mathrm{T}\boldsymbol{A} = \begin{pmatrix} 13 & 12 & 2 \\ 12 & 13 & -2 \\ 2 & -2 & 8 \end{pmatrix}\),其非零特征值也为 \(25, 9\)
  3. 构造左奇异向量 \(\boldsymbol{U}\)\(\boldsymbol{A}\boldsymbol{A}^\mathrm{T}\) 的特征向量单位化):

    \[\boldsymbol{U} = \begin{pmatrix} \dfrac{\sqrt{2}}{2} & \dfrac{\sqrt{2}}{2} \\ \dfrac{\sqrt{2}}{2} & -\dfrac{\sqrt{2}}{2} \end{pmatrix} \]

  4. 构造右奇异向量 \(\boldsymbol{V}\)\(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\) 的特征向量单位化):

    \[\boldsymbol{V} = \begin{pmatrix} \dfrac{\sqrt{2}}{2} & \dfrac{\sqrt{2}}{6} & -\dfrac{2}{3} \\ \dfrac{\sqrt{2}}{2} & -\dfrac{\sqrt{2}}{6} & \dfrac{2}{3} \\ 0 & \dfrac{2\sqrt{2}}{3} & \dfrac{1}{3} \end{pmatrix} \]

  5. 验证SVD:

    \[\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^\mathrm{T} = \begin{pmatrix} \dfrac{\sqrt{2}}{2} & \dfrac{\sqrt{2}}{2} \\ \dfrac{\sqrt{2}}{2} & -\dfrac{\sqrt{2}}{2} \end{pmatrix} \begin{pmatrix} 5 & 0 & 0 \\ 0 & 3 & 0 \end{pmatrix} \begin{pmatrix} \dfrac{\sqrt{2}}{2} & \dfrac{\sqrt{2}}{2} & 0 \\ \dfrac{\sqrt{2}}{6} & -\dfrac{\sqrt{2}}{6} & \dfrac{2\sqrt{2}}{3} \\ -\dfrac{2}{3} & \dfrac{2}{3} & \dfrac{1}{3} \end{pmatrix}^\mathrm{T} = \boldsymbol{A} \]

SVD在PCA中的应用(高效降维)

1. 标准PCA vs SVD版PCA

  • 标准PCA:先求数据集的协方差矩阵 \(\boldsymbol{S} = \frac{1}{N}\sum_{i=1}^N (\boldsymbol{x}_i - \bar{\boldsymbol{x}})(\boldsymbol{x}_i - \bar{\boldsymbol{x}})^\mathrm{T}\),再对 \(\boldsymbol{S}\)谱分解(因 \(\boldsymbol{S}\) 是对称阵,\(\boldsymbol{S} = \boldsymbol{Q}\boldsymbol{\Lambda}\boldsymbol{Q}^\mathrm{T}\) );
  • SVD版PCA:直接对中心化数据矩阵 \(\boldsymbol{\tilde{X}} = \frac{1}{\sqrt{N}} \begin{pmatrix} (\boldsymbol{x}_1 - \bar{\boldsymbol{x}})^\mathrm{T} \\ \vdots \\ (\boldsymbol{x}_N - \bar{\boldsymbol{x}})^\mathrm{T} \end{pmatrix}\) 做SVD:

    \[\boldsymbol{\tilde{X}} = \boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^\mathrm{T} \]

    此时 \(\boldsymbol{\tilde{X}}^\mathrm{T}\boldsymbol{\tilde{X}} = \boldsymbol{S}\),故 \(\boldsymbol{V}\) 等价于 \(\boldsymbol{S}\) 的特征向量矩阵 \(\boldsymbol{Q}\),无需显式计算协方差矩阵。

2. SVD版PCA的优势

  • 避免高维协方差矩阵:直接对 \(\boldsymbol{\tilde{X}}\) 做SVD,节省存储和计算资源(尤其数据维度高时 );
  • 数值稳定性:SVD算法对噪声更鲁棒,避免协方差矩阵计算中的误差累积;
  • 高效性:求奇异向量比求特征向量更高效(大规模矩阵下算法复杂度更低 )。

关键结论

SVD是任意实矩阵的通用分解方法,涵盖特征分解(实对称阵的特殊情况),通过奇异值刻画矩阵的“重要成分”。在降维(PCA)、数据压缩、矩阵近似等领域应用广泛,是线性代数中连接几何意义与实际算法的核心工具。

posted @ 2025-07-10 13:24  秦瑞迁  阅读(533)  评论(0)    收藏  举报