奇异值分解再探

知识回顾

假设有 m×nm\times n 阶实矩阵 A\boldsymbol{A},

rank(A)=rmax{m,n} {\rm rank}(\boldsymbol{A}) = r \leq \max\{m, n \}

  • 列向量 Gram 矩阵可正交对角化(包括单位化)
ATA=VT[σ_12000σ_22000σn2]V \boldsymbol{A}^{\mathsf T}\boldsymbol{A} = V^{\mathsf T}\begin{bmatrix} \sigma\_1^2 & 0 & \cdots & 0 \\\\ 0 & \sigma\_2^2 & \cdots & 0 \\\\ \vdots & \vdots & \ddots & \vdots \\\\ 0 & 0 & \vdots & \sigma_n^2 \end{bmatrix}V
  • 行向量 Gram 矩阵可正交对角化(包括单位化)
AAT=UT[σ_12000σ_22000σm2]U \boldsymbol{A}\boldsymbol{A}^{\mathsf T}= U^{\mathsf T}\begin{bmatrix} \sigma\_1^2 & 0 & \cdots & 0 \\\\ 0 & \sigma\_2^2 & \cdots & 0 \\\\ \vdots & \vdots & \ddots & \vdots \\\\ 0 & 0 & \vdots & \sigma_m^2 \end{bmatrix}U

其中, 不妨假设

σ_1σ_2σr>0\sigma\_1 \geq \sigma\_2 \geq \cdots \sigma_r > 0

并且,

σ_r+1==σk=0\sigma\_{r+1} = \cdots = \sigma_k = 0

其中, k=max{m,n}k = \max\{m , n\}


另外, 实矩阵 A\boldsymbol{A} 还满足:

{Av_i=σ_iu_i,i=1,,rAv_i=0,i=r+1,,nATu_j=σ_jv_j,j=1,,rATuj=0,j=r+1,,m \begin{cases} \boldsymbol{A}\mathbf{v}\_i =\sigma\_i\mathbf{u}\_i, & i=1, \cdots, r \\\\[3pt] \boldsymbol{A}\mathbf{v}\_i =0, &i=r+1, \cdots, n \\\\[3pt] \boldsymbol{A}^{\mathsf T}\mathbf{u}\_j=\sigma\_j\mathbf{v}\_j, &j=1, \cdots, r \\\\[3pt] \boldsymbol{A}^{\mathsf T}\mathbf{u}_j=0, &j=r+1, \cdots, m \end{cases}
  • {v_1,,v_r}\{ \mathbf{v}\_{1}, \cdots, \mathbf{v}\_r \} 是行空间 C(AT)C(\boldsymbol{A}^{\mathsf T}) 的正交基底;
  • {v_r+1,,v_n}\{ \mathbf{v}\_{r+1}, \cdots, \mathbf{v}\_n \} 是零空间 N(A)N(\boldsymbol{A}) 的正交基底;
  • {u_1,ur}\{ \mathbf{u}\_1, \cdots \mathbf{u}_r \} 是列空间 C(A)C(\boldsymbol{A}) 的正交基底;
  • {u_r+1,um}\{ \mathbf{u}\_{r+1}, \cdots \mathbf{u}_m \} 是左零空间 N(AT)N(\boldsymbol{A}^{\mathsf T}) 的正交基底.

接下来的任务是证明:

A=UΣVT \boldsymbol{A} = U\Sigma V^{\mathsf T}

其中, UUVV 分别是 mm 阶和 nn 阶的正交矩阵, Σ\Sigmam×nm\times n 阶的对角矩阵.

正交基底
正交基底

证明

首先, Σ\Sigmam×nm\times n 阶的对角矩阵?

问题来了: 对角矩阵不是方阵吗?

Σ=[σ1Zr,nrσrZmr,rZmr,nr] \Sigma = \left[ \begin{array}{ccc|c} \sigma_1&& &\\\\ &\ddots&& Z_{r, n-r}\\\\ &&\sigma_r &\\\\ \hline &Z_{m-r, r}& & Z_{m-r, n-r} \end{array} \right]

其中, ZZ 表示零矩阵(Zero matrix).

利用分块矩阵:

AV=A[v_1,,v_r,v_r+1,,v_n]=[Av_1,,Av_r,Av_r+1,,Av_n]=[σ_1u_1,,σ_ru_r,0,,0]=[u_1,,u_m][σ_1Zr,nrσ_rZ_mr,rZmr,nr]=UΣ \begin{aligned} \boldsymbol{A}V &= \boldsymbol{A}[\mathbf{v}\_1, \cdots, \mathbf{v}\_r, \mathbf{v}\_{r+1}, \cdots, \mathbf{v}\_n] \\\\[3pt] & = [\boldsymbol{A}\mathbf{v}\_1, \cdots, \boldsymbol{A}\mathbf{v}\_r, \boldsymbol{A}\mathbf{v}\_{r+1}, \cdots, \boldsymbol{A}\mathbf{v}\_n] \\\\[3pt] & = [\sigma\_1\mathbf{u}\_1, \cdots, \sigma\_r\mathbf{u}\_r, 0, \cdots, 0] \\\\[3pt] & = [\mathbf{u}\_1, \cdots, \mathbf{u}\_m] \left[ \begin{array}{ccc|c} \sigma\_1&& &\\\\ &\ddots&& Z_{r, n-r}\\\\ &&\sigma\_r &\\\\ \hline &Z\_{m-r, r}& & Z_{m-r, n-r} \end{array} \right] \\\\[3pt] & = U \Sigma \end{aligned}

因为 VV 是正交矩阵, 所以

A=UΣV1=UΣVT \boldsymbol{A} = U\Sigma V^{-1} = U\Sigma V^{\mathsf T}

验证

  • 列向量 Gram 矩阵
ATA=(UΣVT)TUΣVT=VΣT(UTU)ΣVT=V(ΣTΣ)VT \begin{aligned} \boldsymbol{A}^{\mathsf T}\boldsymbol{A} &= (U\Sigma V^{\mathsf T})^{\mathsf T}U\Sigma V^{\mathsf T} \\\\[3pt] & = V\Sigma^{\mathsf T} (U^{\mathsf T}U) \Sigma V^{\mathsf T} \\\\[3pt] & = V(\Sigma^{\mathsf T}\Sigma) V^{\mathsf T} \end{aligned}
  • 行向量 Gram 矩阵
AAT=UΣVT(UΣVT)T=UΣ(VTV)ΣTUT=U(ΣTΣ)UT \begin{aligned} \boldsymbol{A}\boldsymbol{A}^{\mathsf T} &= U\Sigma V^{\mathsf T}(U\Sigma V^{\mathsf T})^{\mathsf T} \\\\[3pt] & = U\Sigma (V^{\mathsf T}V)\Sigma^{\mathsf T}U^{\mathsf T} \\\\[3pt] & = U(\Sigma^{\mathsf T}\Sigma) U^{\mathsf T} \end{aligned}

与上述结果一致.

化简

通常把 UU 写成列向量的形式, 把 VV 写成行向量的形式, 即

A=[u_1,,u_r,u_r+1,,u_m][σ_1Z_r,nrσ_rZ_mr,rZ_mr,nr][v_1Tv_rTv_r+1Tv_nT] \begin{aligned} \boldsymbol{A} & = [u\_1, \cdots, u\_r, u\_{r+1}, \cdots, u\_m] \\\\[3pt] & \quad \left[ \begin{array}{ccc|c} \sigma\_1&& &\\\\ &\ddots&& Z\_{r, n-r}\\\\ &&\sigma\_r &\\\\ \hline &Z\_{m-r, r}& & Z\_{m-r, n-r} \end{array} \right] \begin{bmatrix} v\_1^{\mathsf T} \\\\ \vdots \\\\ v\_r^{\mathsf T} \\\\ v\_{r+1}^{\mathsf T} \\\\ \vdots \\\\ v\_n^{\mathsf T} \end{bmatrix} \end{aligned}

分块运算得:

A=[u1,,ur][σ1000σ2000σr][v1TvrT] \boldsymbol{A} = [u_1, \cdots, u_r] \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 \\\\ 0 & \sigma_2 & \cdots & 0 \\\\ \vdots & \vdots & \ddots & \vdots \\\\ 0 & 0 & \vdots & \sigma_r \end{bmatrix} \begin{bmatrix} v_1^{\mathsf T} \\\\ \vdots \\\\ v_r^{\mathsf T} \end{bmatrix}

也就是说: 任意秩为 rr 的矩阵 A\boldsymbol{A} 都可以写成 rr秩一矩阵的和

A=u1σ1v1T+urσrvrT \boldsymbol{A} = u_1\sigma_1 v_1^{\mathsf T} + \cdots u_r\sigma_r v_r^{\mathsf T}
SVD
SVD

复盘

上面所能进行下去的关键在于:

Avi=σiui,i=1,,r \boldsymbol{A}v_i = \sigma_i u_i, \quad i = 1, \cdots, r

矩阵(变换) A\boldsymbol{A} 将行空间 C(AT)C(\boldsymbol{A}^{\mathsf T}) 的正交基底映至列空间 C(A)C(\boldsymbol{A}) 的正交基底, σi\sigma_i 称为..奇异值..

不是所有矩阵都可以对角化, 但所有矩阵都可以进行奇异值分解

几何意义

这个 知乎回答 给出了如下解释, 我也比较满意

https://imgkr.cn-bj.ufileos.com/f3070f87-ddd7-430b-bbb5-83172534d3f0.png

应用

We Recommend a Singular Value Decomposition Austin) 中介绍了如下几个应用:

  • Data compression(数据压缩)
  • Noise reduction (去噪)
  • Data analysis(数据分析)

数据分析中, 我们知道的主成分分析(PCA)的数学原理即为奇异值分解(SVD).


以上所有部分就是奇异值分解(singular value decomposition), 简称 SVD. 实际上, 之前做的几篇都是为这一篇做准备:

  1. 秩-零化度定理(Rank-Nullity Theorem)
  2. 矩阵的四个基本空间, 不了解下吗?
  3. 矩阵的四个基本空间的基底
  4. Gram 矩阵
  5. 正交矩阵之旋转与镜射
  6. 奇异值分解初步

接下来, 奇异值分解专题并没有结束, 我将以我的思考阐述 SVD 的几何意义以及一些实际应用.


更多..奇异值分解..的内容可以戳 这里