奇异值分解(SVD)原理

一、特征值和特征向量

A A A n n n阶方阵,如果存在常数及非零 n n n向量 x x x,使得 A x = λ x Ax=\lambda x Ax=λx,则 λ \lambda λ称是矩阵 A A A的特征值, x x x A A A属于特征值 λ \lambda λ的特征向量。给定 n n n阶矩阵 A A A,行列式
在这里插入图片描述
的结果是关于 λ \lambda λ的一个多项式,成为矩阵 A A A的特征多项式,该特征多项式构成的方程 ∣ λ E − A ∣ = 0 |\lambda E-A|=0 λEA=0称为矩阵 A A A的特征方程。

定理: n n n阶矩阵 A A A n n n个特征值就是其特征方程 ∣ λ E − A ∣ = 0 |\lambda E-A|=0 λEA=0 n n n个跟 λ 1 , λ 2 , λ 3 , . . . , λ n \lambda_1,\lambda_2,\lambda_3,...,\lambda_n λ1,λ2,λ3,...,λn;而 A A A的属于特征值 λ i \lambda_i λi的特征向量就是其次线性方程 ( λ i E − A ) x = 0 (\lambda_i E-A)x=0 (λiEA)x=0的非零解。

例: A = ∣ 1 − 2 1 4 ∣ A=\begin{vmatrix} 1&-2 \\ 1&4 \end{vmatrix} A=1124的特征根和特征向量。

解: ∣ λ E − A ∣ = ∣ λ − 1 − 2 1 λ − 4 ∣ = ( λ − 1 ) ( λ − 4 ) + 2 = 0 |\lambda E-A|=\begin{vmatrix} \lambda-1&-2 \\ 1&\lambda-4 \end{vmatrix}=(\lambda-1)(\lambda-4)+2=0 λEA=λ112λ4=(λ1)(λ4)+2=0,解一元二次方程可得 λ i = 2 , λ 2 = 3 \lambda_i=2,\lambda_2=3 λi=2,λ2=3

λ 1 \lambda_1 λ1对应的特征向量为 x x x满足 ( λ i E − A ) x = 0 (\lambda_i E-A)x=0 (λiEA)x=0,求得 x = k 1 ( 2 , − 1 ) T , k 1 ≠ 0 x=k_1(2,-1)^T,k_1\neq0 x=k1(2,1)T,k1̸=0
λ 2 \lambda_2 λ2对应的特征向量为 x x x满足 ( λ i E − A ) x = 0 (\lambda_i E-A)x=0 (λiEA)x=0,求得 x = k 2 ( 1 , − 1 ) T , k 2 ≠ 0 x=k_2(1,-1)^T,k_2\neq0 x=k2(1,1)T,k2̸=0

二、特征分解

特征值分解是将一个矩阵分解成下面的形式:
A = Q Σ Q − 1 A=QΣ Q^{-1} A=QΣQ1
其中 Q Q Q是这个矩阵 A A A的特征向量组成的矩阵,正交矩阵是可逆的。 Σ   =   d i a g ( λ 1 ,   λ 2 ,   . . . ,   λ n ) Σ = diag(λ_1, λ_2, ..., λ_n) Σ=diag(λ1,λ2,...,λn)是一个对角阵,每一个对角线上的元素就是一个特征值。
Q Q Q的这 n n n个特征向量标准化,即满足 ∣ ∣ q i ∣ ∣ 2 = 1 ||qi||_2=1 qi2=1, 或者说 q i T w i = 1 q^T_iw_i=1 qiTwi=1,此时 Q Q Q n n n个特征向量为标准正交基,满足 Q T Q = I Q^TQ=I QTQ=I,即 Q T = Q − 1 Q^T=Q−1 QT=Q1, 也就是说 Q Q Q为酉矩阵。

这样我们的特征分解表达式可以写成
A = Q Σ Q T A=QΣ Q^{T} A=QΣQT

三、奇异值分解

SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求要分解的矩阵为方阵。假设我们的矩阵 A A A是一个 m × n m×n m×n的矩阵,那么我们定义矩阵 A A A的SVD为:
A = U Σ V T A=UΣV^T A=UΣVT
其中 U U U是一个 m × m m×m m×m的矩阵, Σ Σ Σ是一个 m × n m×n m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V V V是一个 n × n n×n n×n的矩阵。 U U U V V V都是酉矩阵,即满足 U T U = I , V T V = I UTU=I,VTV=I UTU=I,VTV=I

如何求 U , Σ , V U,Σ,V U,Σ,V

A A A的转置和 A A A做矩阵乘法,那么会得到 n × n n×n n×n的一个方阵 A T A A^TA ATA。既然 A T A A^TA ATA是方阵,那么就可以进行特征分解,得到的特征值和特征向量满足下式:
( A T A ) v i = λ i v i (A^TA)v_i=λ_iv_i (ATA)vi=λivi
这样就得到矩阵 A T A A^TA ATA n n n个特征值和对应的 n n n个特征向量 v v v了。将 A T A A^TA ATA的所有特征向量组成一个 n × n n×n n×n的矩阵 V V V,就是我们 S V D SVD SVD公式里面的 V V V矩阵了。

将A和A的转置做矩阵乘法,那么会得到 m × m m×m m×m的一个方阵 A A T AA^T AAT。既然 A A T AA^T AAT是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:
( A A T ) u i = λ i u i (AA^T)u_i=λ_iu_i (AAT)ui=λiui
这样就可以得到矩阵 A A T AA^T AAT m m m个特征值和对应的 m m m个特征向量 u u u了。将 A A T AA^T AAT的所有特征向量张成一个 m × m m×m m×m的矩阵 U U U,就是我们 S V D SVD SVD公式里面的 U U U矩阵了。
U U U V V V都求出来了,现在就剩下奇异值矩阵 Σ Σ Σ。由于 Σ Σ Σ除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值 σ σ σ就可以了。
A = U Σ V T ⇒ A V = U Σ V T V ⇒ A V = U Σ ⇒ A v i = σ i u i ⇒ σ i = A v i / u i A=UΣV^T⇒AV=UΣV^TV⇒AV=UΣ⇒Av_i=σ_iu_i⇒σ_i=Av_i/u_i A=UΣVTAV=UΣVTVAV=UΣAvi=σiuiσi=Avi/ui
这样可以求出我们的每个奇异值,进而求出奇异值矩阵 Σ Σ Σ

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值