《九章》中的方程都是多元的一次方程组。这样的方程组又叫线性方程
组,因为每个未知元都是一次,方程表示的曲线都是直线 (或平面),所以
叫线性方程。下面就是用今天的符号给出的一个线性方程组:
3x-2y+z=10
-2x+y-3z=7
9x-y+4z=8
解这个方程组不是什么难事,常用的是加减消元法。在解的过程中大家
都会觉察到,对于一个线性方程组来讲,它的解是多少,有解没有解,起关
键作用的,是各变元的系数和常数项,所以人们往往把这些系数、常数项按
顺序排成一个 “阵”——叫矩阵:
3 -2 1 10
-2 1 -3 7
9 -1 4 8
只要对这个矩阵进行适当的变换,就能知道有没有解,解是多少等等。
比如说对矩阵的任意一行,都可以乘以一个不为零的数,进行变换,因为相
应的方程也可以进行这样的变换。
如何理解矩阵的「秩」?
形象的理解,或者功能特点其他的角度之类的
按投票排序按时间排序
13 个回答
顾左右、知乎用户、strew stanza 等人赞同
首先,讲到矩阵的秩,几乎必然要引入矩阵的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这样所有实矩阵都可以分析,导致处理一般矩阵的秩时没有一个趁手的工具。
有了这个前提,我们就可以用各种姿势来看秩了:
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这样所有实矩阵都可以分析,导致处理一般矩阵的秩时没有一个趁手的工具。
這裡補充說明一下,匿名用戶「把矩阵看成线性映射那么秩就是象空间的的维数」的答案。
線性代數中最重要的三個概念是線性空間、線性映射(函數)和對偶。
在很多課本中處於很重要位置的矩陣反而不是重要概念,是個較次要的概念。
所有線性代數中的概念幾乎都可以歸於以上三者。
例如矩陣可以視為線性映射自然引出的概念。
矩陣的秩可以看作線性映射象空間的維數。
矩陣的和可以看作線性映射的和。
矩陣的積可以看作線性映射的複合。
矩陣的轉置可以伴隨算子所對應的矩陣。
伴隨算子是指f L(V,W),W*,V*分別是V和W的對偶空間
若有f*滿足W* V*,f*(g)=gf=gf,其中g W*
f*稱為f的伴隨算子。
二次型似乎不線性,實際上是雙線性函數。
行列式是n線性反對稱函數。
在有限維情況下,線性映射和矩陣同構。
但無限維情況下,沒有這種結論,這是為何矩陣無法取代映射,
但映射可以取代矩陣的原因。
那為何工科線性代數,不以線性空間、線性映射(函數)和對偶為核心,
反而要以矩陣為核心呢?原因有二,一工程問題大都屬於有限維問題。
二以線性空間、線性映射(函數)和對偶為核心的線性代數雖然更本質但難度太大,大部分工科生無法學懂。
實際上,國內確實有以線性空間、線性映射(函數)和對偶為核心而不以矩陣為核心的線性代數課本,如龔昇的線性代數五講(網上有盜版,建議買正版),但對大部分工科生而言一輩子也沒必要看懂這本書。
線性代數中最重要的三個概念是線性空間、線性映射(函數)和對偶。
在很多課本中處於很重要位置的矩陣反而不是重要概念,是個較次要的概念。
所有線性代數中的概念幾乎都可以歸於以上三者。
例如矩陣可以視為線性映射自然引出的概念。
矩陣的秩可以看作線性映射象空間的維數。
矩陣的和可以看作線性映射的和。
矩陣的積可以看作線性映射的複合。
矩陣的轉置可以伴隨算子所對應的矩陣。
伴隨算子是指f L(V,W),W*,V*分別是V和W的對偶空間
若有f*滿足W* V*,f*(g)=gf=gf,其中g W*
f*稱為f的伴隨算子。
二次型似乎不線性,實際上是雙線性函數。
行列式是n線性反對稱函數。
在有限維情況下,線性映射和矩陣同構。
但無限維情況下,沒有這種結論,這是為何矩陣無法取代映射,
但映射可以取代矩陣的原因。
那為何工科線性代數,不以線性空間、線性映射(函數)和對偶為核心,
反而要以矩陣為核心呢?原因有二,一工程問題大都屬於有限維問題。
二以線性空間、線性映射(函數)和對偶為核心的線性代數雖然更本質但難度太大,大部分工科生無法學懂。
實際上,國內確實有以線性空間、線性映射(函數)和對偶為核心而不以矩陣為核心的線性代數課本,如龔昇的線性代數五講(網上有盜版,建議買正版),但對大部分工科生而言一輩子也沒必要看懂這本書。
矩阵可以做是向量的组合,对于这些向量有多少是不能被其他任何向量取代的。这个向量个数就是矩阵的秩了。形象来说,比如一维空间向量是一个数a,那么在这个空间中其他的任意数x都可以通过x=k*a来表示。对于二维空间,任意两个不平行的向量a、b,都可以表示空间中的任意向量X有
X = K1*a + K2*b。其他以此类推
X = K1*a + K2*b。其他以此类推
王勰 赞同
- 矩阵(在一个具有显著意义的同构的意义上)即是线性映射。
- 矩阵的列秩是线性映射像空间的维数。
- 矩阵的行秩是这个线性映射的对偶映射的像空间的维数。
- 很幸运,这两个像空间维数相等,于是有了统一的秩。
No comments:
Post a Comment