矩阵分解


特征分解

对于方阵A和非零向量x, 如果Ax=λx,表征矩阵A乘以向量x后不改变向量的值,x称为特征向量,λ为特征值。特征向量可以看成是构成矩阵的一组基(向量空间),特征值表示这组基的伸缩倍数。

也就是说(AλI)x=0, 矩阵AλI必须是奇异矩阵, det(AλI)=0

An个线性无关的特征向量(特征向量构成的矩阵X可逆),可以被分解为:

A=XΛX1

X为特征向量构成的矩阵,Λ为特征值构成的对角矩阵

  • 如果特征值各不相同,显然特征向量线性无关
  • 实对称矩阵的特征值均为实数

如果A为对称矩阵时,特征向量矩阵为正交矩阵

A=QΛQ1=QΛQT

奇异值分解

矩阵不是方阵或者特征值个数不足够的时候,无法进行特征值分解,并且仅仅在方阵是对称矩阵的时候可以被分解成正交矩阵的形式。奇异值分解(SVD, singular value decomposition)类似于特征分解,目的是把任意矩阵分解成正交矩阵与对角矩阵乘积形式, UV为正交矩阵,Σ称为由奇异值构成的对角矩阵。

A=UΣVT

Σ对角线上的值称为矩阵的奇异值,UV列向量分别称为左右奇异向量。

AAT=UΣVTVΣTUT=UΣ2UT

所以σi2AAT的特征值,U是相应的特征向量。同理所以σi2ATA的特征值,V是相应的特征向量。对称矩阵的特征值分解是奇异值分解的一种特殊情况。

奇异值分解的说明**

矩阵的四组空间

零空间是指Ax=0的解构成的向量空间,是Rn子空间。零空间基的个数为nrank(A)

列空间是指Ax=bb是非零向量)的解构成的向量空间,是Rm的子空间,基的个数为rank(A), 其余的nrank(A)个列向量都可以由前面rank(A)个列向量线性组合构成。

同理A转置的零空间是Rm的子空间,基的个数为mrank(A);列空间是是Rn子空间的子空间,基的个数为rank(A)

显然行空间与零空间正交,列空间与转置矩阵的零空间正交。当b不在矩阵的列空间内时,Ax=b无解,求最优解就是指e=bAx的最小值(最小二乘法,向量模最小)。

A的行向量求一组正交基vn, 列向量的一组正交基un, 根据秩为r矩阵的四组空间。

  • u1,ur, 列空间一组正交基
  • ur+1,um, 转置矩阵零空间的一组正交基
  • v1,vr, 转置矩阵列空间(行空间)一组正交基
  • vr+1,,vn, 矩阵零空间的一组正交基

显然

Avr=σrur

所以

AVr=UrΣrA[v1vr]=[u1ur][σ1σr]

附上零空间

AV=UΣA[v1vrvn]=[u1urum][σ1σr]

其中Σ为$m n $, V为$n n $, U为$m m $

SVD矩阵分解形式

A=UΣV1=UΣVT=u1σ1v1T++urσrvrT


一路嘿嘿

Bioinformatics, R enthusiast. Thoughts on reasarch, personal experience and other distractions.

Tags

blogdown font ggplot git github github pages Homebrew html hugo icon liner algebra linux machine learning R scholar sublime text 3 tidyverse