线性代数重要知识点和理论(下)

奇异值分解

奇异值分解非常重要且有趣。首先对于 n × n n\times n n×n对称矩阵 A A A,可以通过对角化得到其对角化形式 A = P D P − 1 A=PDP^{-1} A=PDP1,但是如果 A A A不是对称矩阵或者不是方阵,则不能进行对角化,但是可以通过奇异值分解得到类似形式。对于对角化,利用的重要性质是 A v 1 = λ v 1 A\bold{v_1}=\lambda \bold{v_1} Av1=λv1以及对称矩阵的特征向量互相正交。对于任意 m × n m\times n m×n矩阵,可以看做是 R m \Bbb R^m Rm R n \Bbb R^n Rn空间的一个映射,是否也存在一些 A v 1 = σ 1 u 1 A\bold{v_1}=\sigma_1\bold{u_1} Av1=σ1u1的形式呢?
定理:奇异值分解
A A A是秩为 r r r m × n m\times n m×n矩阵,那么存在一个 m × n m\times n m×n矩阵 Σ \Sigma Σ D D D是一个 r × r r\times r r×r非零对角矩阵,其对角线元素是A的前 r r r个奇异值, σ 1 ≥ σ 2 ≥ . . . ≥ σ r > 0 \sigma_1\ge\sigma_2\ge...\ge\sigma_r\gt0 σ1σ2...σr>0,并且存在一个 m × m m\times m m×m正交矩阵 U U U n × n n\times n n×n正交矩阵 V V V,满足 A = U Σ V T A=U\Sigma V^T A=UΣVT,这个分解叫做 A A A的一个奇异值分解,矩阵 U U U V V V不是由 A A A唯一确定的(只确定了部分 U 和 V U和V UV正交基,其余满足单位正交条件即可),但 Σ \Sigma Σ对角线必须是 A A A的奇异值。
Σ = [ D    0 0    0 ] \Sigma=\left[ \begin{aligned} D \ \ & 0\\ 0 \ \ & 0\\ \end{aligned} \right] Σ=[D  0  00]

引入的过程
奇异值分解基于一般的矩阵对角化性质可以被长方形矩阵模仿:一个对称矩阵 A A A的特征值的绝对值,表示度量 A A A拉长或者压缩一个向量(特征向量)的程度,如果 A x = λ x Ax=\lambda x Ax=λx,且 ∣ ∣ x ∣ ∣ = 1 ||x||=1 ∣∣x∣∣=1,那么 ∣ ∣ A x ∣ ∣ = ∣ ∣ λ x ∣ ∣ = ∣ λ ∣ ∣ ∣ x ∣ ∣ = ∣ λ ∣ ||Ax||=||\lambda x||=|\lambda|||x||=|\lambda| ∣∣Ax∣∣=∣∣λx∣∣=λ∣∣∣x∣∣=λ
如果 λ 1 \lambda_1 λ1是具有最大数值的特征值,那么对应的单位特征向量 v 1 \bold{v_1} v1,确定一个有 A A A拉长影响最大的方向,也就是 x = v 1 \bold{x}=\bold{v_1} x=v1时, ∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣长度最大化, ∣ ∣ A v 1 ∣ ∣ = ∣ λ 1 ∣ ||A\bold{v_1}||=|\lambda_1| ∣∣Av1∣∣=λ1。其中的原因在特征值部分已经做了介绍,任何向量都可以分解成特征向量的线性组合,选取最大特征值对应的特征向量方向,对向量的拉长自然是最大的。这里为什么要通过研究拉长最大的方向来引入奇异值,后面会做分析。
以一个矩阵 A A A为例,求 ∣ ∣ x ∣ ∣ = 1 ||\bold{x}||=1 ∣∣x∣∣=1的条件下 ∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣的最大长度和此时的 x \bold{x} x
A = [ 4 11 14 8 7 − 2 ] A=\left[ \begin{aligned} 4&&11&&14\\ 8&&7&&-2\\ \end{aligned} \right] A=[48117142]
∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣的最大值,等价于求 ∣ ∣ A x ∣ ∣ 2 ||A\bold{x}||^2 ∣∣Ax2的最大值,
∣ ∣ A x ∣ ∣ 2 = ( A x ) T ( A x ) = x T A T A x = x T ( A T A ) x ||A\bold{x}||^2=(A\bold{x})^T(A\bold{x})=\bold{x}^TA^TA\bold{x}=\bold{x}^T(A^TA)\bold{x} ∣∣Ax2=(Ax)T(Ax)=xTATAx=xT(ATA)x
( A T A ) T = A T A T T = A T A (A^TA)^T=A^TA^{TT}=A^TA (ATA)T=ATATT=ATA A T A A^TA ATA转置等于自身,是对称矩阵。根据前面对二次型的介绍,最大值的模是 A T A A^TA ATA的最大特征值 λ 1 \lambda_1 λ1,此时 x \bold{x} x为最大特征值 λ 1 \lambda_1 λ1对应的特征向量 v 1 \bold{v_1} v1,令 σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi ,叫做作矩阵 A A A的奇异值,故 ∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣的最大值为 σ 1 = λ 1 \sigma_1=\sqrt{\lambda_1} σ1=λ1 .
考虑到 v 1 \bold{v_1} v1 m × 1 m\times 1 m×1,令 u 1 \bold{u_1} u1 R n \Bbb R^n Rn空间的单位基,则 A v 1 = σ 1 u 1 A\bold{v_1}=\sigma_1 \bold{u_1} Av1=σ1u1,进而推广 A v i = σ i u i A\bold{v_i}=\sigma_i \bold{u_i} Avi=σiui,这个推广是可行的,因为 A T A A^TA ATA是对称矩阵,所以 v i v_i vi之间相互正交(特征值一节已经证明,且证明比较简单)。幸运的是,在 R n \Bbb R^n Rn空间中, u i \bold{u_i} ui在奇异值不同的情况下也是相互正交的,因为:
u i \bold{u_i} ui u j \bold{u_j} uj对应不同奇异值 σ i \sigma_i σi σ j \sigma_j σj,则
σ i σ j u i ⋅ u j = ( σ i u i ) T ( σ j u j ) = ( A v i ) T ( A v j ) = v i T ( A T A ) v j = v i T λ j v j = 0 \sigma_i\sigma_j\bold{u_i}\cdot\bold{u_j}=(\sigma_i\bold{u_i})^T(\sigma_j\bold{u_j})\\ =(A\bold{v_i})^T(A\bold{v_j})=\bold{v_i}^T(A^TA)\bold{v_j}=\bold{v_i}^T\lambda_j\bold{v_j}=0 σiσjuiuj=(σiui)T(σjuj)=(Avi)T(Avj)=viT(ATA)vj=viTλjvj=0
下面来讨论,为什么要通过研究 ∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣的最大值、次大值来引入奇异值的分析。首先当然是出于类比的原因,因为特征值和特征向量就是对单位向量拉长最大、次大。。的数值和方向。如果不加最大值这个限制,还能不能分解 A A A呢?此时仍旧可以分解 A = Q M V A=QMV A=QMV Q , V Q, V Q,V分别是 m × m , n × n m\times m, n\times n m×m,n×n的单位正交基,问题就在于,此时M就不是奇异值构成的对角阵了,且计算是比较复杂的,其实对称矩阵也可以写成非特征向量构成的P满足 A = P M P − 1 A=PMP^{-1} A=PMP1的形式,但是此时只是换了一组正交基,不能发现矩阵的本质特性,不能简化运算。按照这种分解方式,研究的是矩阵在椭圆的长轴、次长轴…一个分解的性质,具有明确的几何意义和物理意义。也正是因为奇异值分解有求取 ∣ ∣ A x ∣ ∣ ||A\bold{x}|| ∣∣Ax∣∣最大值的含义,使其可以用于主成分分析法,拉长最大的方向,是将原像数据映射到像空间导致差别最大的数据,含有最多的分类信息量。

举个例子
求取 A = [ 1 − 1 − 2 2 2 − 2 ] A=\left[ \begin{aligned} 1&&-1\\ -2&&2\\ 2&&-2 \end{aligned} \right] A= 122122
第一步:先求 A T A = [ 9 − 9 − 9 9 ] A^TA=\left[\begin{aligned}9&&-9\\-9&&9\end{aligned}\right] ATA=[9999]
第二步:求 A T A A^TA ATA的特征值 λ 1 = 18 , λ 2 = 0 \lambda_1=18,\lambda_2=0 λ1=18,λ2=0和特征向量
v 1 = [ 2 2 − 2 2 ] v 2 = [ 2 2 2 2 ] \bold{v_1}=\left[\begin{aligned}\frac{\sqrt{2}}{2} \\ -\frac{\sqrt{2}}{2}\end{aligned}\right] \bold{v_2}=\left[\begin{aligned}\frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2}\end{aligned}\right] v1= 22 22 v2= 22 22
第三步:求 U U U. 只能求得一个非零向量 u 1 = 1 σ 1 A v 1 = [ 1 3 − 2 3 2 3 ] \bold{u_1}=\frac{1}{\sigma_1}A\bold{v_1}=\left[\begin{aligned} \frac{1}{3} \\ -\frac{2}{3} \\ \frac{2}{3} \\ \end{aligned}\right] u1=σ11Av1= 313232
使用格拉姆施密特方法补齐U的单位正交基。 x 1 − 2 x 2 + 2 x 3 = 0 x_1-2x_2+2x_3=0 x12x2+2x3=0,分别取 x 2 = 0 , x 3 = 1 , 则 x 1 = − 2 x_2=0,x_3=1, 则x_1=-2 x2=0,x3=1,x1=2 x 1 = 0 , x 2 = 1 , 则 x 3 = 1 x_1=0,x_2=1, 则x_3=1 x1=0,x2=1,x3=1,此时后两个向量都和 u 1 \bold{u_1} u1正交,有格拉姆施密特方法,求得 u 2 = [ − 2 2 3 − 2 6 2 6 ] u 3 = [ 0 2 2 2 2 ] \bold{u_2}=\left[\begin{aligned} -\frac{2\sqrt{2}}{3} \\ -\frac{\sqrt{2}}{6} \\ \frac{\sqrt{2}}{6} \\ \end{aligned}\right] \bold{u_3}=\left[\begin{aligned} 0 \\ \frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} \\ \end{aligned}\right] u2= 322 62 62 u3= 022 22
求得A的奇异值分解为 A = U Σ V T = [ 1 3 − 2 2 3 0 − 2 3 − 2 6 2 2 2 3 2 6 2 2 ] [ 3 2 0 0 0 0 0 ] [ 2 2 − 2 2 2 2 2 2 ] A=U\Sigma V^T=\left[ \begin{aligned} \frac{1}{3} &&-\frac{2\sqrt{2}}{3}&&0 \\ -\frac{2}{3} &&-\frac{\sqrt{2}}{6}&&\frac{\sqrt{2}}{2} \\ \frac{2}{3} &&\frac{\sqrt{2}}{6}&&\frac{\sqrt{2}}{2} \\ \end{aligned} \right] \left[ \begin{aligned} 3\sqrt{2} &&0 \\ 0&&0 \\ 0&&0 \\ \end{aligned} \right] \left[ \begin{aligned} \frac{\sqrt{2}}{2} &&-\frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2}&&\frac{\sqrt{2}}{2} \\ \end{aligned} \right] A=UΣVT= 313232322 62 62 022 22 32 00000 22 22 22 22
对于非0奇异值 3 2 3\sqrt{2} 32 实际上只有一个非零向量 v 1 \bold{v_1} v1 u 1 \bold{u_1} u1 U , V U,V U,V其余的正交基是为了满秩补齐的,实际上,在分解和计算A的时候,完全可以使用0进行填充,对与计算A没有任何影响。另外,对于 U U U因为只有一个正交基,所以另外的两个单位正交基实际上并不是唯一的(补齐它们,实际对计算A没有任何影响,因为在计算矩阵的时候,他们将和 Σ \Sigma Σ里的0值相乘)
对于奇异值分解若 A = U Σ V T A=U\Sigma V^T A=UΣVT,则 A T = V Σ U T A^T=V\Sigma U^T AT=VΣUT。对于 A A A的奇异值分解,若 λ i , v i \lambda_i, \bold{v_i} λi,vi分别是 A T A A^TA ATA的一个特征值和特征向量, σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi 是对应的奇异值,则有 A v i = σ i u i A\bold{v_i}=\sigma_i\bold{u_i} Avi=σiui σ i A T u i = A T A v i = λ i v i \sigma_iA^T\bold{u_i}=A^TA\bold{v_i}=\lambda_i\bold{v_i} σiATui=ATAvi=λivi,所以 A T u i = λ i σ i v i = σ i v i A^T\bold{u_i}=\frac{\lambda_i}{\sigma_i}\bold{v_i}=\sigma_i\bold{v_i} ATui=σiλivi=σivi,所以,如果 V V V的某一列是 A A A原像空间的单位正交基, U U U的对应列是 A A A的像空间的单位正交基,则 U U U的该列是 A T A^T AT原像空间的单位正交基, V V V的对应列是 A T A^T AT的像空间的单位正交基。所以 A T A^T AT的奇异值分解有上述形式。此处没有证明 A T A A^TA ATA A A T AA^T AAT具有相同的非零特征值。
基于这个原因对于求 A m × n A_{m\times n} Am×n的奇异值分解(m<<n),可以通过求 A T A^T AT的奇异值分解来实现,则计算复杂度降低:计算 A T A A^TA ATA复杂度从 2 m n 2 2mn^2 2mn2下降到 2 m n 2m^n 2mn,计算行列式的时间复杂度由 n ! n! n!下降到 m ! m! m!
因此,如果上面计算 A T A^T AT的奇异值分解,可以立即得到 A T = ( U Σ V T ) T = V Σ U T A^T=(U\Sigma V^T)^T=V\Sigma U^T AT=(UΣVT)T=VΣUT,而上述矩阵均为已知。
证明: A T A A^TA ATA A A T AA^T AAT有相同的非0特征值。
假设 λ \lambda λ A T A A^TA ATA的特征值,则有 A T A v = λ v A^TA\bold{v}=\lambda\bold{v} ATAv=λv,设 u = A v \bold{u}=A\bold{v} u=Av,则有 A A T u = A A T A v = A λ v = λ A v = λ u AA^T\bold{u}=AA^TA\bold{v}=A\lambda \bold{v}=\lambda A\bold{v}=\lambda\bold{u} AATu=AATAv=Aλv=λAv=λu,故 λ \lambda λ A A T AA^T AAT的特征值,对应的特征向量 u = A v \bold{u}=A\bold{v} u=Av

奇异值分解的简化和A的伪逆
Σ \Sigma Σ包含零元素的行或列是,矩阵 A A A具有更简洁的分解,利用上面建立的符号,取 r = r a n k   A r=rank\ A r=rank A,将 U , V U,V U,V矩阵分块为第一块包含r列的子矩阵:
U = [ U r   U m − r ] , U r = [ u 1   . . . u r ] U=[U_r\ U_{m-r}], U_r=[\bold{u_1}\ ...\bold{u_r}] U=[Ur Umr],Ur=[u1 ...ur]
V = [ V r   U n − r ] , V r = [ v 1   . . . v r ] V=[V_r\ U_{n-r}], V_r=[\bold{v_1}\ ...\bold{v_r}] V=[Vr Unr],Vr=[v1 ...vr]
那么 U r 是 m × r , V r 是 n × r U_r是m \times r, V_r是n\times r Urm×r,Vrn×r,则
A = [ U r    U m − r ] [ D 0 0 0 ] [ V r T V n − r T ] = U r D V r T A=[U_r\ \ U_{m-r}] \left[\begin{aligned}D&&0\\0&&0\end{aligned}\right] \left[\begin{aligned}V_r^T\\V_{n-r}^T\end{aligned}\right]=U_rDV_r^T A=[Ur  Umr][D000][VrTVnrT]=UrDVrT
这叫做A的简化奇异值分解,并把 A + = V r D − 1 U r T A^+=V_rD^{-1}U_r^T A+=VrD1UrT叫做A的伪逆,也叫穆尔-彭罗斯逆
此时 A x = b A\bold{x}=\bold{b} Ax=b的最小二乘解,可以由伪逆给出
x ^ = A + b = V r D − 1 U r T b \hat{\bold{x}}=A^+\bold{b}=V_rD^{-1}U_r^T\bold{b} x^=A+b=VrD1UrTb
A x ^ = ( U r D V r T ) ( V r D − 1 U r T b ) = U r U r T b A\hat{\bold{x}}=(U_rDV_r^T)(V_rD^{-1}U_r^T\bold{b})=U_rU_r^T\bold{b} Ax^=(UrDVrT)(VrD1UrTb)=UrUrTb

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值