SVD通俗解析

1.特征分解

    对于方阵A(n×n)而言,假若A存在n个特征向量线性无关,也就是满足可对角化的条件

那么有

                                                                           A=W\Sigma W^{-1}

   其中,W是这n个特征向量所张成的n×n维矩阵,而Σ为这n个特征值构成的对角矩阵

   假如A为对称矩阵,则A可以表示为

                                                                            A=W\Sigma W^T

   此时,W为标准正交矩阵,因此有W^T=W^{-1}

   W^T的行向量对应着W的列向量,即A的特征向量

  从这里也看以清晰的看到,对于向量x而言,对其作Ax变换,首先是将x进行空间变换,投影到A的各个特征向量上,然后使用特征值对其进行拉伸收缩,然后利用空间逆变换,回到原先的坐标空间,具有清晰的几何意义。

2.SVD定义

    对于矩阵A,我们想找到这样一个变换,使得

                                       A = U\Sigma V^T

 

其中, A是m×n矩阵, U是m×m的单位正交矩阵,称为左奇异矩阵,Σ是一个m×n的矩阵,只有对角线上存在不为0的值,这些值称为奇异值,V是一个n×n的单位正交矩阵,称为右奇异矩阵。

3.SVD推导过程

       由于A不是方阵,无法直接做特征分解,曲线救国,我们利用A^TA,A^TA进行求解

       AA^T = (U\Sigma V^T)(U\Sigma V^T)^T=U\Sigma_1^2U^T

        A^TA = (U\Sigma V^T)^T(U\Sigma V^T)=V\Sigma_2^2V^T

       A^TA,A^TA属于对称矩阵,一定可以求得U,V

      \Sigma,\Sigma_1,\Sigma_2 三个矩阵大小虽然可能不一致,但是他们对角线上奇异值是一样的,且奇异值从大到小排列

     A=U\Sigma V^T \Rightarrow AV=U\Sigma \Rightarrow Av_i = \lambda_i u_i

     可以看出,U和V中的特征向量是存在对应关系的

     至此,SVD的原始计算过程已经结束                                                            

4.SVD应用

SVD的一个主要功能是用于数据压缩

A=U\Sigma V^T=(u_1,..,u_m)\Sigma\begin{pmatrix} v_1^T\\ ...\\ v_n^T \end{pmatrix}

令 Rank(A) = k

  A_{m \times n} \approx (u_1,..,u_k)_{m \times k}\Sigma_{k \times k}\begin{pmatrix} v_1^T\\ ...\\ v_k^T \end{pmatrix}_{k\times n}= \sum _k\lambda_iu_iv_i^T

通过保留U,V中最重要的特征向量,保存了A中的主要信息。这里,A的空间需求为m×n,U为m×k,V为n×k,特征值为1×k,k越小,压缩得越厉害

对于奇异矩阵A而言,U 和V所代表的含义并不相同,只是两个同是正交的矩阵,虽存在着转换关系,但整个转换过程的几何意义并不好解释。

另外,SVD也用于LSI,推荐系统,有些PCA的实现算法也用到了SVD,使用其奇异矩阵的特征向量作为投影轴,提取A中的主要成分。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值