矩阵秩的理解

转载 2016年08月30日 21:30:25

https://www.zhihu.com/question/21605094

作者:过拟合
链接:https://www.zhihu.com/question/21605094/answer/25213498
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

首先,讲到矩阵的秩,几乎必然要引入矩阵的SVD分解:X=USV',U,V正交阵,S是对角阵。如果是完全SVD分解的话,那S对角线上非零元的个数就是这个矩阵的秩了(这些对角线元素叫做奇异值),还有些零元,这些零元对秩没有贡献。

有了这个前提,我们就可以用各种姿势来看秩了:

1.把矩阵当做样本集合,每一行(或每一列,这个无所谓)是一个样本,那么矩阵的秩就是这些样本所张成的线性子空间维数。如果矩阵秩远小于样本维数(即矩阵列数),那么这些样本相当于只生活在外围空间中的一个低维子空间,这样就能实施降维操作。举个例子,同一个人在不同光照下采得的正脸图像,假设每一张都是192x168的,且采集了50张,那构成的数据矩阵就为50行192x168列的,但是如果你做SVD分解就会发现,大概只有前10个奇异值比较大,其他的奇异值都接近零,因此实际上可以将接近零的奇异值所对应的那些维度丢掉,只保留前10个奇异值对应的子空间,从而将数据降维到10维的子空间了。

2.把矩阵当做一个映射,既然是映射,那就得考虑它作用在向量x上的效果Ax。注意Ax相当于A的列的某个线性组合,如果矩阵是低秩的,这意味着这些列所张成的空间是外围空间的一个低维子空间,这个空间由Ax表达(其中x任意)。换句话说,这个矩阵把R^n空间映射到R^m空间,但是其映射的像只在R^m空间的一个低维子空间内生活。从SVD理解的话,Ax=USV'x,因此有三个变换:第一是V'x,相当于在原始的R^n空间旋转了一下坐标轴,这样只是坐标的变化,不改变向量本身(例如长度不变);第二是S(V'x),这相当于沿着各个坐标轴做拉伸,并且如果S的对角线上某些元素为零,那么这些元素所对应的那些坐标轴就相当于直接丢掉了;最后再U(SV'x),还是一个坐标轴旋转。总的来看,Ax就相当于把一个向量x沿着某些特定的方向做不同程度的拉伸(附带上一些不关乎本质的旋转),甚至丢弃,那些没被丢弃的方向个数就是秩了。

这样就有很多很直接的应用。例如考虑第一个意义。给定一堆数据,这些数据可能本身只是在一个低维子空间内生活(即可以用一个低秩矩阵表示),但是由于噪声存在,我们拿到这些数据时它们看起来像是外围空间中的点,没有任何可以降维的迹象(即矩阵是满秩的)。设我们拿到的数据是X,那么根据这个设定,X应该能分解为一个低秩矩阵L和一个噪声矩阵E的叠加,即X=L+E。现在问题是如何恢复出L,因为一旦找到L,就相当于去除了噪声,同时降低了数据的复杂度(即维度)。怎么恢复?可以通过求解min rank(L)+\|E\|_F^2, subject to X=L+E来恢复出L和E。秩就显式地被用在这个问题里了。当然,这个问题往往只是引子,无数论文在写出类似问题后不到三行就会把rank(L)换成\|L\|_*,这个就是另外一些故事了。。。

按我的经验,跟秩有关的问题以及几何意义,只需要仔细分析矩阵的SVD分解就能解决。但很可惜,大学里的线性代数更喜欢去介绍SVD的兄弟——特征值分解,而这个兄弟又往往只偏好对称阵,不像SVD这样所有实矩阵都可以分析,导致处理一般矩阵的秩时没有一个趁手的工具。

怎么理解矩阵的秩

首先来想一个问题,最初的那个人为什么为什么要叫他为“秩”,为什么不叫“猪”“牛”“马”? 举个例子就很容易理解,大家排队买票。如果大家互相不认识,那就会一个排一个,非常有秩序。然而,如果突然来了一个...
  • Eric_4300741
  • Eric_4300741
  • 2016年11月22日 11:14
  • 641

向量组/矩阵/秩的理解

向量组呢是由一个或者是多个向量组成的一组向量,比如一个向量可以填充整个一位空间。 对于两个向量,只要不共线就能够张成一个平面,平面中的任何一个向量都可以由两个向量的线性组合表示 对于三个向量,...
  • taiyangshenniao
  • taiyangshenniao
  • 2017年01月13日 09:34
  • 642

Matlab 实现矩阵的满秩分解(最大秩分解)

满秩分解的概念: 设 n m  复矩阵 A 的秩为 r , 如果存在两个与 A 的秩相同的复矩阵 F 与 G , 使得 FG A  ,则称此式为复矩阵 A 的满秩分解 Matlab实现: fu...
  • u010784534
  • u010784534
  • 2015年11月24日 23:02
  • 3079

有关矩阵低秩近似的一个不等式

做矩阵低秩近似的时候,需要默认知道一个基本的不等式,这有助于对低秩矩阵近似有一个更深的理解。今天突然想到了,就尝试证明了一下。这个基本的不等式就是两个矩阵乘积的秩不大于这两个矩阵中任何一个的秩,即 r...
  • jzwong
  • jzwong
  • 2016年06月30日 13:50
  • 1343

秩为1的矩阵的幂规律

首先看规律:矩阵A的任何两行或者两列都成比例,可以提出比例系数,则矩阵A可以分解为两个矩阵的乘积。更一般情况是:若r(A) = 1,则A可以分解为两个矩阵的乘积。规律知道以后,具体的乘积因子该如何确定...
  • u011240016
  • u011240016
  • 2016年10月13日 11:54
  • 1255

线性代数导论11——矩阵空间、秩1矩阵和小世界图

本文是Gilbert Strang的线性代数导论课程笔记。课程地址:http://v.163.com/special/opencourse/daishu.html   第十一课时:矩阵空间、秩1矩阵...
  • suqier1314520
  • suqier1314520
  • 2013年10月28日 21:25
  • 8946

总结利用秩为1的矩阵相关矩阵的秩的计算问题

总结利用秩为1的矩阵相关矩阵的秩的计算问题@(线性代数)对于一个秩为1的矩阵,常常给定的是一个列向量与自己的转置之积。http://blog.csdn.net/u011240016/article/d...
  • u011240016
  • u011240016
  • 2016年11月28日 23:12
  • 890

对矩阵进行满秩分解的MATLAB算法

算法程序是从网上摘抄过来的,但是我添加了注释 由于MATLAB中只有对矩阵直接分解成行最简形式 E(r) D 0 0 的函数,不方便直接看出矩阵的满秩分解形式,即A=P*Q中的P和Q...
  • u014129816
  • u014129816
  • 2015年01月06日 22:10
  • 1672

关于秩的等式与不等式总结

回归到秩的本质:组成矩阵的线性无关的向量个数。AmxnA_{mxn}本身1)0≤r(A)≤min{m,n}0 \leq r(A) \leq min\{m,n\} m决定了阶梯向下的数目,n决定了向...
  • u011240016
  • u011240016
  • 2016年10月13日 23:58
  • 3221

自编的matlab的满秩分解函数

矩阵A是m*n,秩为r的,将其分解为P(m*r,秩为r,即列满秩),和Q(r*n,秩为r,即行满秩),满足A=PQfunction [P,Q]=mypq(A)B=rref(A);[m,n]=size(...
  • lf144090
  • lf144090
  • 2007年11月16日 22:02
  • 3448
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:矩阵秩的理解
举报原因:
原因补充:

(最多只允许输入30个字)