PCA主成分分析原理的三种角度的理解

您所在的位置:网站首页 两个向量间的夹角怎么看 PCA主成分分析原理的三种角度的理解

PCA主成分分析原理的三种角度的理解

2024-07-06 15:08| 来源: 网络整理| 查看: 265

主成分分析算是降维算法中的一个经典算法了。网上也有很多博客介绍了这个算法。这篇文章从三个不同的角度,对PCA方法做了详细的分析,不同的角度进行推导最后得到的也都是同一个结果,推导过程需要些数学基础,但总体是非常好理解的。

一、PCA算法

PCA算法的基本步骤如下: 在这里插入图片描述 对于我个人而言,我是先知道的这个步骤,由于现在在python里面用PCA非常方便,只要调个库就行。我在很长一段时间对于这个过程使比较懵逼的。 比如为啥这里要计算均值话后的协方差矩阵?为啥要进行特征分解对应前d’个特征向量?为啥得到这个W后就能够降维了呢? 如果你看了一些博客有类似的疑惑,或者第一次接触到PCA,那么这篇文章将能对你理解PCA有很大的帮助。 当然,这篇文章需要你有一些数学基础如下:(1) 拉格朗日乘子法。(2)最小化损失函数的思想。(3)各种线性代数矩阵相关的数学知识,比如什么是协方差矩阵,什么是特征分解,矩阵与矩阵转置运算等等。如果你有所缺漏,你可能在某一步的推导上会存在疑惑,但不会影响你对PCA有一个完整而准确的理解。

二、PCA进行降维的基本思想

为啥得到一个矩阵 W W W后就可以进行降维了呢?这其实是一个比较简单的问题,想想假设我们得到的 W W W是一个 m × d m \times d m×d的矩阵,其中 m m m是原样本空间的维度, d d d是新样本空间的维度,这样我们对于原来的一个样本 x x x(一个 m m m维向量),我们作线性变换 y = W T x y=W^Tx y=WTx,得到的就是一个 d d d维的向量,这个 y y y就是降维后的结果。 实际上直观地想,主成分分析PCA就是一种线性降维方法,将高维空间的样本进行线性变换,使其降维到一个低维空间中。 在这里插入图片描述 因此这个降维问题的关键在于怎么求得矩阵W,使得在新空间下的样本尽可能保留了原来样本的信息。

三、主成分分析——重构角度

有了上面对PCA的基本了解,知道了它的基本思想后,我们就可以从不同的角度来看待这个问题了。 可重构直观来说就是:样本到这个超平面的距离都足够近;我们首先从上一部分内容中推导。 在这里插入图片描述 这里的第一段话非常重要,我们将原样本投影到一个d维空间,那么这d个维度肯定需要是两两正交的,即当 i ≠ j i \neq j i​=j时对应 w i w j = 0 w_iw_j = 0 wi​wj​=0,这里注意 w i w_i wi​是一个列向量,因此从矩阵角度看,有 W T W = I W^TW=I WTW=I(这个非常重要!!),那么显然反过来是不对的,即没办法得到 W W T = I WW^T=I WWT=I。 第二第三行是显然的,第四行需要再解释一下,已知空间中每一个维度的表示,且有样本在每一个维度下的坐标,我们如何在一个空间下表示一个向量?在这里插入图片描述 理解到 w j w_j wj​是每一个维度的单位长, y i j y_{ij} yij​是样本在这个维度下的坐标值,这样上面的求和得到的就是 x i ^ \hat{x_i} xi​^​这个向量。重构的思想就这样出来了,实际上我们是在新的空间下重构了这个向量,上面这个 x ^ \hat{x} x^就是在新空间下重构得到的。

由于我们原来就有一个 x i x_i xi​,那么我们很自然希望这个原来的样本和重构得到的样本的误差和最小,即 ∑ i = 1 n ∣ ∣ x i − x i ^ ∣ ∣ 2 2 \sum_{i=1}^{n}||x_i-\hat{x_i}||_2^2 ∑i=1n​∣∣xi​−xi​^​∣∣22​这就是我们希望优化的目标函数,即重构误差,我们代入一下上面的公式计算一下这个误差。 在这里插入图片描述 在这里插入图片描述 这里的推导需要一定的数学基础,实际上每一步都是比较直观的。主要 x i x_i xi​是一个已知值,转化后就是常数,最后这一步零均值话需要自己代入试一试就知道是对的了。

实际上没有自己推导这个步骤,也不会影响理解。 这样,我们希望最小化这个损失,那么主成分分析的最优化模型为:在这里插入图片描述 到这一步,我们就可以利用拉格朗日乘子法去求解这个最优化过程为: 在这里插入图片描述 这一步是拉格朗日乘子法里的通用步骤,引入 λ \lambda λ再对 W W W求导即可。(没懂的需要自行看拉格朗日乘子法的内容)。 这里怎么求这个 W W W呢,一定要注意我们对W是有限制的,即W是一个 m × d m\times d m×d的矩阵,因此W对应的解为: 在这里插入图片描述 这样,我们就对应到PCA算法的描述了,也就知道为啥要计算协方差矩阵,为啥要进行特征分解了。(实际上是最小化误差以及拉格朗日求解的过程)

四、主成分分析——可区分角度

这个角度其实是我们说的最多的角度,也是很多文章默认的推导角度。

可区分角度直观的思路如下: 在这里插入图片描述 那么,我们接下来计算一下样本的(协)方差即可。 在这里插入图片描述 这里的最后一步是方差的计算公式,省略掉了 − 0 -0 −0,这样我们的最优化过程希望最大化方差,即在这里插入图片描述 可以看到,这里是和前面可重构角度一致的,因此后面也可以用拉格朗日乘子法计算。

五、主成分分析——Minimum Error Formulation

这个角度相较于上面两个角度推导稍微复杂一些,也没那么常看到。这其中的推导还得自己手动拿笔算算才能够对应的上。

这里的核心思想是通过旋转坐标系从而最小化误差,直接看这句话是很难理解的,我们上公式: 在这里插入图片描述 !!!注意:这里的公式与可重构角度是不太一样的,在维度的选择上选择了m维,故这里的理解是将原m维空间维度进行旋转(旋转坐标系),得到的还是个m维空间,我们的降维过程实际上是在这个新的m维空间中选择d维,使得抛弃的信息最少。 在这里插入图片描述 这一步的推导注意第二行,去掉求和符号用到了 y i j y_{ij} yij​是一个值,这样我们就可以用正交基的性质消掉不同下标的 w i w_i wi​了(都是很基本的线性代数,需要好好再看看) 在这里插入图片描述

这一步理解很关键。注意到我们新投影后仍然是m维空间,我们将其非常我们需要降维得到的d维和其他维。注意为啥要区分成 z i j z_{ij} zij​和 b j b_j bj​两种不同的值,这是由我们降维到d维空间这个目标决定的。

接下来最小化误差就和重构角度类似,但求解不太一样在这里插入图片描述 这里对 b j b_j bj​求导并令其为0,需要自己手动算一下,最后会得到上面的结果。 接下来对 z i j z_{ij} zij​求导在这里插入图片描述 代回原式 J J J有 在这里插入图片描述 在这里插入图片描述 上面的推导需要自己试着推一推,都不难,但不自己推也不影响最后理解。因此最后的最优化目标就可以写成在这里插入图片描述 这里看起来和前面两种角度不一致,但我们首先考虑0均值化,那么S就可以化简成 X X T XX^T XXT,接着这里是最小化d+1至m,求的是最小特征值,那么实际上对应着最大化1至d,求的是最大的d个特征值,这样和前面两种角度的公式就是完全一致的了。

求解还是利用拉格朗日乘子,这里不再赘述。

六、总结

这里的内容主要参考的是周志华老师的西瓜书《机器学习》,对其中的内容和推导有一定的细化和扩展。对我自己来说,这些推导对帮助我完整理解PCA有很大帮助,理解了之后,也就不用再去背PCA的算法步骤,而是能通过一个角度完整把算法步骤进行还原。文章很长,有很多数学推导,希望对大家有参考价值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3