781 字
4 分钟
奇异值和奇异值分解 (Singular Value Decomposition, SVD)
2026-04-22
无标签
  • 特征值研究的是 A:RnRn\mathbf{A}: \mathbb{R}^n \to \mathbb{R}^n。向量在变换后还在原来的空间里。
  • 奇异值研究的是 A:RnRm\mathbf{A}: \mathbb{R}^n \to \mathbb{R}^m。它描述的是把一个空间的向量“搬运”到另一个空间时发生了什么。

定义#

对于任何 m×nm \times n 的矩阵 A\mathbf{A},都可以分解为:

A=UΣVT\mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T
  • V\mathbf{V} (右奇异向量):输入空间的一组标准正交基n×nn \times n 的正交矩阵,是 ATA\mathbf{A}^T\mathbf{A}特征向量矩阵归一化得到,定义了输入空间里对输入数据的“旋转”。
  • Σ\mathbf{\Sigma} (奇异值):和矩阵 AA 同型,对角线上就是奇异值。对角线上元素 σi\sigma_iATA\mathbf{A}^T\mathbf{A} 特征值的平方根,按从大到小排列,对应在 V\mathbf{V} 定义的那些方向上,空间被拉伸了多少倍。
  • U\mathbf{U} (左奇异向量):输出空间的一组标准正交基m×mm \times m 的正交矩阵,是 AAT\mathbf{A}\mathbf{A}^T特征向量矩阵归一化得到,把拉伸后的数据映射到输出空间
NOTE

矩阵 AAnn 个特征值 λ1,λ2,,λn\lambda_1, \lambda_2, \dots, \lambda_n 及其对应的特征向量 v1,v2,,vn\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n,那么把这些向量按列排在一起构成的矩阵 PP,就是特征向量矩阵

TIP

如果 m>nm > n(样本数远大于特征数),Σ\Sigma 矩阵的下半部分全是 00。乘法计算时,这些 00 会抹杀掉 UU 矩阵的后 mnm-n 列。因此,我们可以只取 UU 的前 nn 列,得到一个 m×nm \times n 的矩阵 U~\tilde{U},这样就能保持矩阵乘法的正确性,同时节省计算资源。

几何直观:把球拉成椭球#

想象输入空间里有一个单位球:

旋转:VT\mathbf{V}^T 对球进行旋转,找到最适合拉伸的方向。

拉伸:Σ\mathbf{\Sigma} 在这些方向上进行缩放。原本的单位球变成了椭球。

再旋转:U\mathbf{U} 对拉伸后的椭球进行最后的角度调整。

奇异值 σi\sigma_i 就是这个椭球各个半轴的长度。 如果某个奇异值非常大,说明矩阵在那个方向上的“投影”非常强;如果接近 0,说明那个维度几乎不包含有效信息。

计算方法#

  1. 计算 ATA\mathbf{A}^T\mathbf{A}AAT\mathbf{A}\mathbf{A}^T。然后获得它们的特征值和特征向量。

  2. 特征值的平方根就是奇异值 σi\sigma_i,得到矩阵 Σ\mathbf{\Sigma}

  3. V\mathbf{V} 的列向量就是 ATA\mathbf{A}^T\mathbf{A} 的特征向量归一化

  4. 通过 U=AVΣ1\mathbf{U} = \mathbf{A} \mathbf{V} \mathbf{\Sigma}^{-1} 计算 U\mathbf{U} 的列向量。

注意通过一个来推另一个,因为uv之间有符号关系。(-u,-v也成立,但不能构造svd分解)

对于方阵填充0得到的非方阵#

如果 AA 是一个 n×nn \times n 的方阵,A~\tilde{A} 是通过在 AA 的下方添加 mnm-n 行全零得到的 m×nm \times n 的矩阵,那么 A~\tilde{A} 的奇异值分解可以表示为:

A~=(A0)=(U00Umn)(Σ000)VT\tilde{A} = \begin{pmatrix} A \\ 0 \end{pmatrix} = \begin{pmatrix} U & 0 \\ 0 & U_{m-n} \end{pmatrix} \begin{pmatrix} \Sigma & 0 \\ 0 & 0 \end{pmatrix} V^T

A~=(A0)=U(Σ000)(V00Vmn)T\tilde{A} = \begin{pmatrix} A & 0 \end{pmatrix} = U \begin{pmatrix} \Sigma & 0 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} V & 0 \\ 0 & V_{m-n} \end{pmatrix}^T
奇异值和奇异值分解 (Singular Value Decomposition, SVD)
https://biscuit0613.github.io/posts/lineralgebra/singularandsvd/
作者
Biscuit
发布于
2026-04-22
许可协议
CC BY-NC-SA 4.0