特征值分解与奇异值分解

一、特殊矩阵的基础知识

  1. 对角矩阵 d i a g o n a l m a t r i x \mathrm{diagonal\quad matrix} diagonalmatrix):所有非对角线元素全等于零的 n n n阶矩阵。对角矩阵是一个方阵。
  2. 对称矩阵 s y m m e t r i c m a t r i x \mathrm{symmetric\quad matrix} symmetricmatrix):元素以主对角线为对称轴对应相等的矩阵。满足 A T = A A^T=A AT=A,对称矩阵是一个方阵。

  对称阵总能相似对角化,对称阵不同特征值对应的特征向量两两正交。
  证明

  1. 正交矩阵

正交矩阵及其性质

  • 定义:满足 A A T = E AA^T=E AAT=E或者 A T A = E A^TA=E ATA=E n n n阶矩阵 A A A,其中 E E E n n n阶单位矩阵。
  • 定理1: A A A n n n阶正交矩阵的充要条件是 A A A的列(行)向量组为 R n R^n Rn的一组标准正交基。
  • 定理2:设 A , B A,B A,B皆为 n n n阶正交矩阵,则
  • ∣ A ∣ = 1 |A|=1 A=1 ∣ A ∣ = − 1 |A|=-1 A=1
  • A T = A − 1 {\color{Blue}A^T=A^{-1}} AT=A1(充要条件)
  • A T A^T AT(即 A − 1 A^{-1} A1)也是正交矩阵
  • A B AB AB也是正交矩阵
  • 定理3:方阵 A A A为正交矩阵的充要条件是 A A A的列(行)向量构成标准正交组。
  1. 对于任意矩阵 A A A A T A A^TA ATA为对称阵
    证明: ( A T A ) T = A T ( A T ) T = A T A ({\color {Green}A^TA})^T=A^T(A^T)^T={\color {Brown}A^TA} (ATA)T=AT(AT)T=ATA
    乘积的转置等于其本身,故为对称阵。
  2. 矩阵的本质是线性变换。

二、特征值分解(EigenValue Decomposition,EVD)

MATLAB中调用函数eig

1. 特征值和特征向量

A A A n n n阶矩阵,若存在数 λ \lambda λ n n n维非零向量 X X X,使得
A X = λ X ( x ≠ 0 ) AX=\lambda X \qquad (x≠0) AX=λX(x=0)
则称 λ \lambda λ A A A的一个特征值, X X X A A A的对应于特征值 λ \lambda λ的特征向量。

  1. 特征向量的代数含义是将矩阵乘法转换为数乘操作;
  2. 特征向量的几何含义是通过方阵 A A A变换只进行缩放,不改变方向。

2. 特征值分解

  • 设矩阵 A A A n n n个特征值和特征向量,则
    A X 1 = λ 1 X 1 A X 2 = λ 2 X 2 ⋯ A X n = λ n X n \begin{aligned} AX_1&=\lambda_1X_1 \\ AX_2&=\lambda_2X_2 \\ &\cdots \\ AX_n&=\lambda_nX_n\\ \end{aligned} AX1AX2AXn=λ1X1=λ2X2=λnXn
    将上述各式写成矩阵形式
    A U = U Λ U = [ X 1 X 2 ⋯ X n ] n × n Λ = [ λ 1 λ 2 ⋱ λ n ] n × n AU= U\Lambda \\ \quad \\ U=[X_1\quad X_2 \quad \cdots \quad X_n]_{n×n}\\ \quad \\ \Lambda=\begin{bmatrix} \lambda_1 & \\ & \lambda_2 & \\ & & \ddots & \\ & & & \lambda_n \\ \end{bmatrix}_{n×n} AU=UΛU=[X1X2Xn]n×nΛ=λ1λ2λnn×n
    那么
    A = U Λ U − 1 A= U\Lambda U^{-1} A=UΛU1
    因此,方阵 A A A可以由其特征值和特征向量完全描述。
  • 若矩阵 A A A为对称矩阵,则其特征向量两两正交,那么 U U U为正交矩阵,有 U − 1 = U T U^{-1}=U^T U1=UT,此时矩阵 A A A可以表示为
    A = U Λ U − 1 = U Λ U T A= U\Lambda U^{-1}= U\Lambda U^T A=UΛU1=UΛUT

特征值分解只适用于方阵,然而在实际应用中,大部分矩阵都不是方阵。而奇异值分解适用于任意矩阵。

三、奇异值分解(Singular Value Decomposition,SVD)

MATLAB中调用函数svd

考虑矩阵 A A A是一个m×n的普通矩阵,但是 A T A A^TA ATA是对称阵,因此可以根据EVD来分解 A T A A^TA ATA

同样的,求出 A T A A^TA ATA的n个特征值
λ 1 , λ 2 , ⋯   , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,,λn
以及对应的特征向量
X 1 , X 2 , ⋯   , X n X_1,X_2,\cdots,X_n X1,X2,,Xn
那么有
A T A X 1 = λ 1 X 1 A T A X 2 = λ 2 X 2 ⋯ A T A X n = λ n X n \begin{aligned} A^TAX_1&=\lambda_1X_1 \\ A^TAX_2&=\lambda_2X_2 \\ &\cdots \\ A^TAX_n&=\lambda_nX_n\\ \end{aligned} ATAX1ATAX2ATAXn=λ1X1=λ2X2=λnXn
此时用 V V V表示特征向量组成的矩阵, V V V为正交阵
A T A V = V Λ V = [ X 1 X 2 ⋯ X n ] n × n Λ = [ λ 1 λ 2 ⋱ λ n ] n × n A^TAV= V\Lambda \\ \quad \\ V=[X_1\quad X_2 \quad \cdots \quad X_n]_{n×n}\\ \quad \\ \Lambda=\begin{bmatrix} \lambda_1 & \\ & \lambda_2 & \\ & & \ddots & \\ & & & \lambda_n \\ \end{bmatrix}_{n×n} ATAV=VΛV=[X1X2Xn]n×nΛ=λ1λ2λnn×n
那么
A T A = V Λ V − 1 = V Λ V T A^TA= V\Lambda V^{-1}= V\Lambda V^T ATA=VΛV1=VΛVT

SVD分解的精髓在于找到一组正交基,使得经过A变换后还是正交基。

分析我们找到这样的正交基:
V = [ v 1 , v 2 , ⋯   , v n ] V=[v_1,v_2,\cdots,v_n] V=[v1,v2,,vn]
则经过A变换后将这组基映射为:
[ A v 1 , A v 2 , ⋯   , A v n ] [Av_1,Av_2,\cdots,Av_n] [Av1,Av2,,Avn]
要使变换后也为正交基,即两两正交:

因为两个列向量的点积可以表示为一个行向量乘以一个列向量,所以有
A v i ⋅ A v j = ( A v i ) T A v j = v i T A T A v j = v i T λ j v j = λ j v i T v j = λ j v i ⋅ v j = 0 Av_i\cdot Av_j=(Av_i)^TAv_j=v_i^TA^TAv_j=v_i^T\lambda_jv_j=\lambda_jv_i^Tv_j=\lambda_jv_i\cdot v_j=0 AviAvj=(Avi)TAvj=viTATAvj=viTλjvj=λjviTvj=λjvivj=0(0为向量)

由此可知,我们找到的正交基使其经过矩阵 A A A映射后还是正交基。

将映射后的正交基单位化

因为
A v i ⋅ A v i = ( A v i ) T A v i = v i T A T A v i = v i T λ i v i = λ i v i ⋅ v i = λ i Av_i\cdot Av_i=(Av_i)^TAv_i=v_i^TA^TAv_i=v_i^T\lambda_iv_i=\lambda_iv_i\cdot v_i=\lambda_i AviAvi=(Avi)TAvi=viTATAvi=viTλivi=λivivi=λi
所以有
∣ A v i ∣ 2 = λ i ≥ 0 |Av_i|^2=\lambda_i≥0 Avi2=λi0
取单位向量
u i = A v i ∣ A v i ∣ = 1 λ i A v i u_i=\frac{Av_i}{|Av_i|}=\frac{1}{\sqrt{\lambda_i}}Av_i ui=AviAvi=λi 1Avi
λ i = σ i \sqrt{\lambda_i}=\sigma_i λi =σi(奇异值)
A v i = u i σ i Av_i=u_i\sigma_i Avi=uiσi
由此得到矩阵 A A A的奇异值分解
A = U Σ V T A=U\Sigma V^T A=UΣVT
U U U是m×m的正交阵, V V V是n×n的正交阵, Σ \Sigma Σ是m×n的矩阵,对角线上的值叫作 A A A的奇异值。

  • v i v_i vi A T A A^TA ATA的特征向量,称为 A A A右奇异向量 u i u_i ui A A T AA^T AAT的特征向量,称为 A A A左奇异向量

  • U U U的列由 A A T AA^T AAT单位化后的特征向量构成

  • V V V的列由 A T A A^TA ATA单位化后的特征向量构成

  • Σ \Sigma Σ的对角元素来源于 A A T AA^T AAT A T A A^TA ATA的特征值的平方根,并且是按从大到小的顺序排列的

  • 下面证明 V V V A T A A^TA ATA的特征向量, U U U A A T AA^T AAT的特征向量
    A = U Σ V T A T = V Σ T U T A T A = V Σ T U T U Σ V T = V Σ 2 V T = V Λ V T A A T = U Σ V T V Σ T U T = U Σ 2 U T = U Λ U T \begin{aligned} A&=U\Sigma V^T \\ A^T&=V\Sigma^TU^T \\ A^TA=V\Sigma^TU^T&U\Sigma V^T=V\Sigma^2V^T=V\Lambda V^T \\ AA^T=U\Sigma V^T&V\Sigma^TU^T= U\Sigma^2U^T=U\Lambda U^T \end{aligned} AATATA=VΣTUTAAT=UΣVT=UΣVT=VΣTUTUΣVT=VΣ2VT=VΛVTVΣTUT=UΣ2UT=UΛUT

  • 求解SVD的步骤

  1. A A T AA^T AAT的特征值和特征向量,用单位化的特征向量构成 U U U
  2. A T A A^TA ATA的特征值和特征向量,用单位化的特征向量构成 V V V
  3. A A T AA^T AAT A T A A^TA ATA的特征值求平方根,然后构成 Σ \Sigma Σ

四、特征值分解和奇异值分解的区别

奇异值分解 A = U Σ V T A=U\Sigma V^T A=UΣVT
A A A矩阵的作用是将一个向量从 V V V这组正交基向量的空间旋转 U U U这组正交基向量空间,并且按照 Σ \Sigma Σ在各个方向进行了一定的缩放,缩放因子就是各个奇异值。如果 V V V列向量的维度比 U U U大,则表示还进行了投影

特征值分解 A = U Λ U T A= U\Lambda U^T A=UΛUT
A A A矩阵的作用是在求出的两两正交的特征向量这组基上进行缩放

特征值用来描述方阵,可看做是从一个空间到自身的映射,奇异值可以描述任意矩阵,可看做是从一个空间到另一个空间的映射。

  1. 特征值分解是针对可对角化方阵而言,而奇异值分解更通用,对于任意形状的矩阵都可以进行分解。
  2. 特征值分解表明,矩阵与某一个向量相乘,该向量仅发生缩放变换,不对向量产生旋转的效果,伸缩的比例就是特征值;奇异值分解表明,将 A A A矩阵右乘一个向量后,相当于对该向量从 V V V这组单位正交基旋转到了 U U U这组新的单位正交基,不仅发生了旋转,而且有相应的缩放,缩放因子就是奇异值。(本质区别)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值