细节内容请关注微信公众号:运筹优化与数据科学
ID: pomelo_tree_opt
Outline
1. subspace
2. rank
3. decomposition
----------------------------------
(1) space
这4个space就是把矩阵A当作linear transform来看待,最重要的4个space.
----------------------------------
比如这么个矩阵,3*4的,按照定义,
-
行空间照理说应该是4维的,但是这个矩阵的行秩只有2,所以是说行空间是2维的,还有2维落在了A的null space中了。
-
列空间照理说应该是3维的,但是这个矩阵的列秩只有2,所以说列空间是2维的,还有1维落在了A转置的null space中。
----------------------------------
(2) rank
首先,rank (A) = dim(R(A)) = dim(C(A))
----------------------------------
Questions:
-
How to calculate rank(A) ?
-
What’s the geometric meaning of rank(A) ?
-
Any implications (complexity of image)?
-
What’s about “rank-1” matrix and “rank-k” matrix?
第一个问题,给定一个矩阵A,怎么去找最多有多少个row或者column是independent. 其实就是把矩阵A化成上三角矩阵的样子,去数数有多少个echelon form by Gaussian elimination.
第2&3个问题,比如rank(A) > rank(B),又代表什么意思呢?
大体意思是说A的信息量比较大,信息量张出来的dimensionality比较大。
第4个问题,前面讲矩阵乘法的地方有说明,一个矩阵可以写成很多个rank-1的矩阵加起来,这个rank-1的矩阵是由一个column vector*一个row vector得到的。
所以如果一个矩阵的rank是n,就可以写成n个上面的东西加起来。这个其实就是矩阵分解的思想。一个matrix的rank越高,传输的量就越多。
-----------------------------
rank demo的case
下面4副图,如果都写成matrix的形式,比较它们的rank
一个图片就是一个矩阵,比如芬兰这个,写成矩阵,然后看看有几个row或column是linearly independent.
-
Finland的case, 竖着看,大约rank是2,横着看大约也是2. Rank不大,所以这个图比较简单。
-
Japan的case, 空白的地方应该都是linearly dependent. 不空白的地方,是symmetric的,所以rank应该也不会很高,但是肯定比芬兰的rank大。
-
最怕的就是那种对角的东西,从行或者列的角度来看,都不可能重复。
怎么算rank是一回事,有不同的标准。但是不管怎么算,这个大小关系是不会变的
所以是rank是个很重要的概念,rank越大出来的东西越复杂,需要存储或传输的信息也越多。
=============================
(3) Matrix decomposition
讲矩阵分解的基本出发点是,一大堆资料就是一个矩阵,我们要怎么处理,怎么存储,怎么传输才会比较好。
-
比如矩阵A可以写成这种,
, 就是把A从linear transform的角度分为三部分,先旋转v,再放缩,再旋转u. 这是SVD的思想。
-
矩阵A还可以写成一大堆矩阵的summation的形式。比如写成n个column vector*row vector的东西,每个东西其实都是rank-1的matrix.
--------------------------------------
Decomposition也可以叫做factorization,就是我们可以把矩阵A变成多少种其他形式的样子,这个非常重要。Decomposition的目的就是用其他形式来表示A。
--------------------------------------
首先是QR分解,A=QR
如果A是一个方阵,A可以分为Q和R两部分,其中
-
Q的部分就是上面的orthogonal matrix,至于怎么去找orthogonal matrix,就是那个Gram-Schmidt的东西;
-
R是个上三角矩阵
如果A是invertible, 就是说A的行列式不为0,linearly independent, 那么这种分解是唯一的。
如果A不是一个方阵,A还是可以分成Q和R两部分,只是
-
Q的部分是个m*n的矩阵,它的列向量构成一个orthonormal list,
-
R还是个n*n的上三角矩阵。
如果A满秩,并且R的对角元素为正,那么这个分解也是唯一的。
整体上是在讲,A这个矩阵比较乱,看不清楚,把它分解成一个Q*R的形式,Q的东西是很清晰的,彼此orthogonal, Q经过R的变化组合就得到了A。(上三角矩阵表示一种特殊的变化)
--------------------------------------
Eigenvalue decomposition & sigular value decomposition (SVD)
-
对于方阵而言,是eigenvalue, eigenvector, and eigen-decomposition,所有的eigenvectors都是mutually orthogonal的,只要normalize一下,就是orthonormal的。而且但凡是orthogonal的东西,Q的转置=Q的逆.
-
对于非方阵而言,是singular value, singular vector, and SVD (singular value decomposition)
所以如果A是方阵,就是特征值分解,如果A不是方阵,就是奇异值分解
如果来的资料A不是个方阵,我们要么把A变成一个方阵再去处理,要么直接处理A,其实直接处理也是可以的。
--------------------------------------
SVD的第一个作用就是那个一个矩阵A可以分解成一大堆简单矩阵求和的形式。
第二个作用是matrix norm可以用singular value来重新表示。类似于用eigenvalue来重新表示方阵的determinant, trace,norm那些。
第三个PCA的东西本身也是low rank approximation相关的内容。
PCA的思想
====================================