特征值和特征向量的物理意义探索
最近几天一直在想矩阵(n阶方阵)的特征值和特征向量背后的物理意义。我们都知道可以用PCA算法来对数据特征矩阵进行降维以达到去除冗余特征的效果,即根据数据特征矩阵的特征值大小来选对应的特征向量,然后重新组成一个新的数据特征矩阵作为降维后的数据特征矩阵。但是要理解为什么PCA算法能够通过去除数据的冗余特征来实现对数据特征的降维,就需要清楚数据特征矩阵的特征值和特征向量背后的物理意义才行。
相关背景知识
极大线性无关向量组
假设A = [],其中
,一般m≥n。
若方程组只有零解,即
,并R(A)=n,则说向量组 [
]线性无关,反之则线性相关。若随意增加一个向量,使得
有非零解,则称向量组[
]为极大线性无关向量组。
特征值、特征向量、奇异值
我们称满足,其中
称为矩阵A的特征值,
称为特征值
对应的特征向量。
特征值跟奇异值之间的关系可以由如下推导给出:
令矩阵,由奇异值的表达公式:
对上面的公式作进一步处理可得:
因此可以得到矩阵X的奇异值的平方等于矩阵X和矩阵X的转置相乘后的特征值。
特征值和特征向量的物理意义
假设有两个向量空间,它们各自的一个极大线性无关向量组组成的基矩阵分别为E和A,并且dim(E)=dim(A)。这里解释下为什么要引入基矩阵E和A,我们知道一个向量空间有很多性质和对应的操作,比如可以在一个向量空间里定义距离,以及加法和乘法等等,而在应用距离操作或加乘法操作时,都需要对向量空间里的元素定义一个“位置”,即空间坐标。在线性代数里,我们学过可以用一个极大线性无关向量组来表示向量空间里的任何一个向量。在给定了空间坐标(基矩阵)后,我们就可以给向量空间里的元素一个明确的物理定义。后面为了叙述方便,直接用空间E和空间A来分别代表这两个向量空间。
令某一个元素α在两个向量空间E和A的坐标分别和
,即
,可以看出,如果我们把元素α从向量空间E“转移”到向量空间A,它的坐标就从
变为
。这里之所以刻意保持元素α在两个向量空间里的坐标大小只相差一个刻度
(相当于作了一个缩放操作)是为了分析上的方便,因为我们希望在把数据特征向量投射到目标特征空间的时候,数据的特征向量不会被“变质”(映射到目标特征空间后,狗还是狗,猫还是猫),只需要放大和缩小操作就行了。举个例子,比如现在我们想要训练一个可以识别图片里正方形的分类器,要想让我们的分类器更好的识别图片里的正方形,我们可以做的一件事就是放大线段特征(比如“|”或“—”),并且使得其他特征被缩小(比如像“~”这种不直的特征)。事实上,从一个空间投射到另一个空间后,元素的坐标并不总是只是作了一个简单的缩放操作。我们后面会把这里的
和
分别称作特征值和特征向量。
假设空间E为原特征向量空间,然后我们把元素(数据特征向量)投射到目标特征向量空间A,这时数据的特征向量表示发生了变化(作了一次缩放操作),我们希望有的特征被“放大”,有的特征被“缩小”,即通过这次映射,使得原始的数据特征向量在目标特征向量空间A中被分离开来,重要的特征被“放大”,不重要的特征被“缩小”,用数学语言来表达就是,使得重要的特征向量对应的特征值
越大越好,而不重要的特征向量
对应的
越小越好。在这里我们再引进一个过渡矩阵M,满足EM=A(因为dim(E)=dim(A),所以M一定是个方阵,并且可逆),过渡矩阵的物理意义是如果把空间E投射到空间A需要进行哪些操作,可以理解为一种从E到A的映射关系(反之M的逆
则代表从A到E的映射关系,A
=E)。把EM=A代入
,得到
。在很多时候,我们往往是把一个欧式空间映射到另外一个特征空间(比如希尔伯特空间)上,因此如果我们把E表示为一个标准欧式空间
的话(E是一个nxn的单位矩阵),则可以进一步得到
,由于M可逆,因此得到
。所以在给定过渡矩阵M的逆
的情况下,我们只要通过解方程组
,然后得到不同特征值
以及对应的特征向量
,最后取特征值
较大对应的特征向量
,然后应用矩阵特征分解技术原理(
),重新组成新的数据特征向量矩阵,这样就能实现对数据特征向量矩阵的降维操作。在PCA算法中,它实际上是用
来表示过渡矩阵M的逆
(
的一个算子)。这里之所以是过渡矩阵M的逆
,是因为在降维的时候,其实我们是希望从高维甚至无穷维的特征空间(比如Hilbert空间)映射到有限维或低维的欧式空间(但是在这儿两个向量空间是等维的),所以才用
来表示
。
特征值(奇异值)分解在神经网络中的应用思考
在上面的介绍中,我们了解到了特征值以及特征向量的物理意义,而深度神经网络本身可以看成是一种对特征向量空间的转换过程:。因此是否可以在神经网络每次作转换的时候,根据特征值(奇异值)大小来表示每一维特征的重要性大小,从而调整相应权重的大小,这样是否会使得训练过程更加高效,并且可以保证整个训练过程使用的大部分特征大概率都不会是冗余特征?!
- Make Your Neural Network More Powerful
- Triplet Response Residual(TRR)与特征表示学习
为什么PCA是对X^TX 进行特征分解,而不是其他矩阵呢,比如XX^T?
这是根据协方差矩阵的计算公式而来的,假设X∈mxn,其中m是样本个数,n是特征维度,则根据协方差矩阵的第i,j个元素的计算公式(归一化之后)A_i_j=X^T_i.dot(X^T_j)/m,也就是A=X^TX/m。
换个问法,为什么是对协方差矩阵做分解呢,这背后的原因是什么?
根据奇异值和特征值的公式可以推出,当lamda是X的奇异值时,lamda^2则是X^TX的特征值,而X^TX/m正好是归一化之后的数据特征矩阵的协方差矩阵。