什么是SVD?
SVD(奇异值分解)是线性代数中一种重要的矩阵分解方法,常用于降维、数据压缩和特征提取。其核心思想是将任意矩阵分解为三个特殊矩阵的乘积:A = UΣV*
其中:
- U 是正交矩阵,包含左奇异向量
- Σ 是对角矩阵,对角线元素为奇异值(按降序排列)
- V* 是共轭转置矩阵,包含右奇异向量
SVD的数学原理
分解步骤
- 计算矩阵 $ A^T A $ 的特征值和特征向量
- 奇异值 $ \sigma_i = \sqrt{\lambda_i} $,其中 $ \lambda_i $ 是 $ A^T A $ 的特征值
- 左奇异向量 $ u_i = \frac{A v_i}{\sigma_i} $
- 右奇异向量 $ v_i $ 由 $ A^T A $ 的特征向量得到
奇异值的意义
奇异值反映了矩阵在不同方向上的“重要性”或“影响力”,数值越大表示对应方向的信息越关键。
SVD的典型应用
- 数据压缩:保留最大的奇异值,舍弃较小的以降低存储成本
- 推荐系统:通过用户-物品矩阵的分解挖掘潜在关联(如MovieLens案例)
- 图像处理:用奇异值重构图像,去除噪声(示例:灰度图像压缩)
- 潜在语义分析:在自然语言处理中提取文本特征
示例:2x2矩阵分解
以矩阵 $ A = \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix} $ 为例:
- 计算 $ A^T A = \begin{bmatrix} 10 & 14 \ 14 & 20 \end{bmatrix} $
- 特征值为 $ \lambda_1 = 30.0 $, $ \lambda_2 = 0.0 $
- 奇异值 $ \sigma_1 = \sqrt{30} \approx 5.477 $, $ \sigma_2 = 0 $
- 最终分解结果:
$$ A = U \Sigma V^* = \begin{bmatrix} -0.42 & -0.91 \ -0.91 & 0.42 \end{bmatrix} \begin{bmatrix} 5.477 & 0 \ 0 & 0 \end{bmatrix} \begin{bmatrix} -0.58 & -0.81 \ -0.81 & 0.58 \end{bmatrix} $$
扩展阅读
想要深入了解矩阵分解的其他形式?可以参考本站的矩阵分解专题,对比SVD与特征分解的异同。