• 【数学】特征值分解、奇异值分解


    1.特征值分解 (EVD):(A=QLambda Q^{-1})

    (若A是方阵,则A=QLambda Q^{-1};若A是实对称方阵,则A=QLambda Q^{T})

    前提:A是方阵。就有如上的分解,其中Q是由矩阵A的特征向量构成,(Lambda)是一个对角阵,由矩阵A的特征值构成,并且P中的特征向量与(Lambda)中的特征值的位置是对应的。

    1.1 特征值

    若向量x是方阵A的特征向量,则有:

    [Ax=lambda x ]

    其中的(lambda)就是特征向量对应的特征值。

    1.2 特征分解推导

    设列向量(x_i)为矩阵A的特征向量,并设矩阵A共有n个线性无关的特征向量,记为(Q=[x_1,x_2,cdots,x_n]),则

    [egin{aligned} AQ & =A[x_1,x_2,cdots,x_n]\ & =[Ax_1,Ax_2, cdots,Ax_n]\ & =[lambda_1x_1,lambda_2x_2, cdots,lambda_nx_n]\ & =[x_1,x_2,cdots,x_n]Lambda\ & = QLambda \ end{aligned} ]

    则,其中的(Lambda)为对角矩阵,(Lambda=diag(lambda_1,lambda_2,cdots,lambda_n),lambda_i)为特征值。由于Q中的特征向量是线性无关的,所以有矩阵Q的逆矩阵。则有

    [egin{aligned} AQ & =QLambda \ A& =QLambda Q^{-1}\ 或Lambda& =Q^{-1}AQ end{aligned} ]

    特殊的,若矩阵A是实对称矩阵,那么它的特征向量是线性无关的,并且是相互正交的,也即矩阵Q是个正交矩阵,因为对于正交矩阵,有(QQ^T=E),所以有:

    [egin{aligned} AQ & =QLambda \ 则AQQ^T & =QLambda Q^T \ 即A& =QLambda Q^{T}\ end{aligned} ]

    A=rand(5,5)*100;
    %随便的方阵A的特征值和特征向量有可能是复数;实对称(如协方差)矩阵的特征值和特征向量是实数,且特征向量相互正交
    [eigenvector,eigenvalue]=eig(A);%eigenvector的列向量和eigenvalue对角元分别为A的特征向量和特征值
    [eigenvector,eigenvalue]=eig(cov(A));%cov(A)是实对称
    

    2.奇异值分解(SVD):(A=ULambda V^{T})

    (任意矩阵A,则有分解:A=ULambda V^{T})

    2.1 奇异值定义

    对任意矩阵A,其(AA^T)是个方阵,同理进行特征值分解,则有

    [(AA^T)v_i=lambda_iv_i ]

    定义:

    [sigma_i=sqrt{lambda_i}\ u_i=frac 1{sigma_i}Av_i ]

    则,这里的(sigma_i)就是奇异值,可见与特征值类似;其中的(v_i)为右奇异向量,(u_i)为左奇异向量;

    同时,对(m imes n的实数矩阵A)有如下的分解定义:

    [A=USigma V^T ]

    (其中U和V均为单位正交阵,即有UU^T=E和VV^T=E,U称为左奇异矩阵,V称为右奇异矩阵,Σ仅在主对角线上有值,\称为奇异值,其它元素均为0。上面矩阵的维度分别为Uin R^{m×m}, Σin R^{m×n}, Vin R^{n×n},其中的\Sigma有如下的形式)

    [Sigma=egin{bmatrix}sigma_{1}&0&cdots&0&0&cdots&0\ 0&sigma_{2}&cdots&0&0&cdots&0\ vdots&vdots&ddots&vdots&vdots&cdots&0\ 0&0&cdots&sigma_m&0&cdots&0end{bmatrix}_{m imes n} ]

    2.2 求解奇异值

    若用上述的定义求解奇异值则会非常的不便,可利用下式

    [AA^T=USigma V^TVSigma^TU^T=USigmaSigma^TU^T ]

    其中(AA^T)是实对称矩阵呀,可以进行特征值分解,这样就可以计算出左奇异矩阵(U)(SigmaSigma^T)了。可以看到,其中的(Sigma)是以奇异值为对角元素的对角阵,而(SigmaSigma^T)则是以奇异值的平方为元素的对角阵。同理可以利用下式

    [A^TA=VSigma^TU^TUSigma V^T=VSigma^TSigma V^T ]

    计算出右奇异矩阵(V)(Sigma^TSigma)

    注意,计算得到的(SigmaSigma^Tin R^{m×m})(Sigma^TSigmain R^{n×n})的矩阵大小是不一样的哟!!但是他们的主对角线的奇异值是相等的

    [SigmaSigma^T=egin{bmatrix}sigma_{1}^2&0&cdots&0\ 0&sigma_{2}^2&cdots&0\ vdots&vdots&ddots&vdots\ 0&0&cdots&sigma_m^2end{bmatrix}_{m imes m}        Sigma^TSigma=egin{bmatrix}sigma_{1}^2&0&cdots&0\ 0&sigma_{2}^2&cdots&0\ vdots&vdots&ddots&vdots\ 0&0&cdots&sigma_n^2end{bmatrix}_{n imes n}  ]

    但两个矩阵的大小是不一样的呀,那么多出来的几个奇异值的大小是怎么样的呢?其实多出来的几个奇异值是很小的,约等于零,可以自己用如下程序算算。

     A=rand(4,6)*100;
     [a,b]=eig(A*A');%b是特征矩阵
     [c,d]=eig(A'*A);%d是特征矩阵
    

    3.参考

    SVD小结

  • 相关阅读:
    Linux Namespace : IPC
    Linux Namespace : UTS
    Linux Namespace : 简介
    《Two Dozen Short Lessons in Haskell》(二十四)代数类型
    为期近五个月的英语培训班总结
    GTD实践2周年后一些体会
    读书笔记2013第10本:《学得少却考得好Learn More Study Less》
    读书笔记2013第9本:《注意力曲线----打败分心与焦虑》
    《Two Dozen Short Lessons in Haskell》(二十二)递归
    GIF图片合集(用于网络请求图片用)
  • 原文地址:https://www.cnblogs.com/LENMOD/p/13602489.html
Copyright © 2020-2023  润新知