PCA与奇异值分解的关系,奇异值降维网络原理



实际中最好的做法是选择一个合适的\textbf{P},使得\textbf{Y}的协方差矩阵(covariance matrix)\textbf{S}_Y=\frac{1}{n-1} \textbf{Y}\textbf{Y}^T能够被对角化(diagonalized)。这是符合直观的因为这样子所有的covariance都被消除了(比如可能本来有很多noise)而留下的就是最能体现信息量的方差本身。具体的做法则是,注意到\textbf{X}\textbf{X}^T也是对称正定矩阵所以我们可以做特征值分解(eigen-decomposition)得到\textbf{X}\textbf{X}^T=\textbf{E}\textbf{D}\textbf{E}^T,其中\textbf{D}是对角矩阵(对角元是特征值),\textbf{E}的每列是相应的特征向量。我们令\textbf{P}=\textbf{E}^T便能得到我们的principal components。因为用这样的\textbf{P},我们就有(注意因为\textbf{P}是正交阵,所以\textbf{P}^T =\textbf{P}^{-1}):\textbf{S}_Y=\frac{1}{n-1}\textbf{P}(\textbf{X}\textbf{X}^T)\textbf{P}^T=\frac{1}{n-1}\textbf{P}(\textbf{P}^T\textbf{D}\textbf{P})\textbf{P}^T=\frac{1}{n-1}(\textbf{P}\textbf{P}^{-1})\textbf{D}(\textbf{P}\textbf{P}^{-1})=\frac{1}{n-1}\textbf{D}
即我们可以将\textbf{S}_Y对角化。

而SVD来源于另外的一套数学概念,不过我们将要说明这套概念和PCA是内在关联的。不同于特征值分解,SVD(奇异值分解)可以作用于任何形状的矩阵。于是我们则定义对\textbf{X}的SVD为\textbf{X}=\textbf{U}\Sigma\textbf{V}^T,其中\textbf{U},\textbf{V}是两个正交阵而\Sigma是对角阵(对角元是\textbf{X}的奇异值,即singular values)。我们由此也可以看到SVD比特征值分解要强得多的泛用性,这也是它广泛被用于数值计算的原因。

那么它与PCA的关系呢?我们考虑\textbf{S}_X的SVD表示方式:\textbf{S}_X=\frac{1}{n-1} \textbf{V}\Sigma \textbf{U}^T\textbf{U}\Sigma\textbf{V}^T=\frac{1}{n-1}\textbf{V}\Sigma^2\textbf{V}^T,所以到这里答案就很明显了,我们只需要取另一个投影矩阵\textbf{P}=\textbf{V}^T就可以将\textbf{S}_Y对角化,即\textbf{V}的列是principal components。顺便,我们得到了一个副产品奇异值和特征值的关系:\lambda_i=\frac{1}{n-1}s_i^2,其中\lambda_i,s_i\textbf{S}_X\Sigma相应的特征值和奇异值。因此,我们得到了SVD是PCA的另一种algebraic formulation。而这也提供了另外一种算法来计算PCA,实际上,平时我就是用SVD定义的这套算法来做PCA的。因为很方便,计算一次就可以了。

额外补充一点,经常我们希望用PCA对\textbf{X}进行压缩,比如只保留k<p维度的数据,这个时候我们只需要仅保留\textbf{V}的前k列(前k个principal components),记作\textbf{V}_k,然后\textbf{V}_k^T\textbf{X}就是我们所要的压缩后的数据。

对于pca问题其实是如下优化问题:

由于,可以知道V为正交矩阵,  因为从几何上可以知道,要想得到最大的方差,Y的协方差矩阵必为对角矩阵,即,由矩阵分析知识,V必为的特征向量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值