版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/winycg/article/details/83005881
矩阵的秩
对于一个
M×N的矩阵A,其秩R(A)为线性无关的行向量(列向量)的数量。在空间中,秩表示矩阵的行向量或列向量所张成的空间的维度。
比如有矩阵并化为行最简矩阵:
⎣⎡12123−110−5−2−17⎦⎤∼⎣⎡100010−3204−30⎦⎤
所以上述的矩阵秩为2,表示矩阵中的所有向量都可以由
⎣⎡100⎦⎤和
⎣⎡010⎦⎤线性表示,相当于矩阵张成了二维的空间。
对于
[1−11−1002−2],按行看,行向量在4维空间中关于原点对称;从列来看,列向量在2维空间中4个点位于同一条直线。所以该矩阵只张成了一个1维的空间,所以秩为1,列向量都可以由
[1−1]线性表示。
(1)行秩等于列秩,所以矩阵的秩不会超过行向量或列向量的行数和列数,所以有关系:
R(A)≤min(M,N)
(2)
R(AB)≤min(R(A),R(B))
两个不同秩的矩阵相乘,得到的矩阵的秩不会超过两者秩的最小值。
比如:
[1000][100100]=[100000]
因为多余的维度会被乘0而消失,当然秩也不一定会等于
min(R(A),R(B)),因为可能相乘的时候有数的位置不一定对应有数的位置,导致都变为0,使得秩下降。
特征值和奇异值
参考链接:https://blog.csdn.net/qq_36653505/article/details/82052593
特征值: 针对的是
n阶方阵。设A是n阶方阵,如果存在 λ 和n维非零向量x,使
Ax=λx,则 λ 称为方阵A的一个特征值,x为方阵A对应于或属于特征值 λ 的一个特征向量。从定义上来看,对特征向量
x进行
A变换实质上是对
x进行缩放,缩放因子为
λ,所以
x的方向也不变。一个变换方阵的所有特征向量组成了这个变换矩阵的一组基。N个特征向量就是N个标准正交基,而特征值的模则代表矩阵在每个基上的投影长度(
∣∣A∣∣cos<A,x>=∣∣x∣∣Ax=Ax)。特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,所有向量组内的其他的向量都可以由特征向量线性组合得到。
奇异值:
特征值及特征值分解都是针对方阵而言,但是大多数矩阵都不是方阵,奇异值相当于方阵中的特征值,奇异值分解相当于方阵中的特征值分解。此时将
A与其转置相乘
ATA将会得到一个方阵,再求特征值。
SVD分解
MIT公开课视频:http://open.163.com/movie/2010/11/1/G/M6V0BQC4M_M6V2B5R1G.html
参考博客:https://blog.csdn.net/u010099080/article/details/68060274
SVD(singular value decompsition),描述:
输入:矩阵
DM×N=(x1,x2,...,xn),xi∈RM
D=k=1∑pσkukvkT=UM×MΣM×NVN×NT
其中
Σ为对角矩阵,对角线上的值为矩阵
DM×N特征值的平方根(eigenvalues),也就是奇异值(singular values),表示此维度的方差。
uk和vkT为
σk对应的左奇异向量(left-singular vectors)和右奇异向量(left-singular vectors)。其中
U和V均为正交阵(列向量都是单位向量且两两正交(垂直))。
SVD的求解:
U的列由
AAT 的单位化过的特征向量构成
V的列由
ATA 的单位化过的特征向量构成
Σ的对角元素来源于
AAT 和
ATA 的平方根,从大到小排序选取
min(M,N)个特征值的平方根作为对角线。。
对于矩阵
D=⎣⎢⎢⎡21004300⎦⎥⎥⎤,对应的SVD分解为:
python实现:
import numpy as np
A = np.array([[2, 4], [1, 3], [0, 0], [0, 0]])
print(np.linalg.svd(A))
左特征向量
U的意义:
U的每一列对应一个方向(成分),不同列对应的方向相互垂直。
将
Σ中的特征值从大到小排序,同时
U(和V)中的列
uk(和行vk)也会相应调整。其中
u1代表方差最大的方向,
u2代表与
u1垂直的方差最大的方向,
u3代表与
u1和
u2垂直的方差最大的方向。
以词项-文档关联矩阵为例,矩阵D:每一个文档由所有的M个单词进行表示,每一个维度表示此单词是否在文档中出现。
ui为M维向量,M维中的每一维表示一个单词。
u1,u2,...,uR组成了一个R维的空间,所有单词在坐标系上张成了一个空间,
u1表示方差最大的方向。
右特征向量
V意义:
从另一种角度看矩阵D,每一个单词可由N个文档表示,每一个维度表示是否出现该单词。
vi为N维向量,N维中的每个维度表示一个文档。
v1表示所有文档向量张成的空间中,方差最大的方向。