精华内容
下载资源
问答
  • 7.1 奇异值分解SVD和对称矩阵谱分解 矩阵 Amn,rankA=r<(m,n)A_{mn},rank A=r < (m, n)Amn​,rankA=r<(m,n) 是亏秩矩阵时,虽然高斯消元法可以求得方程 Ax=bA\mathbf{x}=\mathbf{b}Ax=b 解,很可惜是,...

    7.1 奇异值分解SVD和对称矩阵谱分解

    矩阵 Amn,rankA=r<(m,n)A_{mn},rank A=r < (m, n) 是亏秩矩阵时,虽然高斯消元法可以求得方程 Ax=bA\mathbf{x}=\mathbf{b} 的解,很可惜的是,采用高斯消元法,有两个缺点:第一是,当方程不存在精确解时,高斯消元法无法得到最小二乘解;第二是,当方程存在精确解时,其解的结构是特解加零解。当选择不同的矩阵 AA 列空间的极大无关组时,可以求得不同的特解,理论上存在无穷多特解满足方程 Ax=bA\mathbf{x}=\mathbf{b} ,一般情况下,我们希望获得最特殊的特解--最小范数解,即所有特解中,内积最小特解 minxp\min\| \mathbf{x}_p \|

    由于矩阵 AA 是亏秩矩阵,其列向量不是 RmR^m 空间的基,故不是任意 b\mathbf{b} 都有精确解,只有当 b\mathbf{b} 位于矩阵 AA 列空间时,才存在精确解,否则只能获得最小二乘解。令向量 b\mathbf{b} 向矩阵 AA 列空间的投影向量为 bp\mathbf{b}_p ,则方程 Ax=bpA\mathbf{x} = \mathbf{b}_p 有精确解,称为最小二乘解,由于矩阵 AA 不是列满秩矩阵,故不能采用第五章方法获得最小二乘解。同时由于矩阵 AA 列向量组是相关组,故方程 Ax=bpA\mathbf{x} = \mathbf{b}_p 有无穷多解,其解的结构是特解加零解,我们希望获得最小范数特解。综上,对于方程 Ax=bA\mathbf{x}=\mathbf{b} ,对任意向量 b\mathbf{b},我们希望获得最小范数最小二乘解和零解。

    方程 Ax=bA\mathbf{x}=\mathbf{b} 的解空间为 RnR^n 空间,令向量组 vi,i=1,,n\mathbf{v}_i,i=1,\cdots,nRnR^n 空间中任意 nn 个线性无关的单位向量,则向量组 Avi,i=1,,nA\mathbf{v}_i,i=1,\cdots,nRmR^m 空间中向量,对其进行单位化,得 Avi=σiui,uiσi0AviA\mathbf{v}_i = \sigma_i\mathbf{u}_i,\mathbf{u}_i是单位向量,\sigma_i \ge 0是向量A\mathbf{v}_i的长度 。向量 ATuiA^T\mathbf{u}_inn 维,所以位于 RnR^n 空间,故其能被该空间的基表示,向量组 vi,i=1,,n\mathbf{v}_i,i=1,\cdots,nRnR^n 空间的基,故 ATuiA^T\mathbf{u}_i 能被向量组 vi,i=1,,n\mathbf{v}_i,i=1,\cdots,n 线性表示,所以令 ATui=j=1nkijvjA^T\mathbf{u}_i = \sum^n_{j=1}k_{ij}\mathbf{v}_j 。令矩阵 V=[v1,,vn]V=[\mathbf{v}_1,\cdots,\mathbf{v}_n] ,则
    ATAvi=AT(Avi)=ATσiui=σij=1nkijvj=VΛiΛi=(σiki1,σiki2,,σikin) A^TA\mathbf{v}_i = A^T(A\mathbf{v}_i)=A^T\sigma_i\mathbf{u}_i=\sigma_i\sum^n_{j=1}k_{ij}\mathbf{v}_j=V\Lambda_i \\ 其中向量 \Lambda_i=(\sigma_ik_{i1},\sigma_ik_{i2},\cdots,\sigma_ik_{in})


    ATA[v1,,vn]=V[Λ1,,Λn]ATAV=VΛATA=VΛV1 A^TA[\mathbf{v}_1,\cdots,\mathbf{v}_n] = V[\Lambda_1,\cdots,\Lambda_n]\\ A^TAV=V\Lambda\\ A^TA = V\Lambda V^{-1}

    VVRnR^n 空间中的任意基,如何选择该基,能使 VΛV1V\Lambda V^{-1} 最简洁?表达式涉及矩阵 VV 的逆,故希望求逆简单。能直接获得矩阵逆的矩阵有正交矩阵,对角阵,单位阵,矩阵 VV 为对角阵或单位阵,则会造成矩阵 Λ\Lambda 复杂。矩阵 VV 为正交矩阵时,能使矩阵 Λ\Lambda 为对角阵!该性质就是对称矩阵谱分解定理。

    对称矩阵谱分解定理 任意对称矩阵 SS 能分解为正交矩阵 QQ 和对角阵 Λ\Lambda ,且满足 S=QΛQTS=Q\Lambda Q^T

    Q=[q1,,qn]Q=[\mathbf{q}_1,\cdots,\mathbf{q}_n]Λ=diag(λ1,,λn)\Lambda=diag(\lambda_1,\cdots,\lambda_n)

    S=QΛQT=[q1,,qn]diag(λ1,,λn)[q1,,qn]T=[q1,,qn][λ1q1TλnTqnT]=λ1q1q1T++λnqnqnT=i=1nλiqiqiT S=Q\Lambda Q^T = [\mathbf{q}_1,\cdots,\mathbf{q}_n]diag(\lambda_1,\cdots,\lambda_n)[\mathbf{q}_1,\cdots,\mathbf{q}_n]^T=[\mathbf{q}_1,\cdots,\mathbf{q}_n]\left[ \begin{matrix} \lambda_1\mathbf{q}^T_1 \\ \vdots \\ \lambda^T_n\mathbf{q}^T_n \end{matrix} \right]\\ =\lambda_1\mathbf{q}_1\mathbf{q}^T_1 + \cdots + \lambda_n\mathbf{q}_n\mathbf{q}^T_n\\ = \sum^n_{i=1}\lambda_i\mathbf{q}_i\mathbf{q}^T_i

    注意 uvT\mathbf{u}\mathbf{v}^T 是矩阵,称为向量外积,需要与向量内积区分。因为 rank(qiqiT)=1rank (\mathbf{q}_i\mathbf{q}^T_i) = 1S=QΛQT=λ1q1q1T++λnqnqnTS = Q\Lambda Q^T = \lambda_1\mathbf{q}_1\mathbf{q}^T_1 + \cdots + \lambda_n\mathbf{q}_n\mathbf{q}^T_n ,这表明对称矩阵可分解为 nn 个简单矩阵(秩为11qiqiT\mathbf{q}_i\mathbf{q}^T_i 之和,其系数为 λi\lambda_i 。因为 qi\mathbf{q}_i 都是单位向量,故 λi\lambda_i 绝对值大的分量更重要,是主成分。

    因为 QQ 是正交矩阵,故 qiqiT=1,qiqjT=0forij\mathbf{q}_i\mathbf{q}^T_i=1 ,\mathbf{q}_i\mathbf{q}^T_j = 0 \quad for \quad i \ne j,所以 Sqi=(λ1q1q1T++λnqnqnT)qi=λ1q1(q1Tqi)++λnqn(qnTqi)λiqiS \mathbf{q}_i = (\lambda_1\mathbf{q}_1\mathbf{q}^T_1 + \cdots + \lambda_n\mathbf{q}_n\mathbf{q}^T_n)\mathbf{q}_i = \lambda_1\mathbf{q}_1(\mathbf{q}^T_1\mathbf{q}_i) + \cdots + \lambda_n\mathbf{q}_n(\mathbf{q}^T_n\mathbf{q}_i) = \lambda_i\mathbf{q}_iSqi=λiqiS \mathbf{q}_i = \lambda_i\mathbf{q}_i ,我们称 λi\lambda_i 为矩阵 SS 的特征值,qi\mathbf{q}_i 为对应的特征向量。

    rankS=rank(QΛQT)=rank(ΛQT)=rankΛ rank S = rank (Q\Lambda Q^T) = rank (\Lambda Q^T) = rank \Lambda
    所以对角元素 λi\lambda_i 非零数目等于矩阵 SS 的秩。

    后面证明该定理。

    因为矩阵 ATAA^TA 是对称矩阵,故能分解为 ATA=VΛVTA^TA=V\Lambda V^T ,得到正交矩阵 V=[v1,,vn]V =[\mathbf{v}_1,\cdots,\mathbf{v}_n] 和 对角阵 Λ\Lambda 的对角元素 λi\lambda_i 值,且对角阵 Λ\Lambda 的对角元素 λi\lambda_i 非负。因为对任意向量 x\mathbf{x} ,有 xTATAx=(Ax)T(Ax)0\mathbf{x}^TA^TA\mathbf{x}=(A\mathbf{x})^T(A\mathbf{x}) \ge 0 ,故 xTVΛVTx=(VTx)TΛ(VTx)=yTΛy=λ1y12+λ2y22++λnyn20\mathbf{x}^TV\Lambda V^T\mathbf{x} = (V^T\mathbf{x})^T\Lambda (V^T\mathbf{x}) = \mathbf{y}^T\Lambda \mathbf{y} = \lambda_1 y^2_1 + \lambda_2 y^2_2 + \cdots + \lambda_n y^2_n \ge 0 成立,所以 λi0\lambda_i \ge 0

    根据对称矩阵性质 Sqi=λiqiS \mathbf{q}_i = \lambda_i\mathbf{q}_i ,故 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_i 成立,矩阵 ATAA^TA 特征值为 λi\lambda_i 且非负,我们习惯把特征值按降序排列,即 λ1λ2λn0\lambda_1 \ge \lambda_2 \ge \cdots \lambda_n \ge 0

    根据对称矩阵性质 S=λ1q1q1T++λnqnqnTS = \lambda_1\mathbf{q}_1\mathbf{q}^T_1 + \cdots + \lambda_n\mathbf{q}_n\mathbf{q}^T_n ,故 ATA=λ1v1v1T++λnvnvnTA^TA = \lambda_1\mathbf{v}_1\mathbf{v}^T_1 + \cdots + \lambda_n\mathbf{v}_n\mathbf{v}^T_n ,由于 λi\lambda_i 非负且按降序排列,故靠前的 λiviviT\lambda_i\mathbf{v}_i\mathbf{v}^T_i 占矩阵 ATAA^TA 比例更大,是主成分。

    r=rankA=rank(ATA)=rankΛr = rank A = rank (A^TA) = rank \Lambda ,所以对角元素 λi\lambda_i 非零数目等于矩阵 AA 的秩!

    现在证明向量组 U=[u1,,un]U=[\mathbf{u}_1,\cdots,\mathbf{u}_n] 两两正交。
    (uiTuj)(σiσj)=(Avi)T(Avj)=viTATAvj=viT(ATAvj)=viTλjvj=λjviTvj (\mathbf{u}^T_i\mathbf{u}_j)(\sigma_i\sigma_j) = (A\mathbf{v}_i)^T(A\mathbf{v}_j) = \mathbf{v}^T_iA^TA\mathbf{v}_j=\mathbf{v}^T_i(A^TA\mathbf{v}_j)=\mathbf{v}^T_i\lambda_j\mathbf{v}_j=\lambda_j\mathbf{v}^T_i\mathbf{v}_j
    因为向量组 V=[v1,,vn]V=[\mathbf{v}_1,\cdots,\mathbf{v}_n] 两两正交,故得证。

    i=ji=j(uiTui)(σiσi)=λi(viTvi)(\mathbf{u}^T_i\mathbf{u}_i)(\sigma_i\sigma_i) = \lambda_i(\mathbf{v}^T_i\mathbf{v}_i),因为 ui,vi\mathbf{u}_i,\mathbf{v}_i 是单位向量,故 λi=σi2\lambda_i = \sigma^2_i

    又根据 ATAvi=σij=1nkijvj=λiviA^TA\mathbf{v}_i =\sigma_i\sum^n_{j=1}k_{ij}\mathbf{v}_j=\lambda_i\mathbf{v}_ikij=0forjik_{ij}=0 \quad for \quad j \ne iλi=σikii\lambda_i = \sigma_ik_{ii} ,得 kii=σik_{ii} = \sigma_i,所以 ATui=j=1nkijvj=kiivi=σiviA^T\mathbf{u}_i = \sum^n_{j=1}k_{ij}\mathbf{v}_j = k_{ii}\mathbf{v}_i = \sigma_i\mathbf{v}_i

    AATui=Aσivi=σiAvi=σiσiui=λiuiAA^T\mathbf{u}_i=A\sigma_i\mathbf{v}_i=\sigma_iA\mathbf{v}_i=\sigma_i\sigma_i\mathbf{u}_i=\lambda_i\mathbf{u}_i ,所以对称矩阵 AATAA^T 特征值为 λi\lambda_i ,对应特征向量为 ui\mathbf{u}_i

    综合上面结论可得矩阵的奇异值分解定理
    1、首先根据对称矩阵谱分解定理,可得 ATA=VΛVT=λ1v1v1T++λnvnvnTA^TA=V\Lambda V^T = \lambda_1\mathbf{v}_1\mathbf{v}^T_1 + \cdots + \lambda_n\mathbf{v}_n\mathbf{v}^T_n,矩阵 V=[v1,,vn]V=[\mathbf{v}_1,\cdots,\mathbf{v}_n] 是正交矩阵,矩阵 Λ\Lambda 是对角阵,对角元素 λi0\lambda_i \ge 0 按降序排列,非零数目等于 rankArank A
    2、满足如下性质
    Avi=σiuiATui=σiviATAvi=λiviAATui=λiuiσi=λiviui. A\mathbf{v}_i = \sigma_i\mathbf{u}_i \\ A^T\mathbf{u}_i = \sigma_i\mathbf{v}_i \\ A^TA\mathbf{v}_i = \lambda_i\mathbf{v}_i \\ AA^T\mathbf{u}_i = \lambda_i\mathbf{u}_i \\ \sigma_i = \sqrt{\lambda_i} 称为奇异值,\mathbf{v}_i称为右奇异向量,\mathbf{u}_i称为左奇异向量.

    几点说明:
    1、正交矩阵 V=[v1,,vn]V=[\mathbf{v}_1,\cdots,\mathbf{v}_n] 和对角阵 Λ\Lambda 如何获得呢?理论上可通过解方程 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_i 获得,具体如何解后面介绍,非零奇异值 σi=λi,i=1,,r=rankA\sigma_i = \sqrt{\lambda_i},i=1,\cdots,r=rank Aσi\sigma_i 是向量 AviA\mathbf{v}_i 的长度和向量 ATuiA^T\mathbf{u}_i 的长度;
    2、根据非零奇异值计算得到 ui=Avi/σi,i=1,,r=rankA\mathbf{u}_i = A\mathbf{v}_i/\sigma_i,i=1,\cdots,r=rank A
    3、由于向量组 uii=1,,r=rankA\mathbf{u}_i,i=1,\cdots,r=rank A 两两正交,根据基的扩充定理,可扩充 mrm-r 个单位向量 uii=r+1,,m\mathbf{u}_i,i=r+1,\cdots,m ,使矩阵 U=[u1,um]U = [\mathbf{u}_1,\cdots,\mathbf{u}_m] 为正交矩阵,并满足对称矩阵谱分解定理即 AAT=UΛUT=λ1u1u1T++λmumumTAA^T=U\Lambda U^T = \lambda_1\mathbf{u}_1\mathbf{u}^T_1 + \cdots + \lambda_m\mathbf{u}_m\mathbf{u}^T_m

    根据 Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_iAv1=σ1u1A\mathbf{v}_1 = \sigma_1\mathbf{u}_1Av2=σ2u2A\mathbf{v}_2 = \sigma_2\mathbf{u}_2\cdotsAvr=σrurA\mathbf{v}_r = \sigma_r\mathbf{u}_r ,故 A[v1,,vr]=[u1,,ur]diag(σ1,,σr)A[\mathbf{v}_1,\cdots,\mathbf{v}_r] = [\mathbf{u}_1,\cdots,\mathbf{u}_r]diag(\sigma_1,\cdots,\sigma_r)写成矩阵形式 AVr=UrΣrAV_r=U_r\Sigma_r ,其中矩阵 Vr=[v1,,vr],Ur=[u1,,ur],Σr=diag(σ1,,σr)V_r=[\mathbf{v}_1,\cdots,\mathbf{v}_r],U_r=[\mathbf{u}_1,\cdots,\mathbf{u}_r],\Sigma_r=diag(\sigma_1,\cdots,\sigma_r) 满足 VrTVr=Er,UrTUr=ErV^T_rV_r=E_r,U^T_rU_r=E_r ,注意 VrVrTEr,UrUrTErV_rV^T_r\ne E_r,U_rU^T_r\ne E_r

    AVr=UrΣrAV_r=U_r\Sigma_r 可进行扩充即 A[v1,,vr,,vn]=[u1,,ur,um]diag(σ1,,σr,0,,0)A[\mathbf{v}_1,\cdots,\mathbf{v}_r,\cdots,\mathbf{v}_n] = [\mathbf{u}_1,\cdots,\mathbf{u}_r\cdots,\mathbf{u}_m]diag(\sigma_1,\cdots,\sigma_r,0,\cdots,0) 写成矩阵形式 AV=UΣAV=U\Sigma,此时矩阵 V,UV,U 均是正交矩阵,故 A=UΣVT=σ1u1v1T++σrurvrTA = U\Sigma V^T = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_r,这表明秩为 rr 的任意矩阵 AA 可分解为 rr 个简单矩阵(秩为 11)的矩阵 σiuiviT\sigma_i\mathbf{u}_i\mathbf{v}^T_i 之和,且 σ1σ2σr>0\sigma_1\ge \sigma_2 \ge \cdots \sigma_r > 0,按重要性排序。这就是奇异值分解的核心。注意矩阵 Σ\Sigma 尺寸为 (m,n)(m,n),并不是对角阵,但其前 (r,r)(r,r) 子矩阵 Σr\Sigma_r 是对角阵,对角元素为 σi>0\sigma_i>0 ,矩阵其它元素均为 00

    根据 A=UΣVT=σ1u1v1T++σrurvrTA = U\Sigma V^T = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_r 可得 AT=VΣUT=σ1v1u1T++σrvrurTA^T = V\Sigma U^T = \sigma_1\mathbf{v}_1\mathbf{u}^T_1+\cdots+\sigma_r\mathbf{v}_r\mathbf{u}^T_r

    ATA=VΛVT=λ1v1v1T++λrvrvrTA^TA = V\Lambda V^T = \lambda_1\mathbf{v}_1\mathbf{v}^T_1 + \cdots + \lambda_r\mathbf{v}_r\mathbf{v}^T_rAAT=UΛUT=λ1u1u1T++λrururTAA^T = U\Lambda U^T = \lambda_1\mathbf{u}_1\mathbf{u}^T_1 + \cdots + \lambda_r\mathbf{u}_r\mathbf{u}^T_r

    举几个特殊例子说明奇异值分解。
    1、对单位矩阵 A=EA=E 进行奇异值分解。根据 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_iETEvi=λiviE^TE\mathbf{v}_i = \lambda_i\mathbf{v}_ivi=λivi\mathbf{v}_i = \lambda_i\mathbf{v}_i ,所以所有特征值 λi=1\lambda_i=1Σ=E\Sigma = E。任意单位向量 vi\mathbf{v}_i 均满足方程 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_i,故可取任意正交矩阵 VV ,它们均是特征值 11 对应的特征向量。根据 Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_iui=vi\mathbf{u}_i=\mathbf{v}_i, 故单位矩阵的奇异值分解为 E=VEVTE=VEV^TVV 是任意正交矩阵。通过这个例子可以得出,矩阵的奇异值分解不唯一,只有当矩阵 AA 是方阵且奇异值均不相等时,分解才唯一。同一个奇异值可以对应多个奇异向量,甚至全部,奇异值对应奇异向量的数目称为几何重数。

    2、对正交矩阵 A=QA=Q 进行奇异值分解。根据 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_iQTQvi=λiviQ^TQ\mathbf{v}_i = \lambda_i\mathbf{v}_ivi=λivi\mathbf{v}_i = \lambda_i\mathbf{v}_i ,所以所有特征值 λi=1\lambda_i=1Σ=E\Sigma = E。任意单位向量 vi\mathbf{v}_i 均满足方程 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_i,故可取任意正交矩阵 VV ,它们均是特征值 11 对应的特征向量。根据 Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_iui=Qvi\mathbf{u}_i=Q\mathbf{v}_iU=QVU=QV ,故正交矩阵的奇异值分解为 Q=(QV)EVTQ=(QV)EV^TVV 是任意正交矩阵。

    3、对秩为 11 矩阵 A=xyTA=\mathbf{x}\mathbf{y}^T 进行奇异值分解,其中 x,y\mathbf{x},\mathbf{y} 是单位向量。根据 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_iyyTvi=λivi\mathbf{y}\mathbf{y}^T\mathbf{v}_i = \lambda_i\mathbf{v}_i ,当取 vi=y\mathbf{v}_i=\mathbf{y} 时有 λi=1\lambda_i=1 。由于秩为 11 ,故只有λ1=1\lambda_1=1 ,其它奇异值均为 00u1=Av1=x\mathbf{u}_1=A\mathbf{v}_1=\mathbf{x} 。故矩阵 A=xyTA=\mathbf{x}\mathbf{y}^T 的奇异值分解就是 A=xyTA=\mathbf{x}\mathbf{y}^T 。在 RnR^n 空间扩充基向量得到正交矩阵 VV ,在 RmR^m 空间扩充基向量得到正交矩阵 UU ,则 A=UΣVTA = U\Sigma V^T ,其中伪对角阵 Σ11=10\Sigma_{11}=1,其它元素均为 0

    4、对角阵 A=D=diag(d1,,dn)A=D=diag(d_1,\cdots,d_n) 进行奇异值分解。根据 ATAvi=λiviA^TA\mathbf{v}_i = \lambda_i\mathbf{v}_idiag(d12,,dn2)vi=λividiag(d^2_1,\cdots,d^2_n)\mathbf{v}_i = \lambda_i\mathbf{v}_i(diag(d12,,dn2)λiE)vi=diag(d12λi,,dn2λi)vi=((d12λi)vi1,,(dn2λi)vin)=0(diag(d^2_1,\cdots,d^2_n)-\lambda_i E)\mathbf{v}_i = diag(d^2_1-\lambda_i,\cdots,d^2_n-\lambda_i)\mathbf{v}_i = ((d^2_1-\lambda_i)v_{i1} ,\cdots,(d^2_n-\lambda_i)v_{in}) = \mathbf{0} ,所以 λ1=d12\lambda_1=d^2_1v1=e1\mathbf{v}_1=\mathbf{e}_1λi=di2\lambda_i=d^2_ivi=ei\mathbf{v}_i=\mathbf{e}_i。故正交矩阵 V=EV=E ,奇异值为 σi=di\sigma_i=|d_i|Σ=D\Sigma=|D|,根据 Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_iui=Dei/di=sign(di)ei\mathbf{u}_i=D\mathbf{e}_i/|d_i|=sign(d_i)\mathbf{e}_iU=sign(D)EU=sign(D)E ,故对角阵的奇异值分解为 D=UΣVT=(sign(D)E)DETD=U\Sigma V^T=(sign(D)E)|D|E^T

    展开全文
  • 只可以用在方阵上2.1.1 特征分解的原理2.1.2 特征分解的合理性2.1.3 特征分解的计算2.1.4 对称矩阵的特征分解(这个性质后面SVD推导用到) 1. 前言 要学会矩阵的特征分解,可以提前看矩阵的一些基础知识: ...

    1. 前言

    要学会矩阵的特征分解,可以提前看矩阵的一些基础知识:
    https://blog.csdn.net/qq_30232405/article/details/104588293

    2.矩阵的进阶知识

    2.1 特征分解(谱分解)=>只可以用在方阵上

    2.1.1 特征分解的原理

    如果说一个向量vv是方阵AA的特征向量,将一定可以表示成下面的形式:
    Av=λv(2-1) Av=\lambda v \tag{2-1}

    • 这种形式在数学上的含义:描述的是矩阵AA对向量vv的变换效果只有拉伸,没有旋转。(因为λ\lambda这个值是一个数值)
    • 这时候λ\lambda就被称为特征向量vv对应的特征值

    也可以看成矩阵AA,向量vv,系数λ\lambda这三者建立了一种联系,但显然我们无法通过式(2-1)来用vvλ\lambda表示AA,因为这个式子不是完备的,对于一个秩为 mm的矩阵AA,应该存在mm个这样的式子,完备式子应该是:
    A(v1,v2,...,vm)=(λ1v1,λ2v2,...,λmvm)=(v1,v2,...,vm)[λ1...00...λm] A(v_1,v_2,...,v_m)=(\lambda_1 v_1,\lambda_2 v_2,...,\lambda_m v_m)=(v_1,v_2,...,v_m) \begin{bmatrix} \lambda_1 & ... & 0 \\ \vdots & \ddots & \vdots \\ 0 & ... & \lambda_m \\ \end{bmatrix}
    AV=VΛ(2-2) AV=V\Lambda \tag{2-2}

    根据公式(2-2)就可以得到矩阵AA的特征分解公式:

    A=VΛV1(2-3) A=V\Lambda V^{-1} \tag{2-3}

    • 矩阵的一组特征向量VV是一组正交向量。
    • 其中VV是这个矩阵AA的特征向量组成的矩阵,Λ\Lambda是一个对角阵,每一个对角线上的元素就是一个特征值。

    总结:特征分解,可以得到mm个特征向量和特征值,利用这mm个特征(代表这个矩阵最重要的特征),就可以近似这个矩阵。

    2.1.2 特征分解的合理性

    一个矩阵和该矩阵的非特征向量相乘是对该向量的旋转变换;一个矩阵和该矩阵的特征向量相乘是对该向量的伸缩变换,其中伸缩程度取决于特征值大小。

    矩阵在特征向量所指的方向上具有 增强(或减弱)特征向量 的作用。这也就是说,如果矩阵持续地叠代作用于向量,那么特征向量的就会突显出来,利用python进行计算:

    • 首先举一个例子,假设矩阵AA和向量VV:
      A=[411121323] A= \begin{bmatrix} 4 & 1 & 1 \\ 1 & 2 & 1 \\ 3 & 2 & 3 \\ \end{bmatrix}
      V=[153] V = \begin{bmatrix} -1 \\ 5 \\ 3 \\ \end{bmatrix}

    用矩阵AA去反复左乘一个向量VV,python代码如下:

    import numpy as np
    import copy
    A = np.array([[4, 1, 1], [1, 2, 1], [3, 2, 3]])
    V = np.array([[-1], [5], [3]])
    dot_nums = [1, 3, 5, 10]
    for i in range(len(dot_nums)):
        A_ = copy.copy(A)
        for _ in range(dot_nums[i] - 1):
            A_ = np.dot(A_, A)
        B = np.dot(A_, V)
        B = np.abs(B)
        C = B / np.sum(B)
        print("dot number: %d" % dot_nums[i])
        print(C)
    

    得到结果:

    python模拟左乘

    可以看到不断左乘A后,变换后的归一化向量在(0.33,0.2,0.46)附近徘徊,这与计算出来的最大特征值对应的特征向量归一化后的结果是一致的,这也就佐证了矩阵是具有某种不变的特性的。因此为了提取矩阵这种“不变性”,或者说是为了描述变换(矩阵惩罚是一种线性变换)的主要方向是非常有必要的。

    2.1.3 特征分解的计算

    在 (2-1) 式的基础上,进行一些变形 :
    Av=λvAv=λIv(λIA)v=0(2-4) Av=\lambda v \to Av=\lambda Iv \to (\lambda I-A)v = 0 \tag{2-4}
    根据线性方程组理论,为了使这个方程有非零解,矩阵(λIA)(\lambda I-A)的行列式必须是零:
    det(λIA)v=0(2-5) det(\lambda I-A)v = 0 \tag{2-5}
    上式也被称为是AA的特征方程,计算出所有λ\lambda的取值后,再代入(λIA)v=0(\lambda I-A)v = 0求解对应的vv

    注意:要注意特征值是重根时的情况。。。。

    (1)手算

    求矩阵AA的特征值和特征向量:
    λIA=411121323=(λ6)(λ2)(λ1) |\lambda I-A| = \begin{vmatrix} 4 & 1 & 1 \\ 1 & 2 & 1 \\ 3 & 2 & 3 \\ \end{vmatrix} = (\lambda-6)(\lambda-2)(\lambda-1)

    可以得到结果:
    λ1=6,λ2=2,λ3=1 \lambda_1 = 6, \lambda_2 = 2, \lambda_3=1

    λ=6\lambda=6时,(6IA)v=0(6I-A)v=0:
    (411121323)(v1v2v3)=0 \begin{pmatrix} 4 & 1 & 1 \\ 1 & 2 & 1 \\ 3 & 2 & 3 \\ \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \\ v_3 \\ \end{pmatrix} = 0
    result:v1=5,v2=3,v3=7 result: v_1 = 5, v_2=3, v_3=7

    λ=2\lambda=2时,(2IA)v=0(2I-A)v=0:
    result:v1=1,v2=1,v3=1 result: v_1 = 1, v_2=-1, v_3=1

    λ=1\lambda=1时,(IA)v=0(I-A)v=0:
    result:v1=0,v2=1,v3=1 result: v_1 = 0, v_2=1, v_3=-1

    (2)python计算

    使用python中自带的库eig,其中VV为特征向量矩阵,DD为特征值。VV中的列是对应的每一个特征向量

    import numpy as np
    import copy
    A = np.array([[4, 1, 1], [1, 2, 1], [3, 2, 3]])
    D, V = np.linalg.eig(A)
    if np.equal(np.dot(A, V), np.dot(V, np.diag(D))):
        print(True)
    

    结果为:

    python特征分解

    发现python计算的和手算的特征向量值不同,但比例是一样的,这是因为特征向量不是唯一的,特征向量来自齐次线性方程组的解,是齐次线性方程组的基础解系的非零线性组合。

    2.1.4 对称矩阵的特征分解(这个性质后面SVD推导用到)

    定理:假设矩阵AA是一个对称矩阵,则其不同特征值对应的特征向量两两正交

    证明:

    首先进行特征分解:
    Axi=λixi(2-6) Ax_i=\lambda_i x_i \tag{2-6}
    Axj=λjxj(2-7) Ax_j=\lambda_j x_j \tag{2-7}

    在公式(2-6)左乘xjx_j:
    xjTAxi=λixjTxi(2-8) x_j^\mathrm{T} Ax_i=\lambda_i x_j^\mathrm{T} x_i \tag{2-8}

    因为矩阵A是一个对称矩阵,可以对式(2-8)的左边做如下变换:

    xjTAxi=xjTATxi=(Axj)Txi=(λjxj)Txi=λixjTxi(2-9) x_j^\mathrm{T} Ax_i=x_j^\mathrm{T} A^\mathrm{T} x_i = (Ax_j)^\mathrm{T} x_i = (\lambda_j x_j)^\mathrm{T}x_i = \lambda_i x_j^\mathrm{T} x_i \tag{2-9}

    最后通过(2-9)可以得到:

    (λjxj)Txi=λixjTxi(λjλi)xjTxi=0(2-10) (\lambda_j x_j)^\mathrm{T}x_i = \lambda_i x_j^\mathrm{T} x_i \to (\lambda_j - \lambda_i)x_j^\mathrm{T}x_i = 0 \tag{2-10}
    因为λjλi\lambda_j \neq \lambda_ixjTxix_j^\mathrm{T}x_i必然等于0。
    由于xjx_jxix_i是矩阵A的任意两个特征向量,所以命题得证。

    展开全文
  • 上一部分我们介绍了单纯矩阵的谱分解,这里我们介绍一下正规矩阵的分解。正规矩阵及其分解我们先给出正规矩阵的定义:在实数域里面,只需要将H改成T就可以了。显然,对角阵,酉矩阵,Hermite矩阵都是正规阵。正交...

    2f44cf3b2eba031bebe21ee25c4ff20d.png

    这一课还是有点长,我写的好累啊,分成两节来写了。上一部分我们介绍了单纯矩阵的谱分解,这里我们介绍一下正规矩阵的分解。

    正规矩阵及其分解

    我们先给出正规矩阵的定义:

    17aae7db663847cc0fa7c3bec7b264cc.png

    在实数域里面,只需要将H改成T就可以了。显然,对角阵酉矩阵Hermite矩阵都是正规阵。正交矩阵、实对称矩阵和凡是对称矩阵都是实正规矩阵。但正规矩阵不一定是Hermite矩阵。(正规矩阵不一定具有对称性)

    由正规矩阵的定义我们可以知道,正规矩阵具有n个正交的特征向量(特征子空间两两正交,维数和等于n)。而单纯矩阵具有n个无关的特征向量。这是正规矩阵和单纯矩阵的区别和联系吧。

    下面我们介绍几个定理:

    33ea9569030d70f90c66bfe6044a203c.png

    该引理实际上说的是与正规矩阵相似的矩阵肯定是正规矩阵

    下面,我们给出该定理的证明:

    3d74fe818b418673c63e9105ede48af1.png

    6d8146cdea712c8e5055718c66a86d33.png

    该引理表达的意思是n阶方阵必然和一个上三角矩阵酉相似

    下面我们给出证明:

    因为任何方阵A都和Jordan标准形矩阵相似,故存在可逆矩阵P使得

    ,我们在第十一课:矩阵的三角分解中介绍过定理1,由定理1可知,
    其中U是酉矩阵,
    是正线上三角矩阵。

    fac3abe829d99ad833d9cd4eb110c912.png

    其中

    。上三角矩阵的逆仍然是上三角矩阵,且主对角线上的元素是原矩阵相应主对角线元素的倒数,上三角矩阵的乘积仍然是上三角矩阵且主对角线上的元素原两个矩阵主对角线上元素的乘积。故R是一个上三角矩阵且主对角线上的元素为A的特征值。

    7df0666b9e468d9c950446ef6044b19c.png

    下面我们给出证明:

    书上的证明写的真好,我默写一遍吧:

    ab528c90f5c0909dd7c1be26013745d8.png

    下面我们介绍定理5:

    c8a9c166c438b5ddfd958ea4a02700ed.png

    证明如下:

    先证必要性:

    由A是正规矩阵,故由引理2有

    ,其中R是一个上三角矩阵且主对角线元素为A的特征值,U是一个n阶酉矩阵。由引理1我们知道,A与R酉相似,故R是正规矩阵。由引理3可知,R是一个对角阵。

    证明充分性:

    A与一个对角矩阵酉相似,(对角矩阵是正规矩阵)由引理1可知,A是正规矩阵。

    c234620291b6842b066f38c92b6533db.png

    18fdade94fb6dbf29adca42251744c63.png

    下面给出证明:

    5d4e91e8fbc309d02e9c5df8298d7f1e.png

    51f07b5ae3fc9a5b3cbc25af64e5dafa.png

    03df560a2043c43c01efec37265c10ef.png

    2672d41671ae230555cf353f5635b0b8.png

    77b9fd561d58af963efe642f97845abc.png

    026d209e09d0d87117f18959c876f291.png

    写在后面:

    如果你也对数据科学方面比较感兴趣,欢迎关注我的微信公众号:数据瞎分析,我们一起学习进步。

    展开全文
  • 要学会矩阵的特征分解,可以提前看矩阵的一些基础知识: https://blog.csdn.net/qq_30232405/article/details/1045882932.矩阵的进阶知识2.1 特征分解(谱分解)=>只可以用在方阵上2.1.1 特征分解...

    45b6d7fe82a7723dc120af77aed19a8f.png

    

    1. 前言

    最近几天一直在学习矩阵的知识,恶补了特征分解和SVD算法,发现网上很多资料都是不全的,所以想记录一下这里面的特征分解推导过程。

    要学会矩阵的特征分解,可以提前看矩阵的一些基础知识: https://blog.csdn.net/qq_30232405/article/details/104588293

    2.矩阵的进阶知识

    2.1 特征分解(谱分解)=>只可以用在方阵上

    2.1.1 特征分解的原理

    如果说一个向量

    是方阵
    的特征向量,将一定可以表示成下面的形式:

    • 这种形式在数学上的含义:描述的是矩阵
      对向量
      的变换效果只有拉伸,没有旋转。(因为
      这个值是一个数值)
    • 这时候
      就被称为特征向量
      对应的特征值

    也可以看成矩阵

    ,向量
    ,系数
    这三者建立了一种联系,但显然我们无法通过式(2-1)来用
    表示
    ,因为这个式子不是完备的,对于一个秩为
    的矩阵
    ,应该存在
    个这样的式子,完备式子应该是:

    根据公式(2-2)就可以得到矩阵

    的特征分解公式:

    • 矩阵的一组特征向量
      是一组正交向量。
    • 其中
      是这个矩阵
      的特征向量组成的矩阵,
      是一个对角阵,每一个对角线上的元素就是一个特征值。

    总结:特征分解,可以得到

    个特征向量和特征值,利用这
    个特征(代表这个矩阵最重要的特征),就可以近似这个矩阵。

    2.1.2 特征分解的合理性

    一个矩阵和该矩阵的非特征向量相乘是对该向量的旋转变换;一个矩阵和该矩阵的特征向量相乘是对该向量的伸缩变换,其中伸缩程度取决于特征值大小。

    矩阵在特征向量所指的方向上具有 增强(或减弱)特征向量 的作用。这也就是说,如果矩阵持续地叠代作用于向量,那么特征向量的就会突显出来,利用python进行计算:

    • 首先举一个例子,假设矩阵
      和向量
      :

    用矩阵

    去反复左乘一个向量
    ,python代码如下:
    import numpy as np
    import copy
    A = np.array([[4, 1, 1], [1, 2, 1], [3, 2, 3]])
    V = np.array([[-1], [5], [3]])
    dot_nums = [1, 3, 5, 10]
    for i in range(len(dot_nums)):
        A_ = copy.copy(A)
        for _ in range(dot_nums[i] - 1):
            A_ = np.dot(A_, A)
        B = np.dot(A_, V)
        B = np.abs(B)
        C = B / np.sum(B)
        print("dot number: %d" % dot_nums[i])
        print(C)

    得到结果:

    21df913ffce02604f6bd9924b10bbe06.png

    可以看到不断左乘A后,变换后的归一化向量在(0.33,0.2,0.46)附近徘徊,这与计算出来的最大特征值对应的特征向量归一化后的结果是一致的,这也就佐证了矩阵是具有某种不变的特性的。因此为了提取矩阵这种“不变性”,或者说是为了描述变换(矩阵惩罚是一种线性变换)的主要方向是非常有必要的。

    2.1.3 特征分解的计算

    在 (2-1) 式的基础上,进行一些变形 :

    根据线性方程组理论,为了使这个方程有非零解,矩阵

    的行列式必须是零:
    上式也被称为是
    的特征方程,计算出所有
    的取值后,再代入
    求解对应的

    注意:要注意特征值是重根时的情况。。。。

    (1)手算

    求矩阵$A$的特征值和特征向量:

    可以得到结果:

    时,
    :

    时,
    :

    时,
    :

    (2)python计算

    使用python中自带的库eig,其中

    为特征向量矩阵,
    为特征值。
    中的列是对应的每一个特征向量
    import numpy as np
    import copy
    A = np.array([[4, 1, 1], [1, 2, 1], [3, 2, 3]])
    D, V = np.linalg.eig(A)
    if np.equal(np.dot(A, V), np.dot(V, np.diag(D))):
        print(True)

    结果为:

    31baf70892ce2a911da31705e80b564c.png

    发现python计算的和手算的特征向量值不同,但比例是一样的,这是因为特征向量不是唯一的,特征向量来自齐次线性方程组的解,是齐次线性方程组的基础解系的非零线性组合。

    2.1.4 对称矩阵的特征分解(这个性质后面SVD推导用到)

    定理:假设矩阵$A$是一个对称矩阵,则其不同特征值对应的特征向量两两正交

    证明:

    首先进行特征分解:

    在公式(2-6)左乘

    :

    因为矩阵A是一个对称矩阵,可以对式(2-8)的左边做如下变换:

    最后通过(2-9)可以得到:

    因为
    必然等于0。 由于
    是矩阵A的任意两个特征向量,所以命题得证
    展开全文
  • 文章目录对称矩阵与二次型1 实对称矩阵的对角化-谱分解1.1 含义1.2 实对称矩阵的特征向量是正交的1.3 分解条件1.4 分解方法1.5 谱分解的其他意义1.6 谱分解的应用2. 复数矩阵与酉矩阵2.1 复数向量2.1.1 复数向量的模...
  • 谱分解(SD)

    千次阅读 2019-08-30 20:41:17
    谱分解(Spectral Decomposition ),又称特征分解,或相似标准形分解,是将矩阵分解为由其特征值和特征向量表示的矩阵之积方法,需要注意只有对可对角化矩阵才可以施以特征分解。它体现了线性变换旋转和缩放...
  • 目录Diagonalization of symmetric matricesThe Spectral Theorem 谱定理Spectral Decomposition 谱分解Appendix: proof of Theorem 3 (d) Diagonalization of symmetric matrices A symmetric matrix is a matrix ...
  • 线性代数(22)——矩阵SVD分解

    千次阅读 2019-06-13 20:02:14
    矩阵SVD分解对称矩阵概念对称矩阵性质正交对角化对称矩阵一定可以被正交对角化如果一个矩阵能够被正交对角化,则它一定是对称矩阵定理奇异值概念奇异值几何意义 对称矩阵 ...对称矩阵的特征值一定...
  • 奇异值分解在某些方面与对称矩阵或Hermitian矩阵基于特征向量对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显不同。对称阵特征向量分解的基础是分析,而奇异值分解则是分析理论在任意矩阵上...
  • 1.1特征值如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式:这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量(实对称矩阵不同的特征值对应的特征向量是相互
  • 浅谈矩阵分解以及应用(2)

    千次阅读 2013-01-10 20:50:53
    上一篇谈了矩阵分解中比较简单的三角分解,这里介绍另外两种分解:矩阵的谱分解和LR分解。 矩阵的谱是指矩阵所有特征值的集合。因此,矩阵的谱分解就是利用矩阵的特征值来对矩阵分解。利用矩阵对角化可以得到:任何...
  • 目录线性变换线性空间Ax=b的解空间不构成线性子空间矩阵[向量]空间子空间的加...schmitt正交化应用:信号处理中的变换特征值与特征向量特征值分解实对称矩阵的特征值分解谱定理Spectral Theorem主轴定理实对称矩阵的谱
  • 文章目录一:对称矩阵的对角化1.1定义1.2对称矩阵对角化1.3正交对角化1.4谱定理1.5谱分解二:二次型2.1定义2.2例子2.3二次型的变量代换2.4主轴定理2.5二次型分类2.6特征值和二次型分类三:奇异值分解 一:对称矩阵...
  • 谱图卷积(Spectral Graph Convolution) 正定矩阵和半正定矩阵: ...拉普拉斯矩阵的谱分解: 拉普拉斯矩阵作为半正定矩阵,能够进行谱分解且对角元一定是非负数: ; 同时,作为对称矩阵, --> Gra...
  • 奇异值分解(SVD)

    千次阅读 2014-12-31 11:01:45
    奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显不同。对称阵特征向量分解的基础是分析,而奇异值分解则是分析理论在任意矩阵上...
  • 文章目录第26讲:对称矩阵及正定性对称矩阵 A=ATA=A^TA=AT性质描述证明定理,对称矩阵的分解对称矩阵特征值的符号正定性定义例子 第26讲:对称矩阵及正定性 对称矩阵 A=ATA=A^TA=AT 前面我们学习了矩阵的特征值与...
  • SVD奇异值分解简述

    2020-07-09 19:46:56
    奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量对角化类似。分析基础是对称阵特征向量的分解,而奇异值分解则是分析理论在任意矩阵上推广。 对称矩阵(Symmetric Matrices)是指以主对角线为...
  • 正定矩阵

    2015-04-16 17:46:00
    也被称为正定二次型正定矩阵的判定1、所有特征值为正数(根据定理,若条件成立,必然可以找到对角矩阵呢D和正定矩阵P,使M=P^-1DP);2、所有的顺序主子式为正定;3、Cholesky分解得到的矩阵,其主对角线上的元素...
  • 文章目录前言实对称矩阵正交方阵实斜对称矩阵厄米矩阵正定矩阵相似矩阵投影矩阵反射矩阵Rank-1矩阵逆矩阵矩阵线性变换矩阵的n次方的稳定性e的矩阵次方的稳定性马尔科夫矩阵循环置换特征值分解谱定理Jordan标准型奇异...
  • 奇异值分解(SVD)C语言源代码

    热门讨论 2011-05-04 16:06:07
    奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显不同。对称阵特征向量分解的基础是分析,而奇异值分解则是分析理论在任意矩阵上...
  • 奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显不同。对称阵特征向量分解的基础是分析,而奇异值分解则是分析理论在任意矩阵上...
  • 我们提供以下问题的完整答案:在对称范围内,什么是... 为了获得上述结果,我们开发了一种简单的算法,可以直接根据不可还原成分中风味表示形式的分解结构来确定轻质物质的形式和混合,而无需指定轻质物质矩阵的形式 。
  • 聚类

    千次阅读 2014-03-11 16:48:04
    对于正定的对称矩阵,奇异值就是特征值,奇异向量就是特征向量。 传统聚类算法,如K-Means、EM算法都是建立在凸球形样本空间上,当样本空间不为凸时,算法会陷入局部最优,最终结果受初始参数选择影响比较大。...
  • 对于正定的对称矩阵,奇异值就是特征值,奇异向量就是特征向量。传统聚类算法,如K-Means、EM算法都是建立在凸球形样本空间上,当样本空间不为凸时,算法会陷入局部最优,最终结果受初始参数选择影响比较大。而...
  • 转:聚类

    2018-07-15 16:44:00
    对于正定的对称矩阵,奇异值就是特征值,奇异向量就是特征向量。 传统聚类算法,如K-Means、EM算法都是建立在凸球形样本空间上,当样本空间不为凸时,算法会陷入局部最优,最终结果受初始参数选择影响比较大。...
  • 奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显不同。对称阵特征向量分解的基础是分析,而奇异值分解则是分析理论在任意矩阵上...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

对称矩阵的谱分解