什么是 PCA 如何从几何问题(有距离)转变为线性代数问题(有特征向量)的直观解释?

机器算法验证 主成分分析 优化 线性代数 直觉
2022-01-17 00:53:45

我已经阅读了很多关于 PCA 的内容,包括各种教程和问题(例如this onethis onethis onethis one)。

PCA 试图优化的几何问题对我来说很清楚:PCA 试图通过最小化重构(投影)误差来找到第一个主成分,同时最大化投影数据的方差。

在此处输入图像描述

当我第一次阅读时,我立即想到了线性回归之类的东西。如果需要,也许您可​​以使用梯度下降来解决它。

然而,当我读到优化问题是通过使用线性代数并找到特征向量和特征值来解决时,我的想法大吃一惊。我根本不明白这种线性代数的使用是如何发挥作用的。

所以我的问题是:PCA 如何从几何优化问题转变为线性代数问题?有人可以提供直观的解释吗?

我不是在寻找这样的答案即“当你解决 PCA 的数学问题时,它最终等同于找到协方差矩阵的特征值和特征向量。” 请解释为什么特征向量是主成分以及为什么特征值是投影到它们上的数据的方差

顺便说一句,我是一名软件工程师,而不是数学家。

注意:上图取自本 PCA 教程并进行了修改。

4个回答

问题陈述

PCA 试图优化的几何问题对我来说很清楚:PCA 试图通过最小化重构(投影)误差来找到第一个主成分,同时最大化投影数据的方差。

这是正确的。我在此处(不带数学)或此处(带数学)的回答中解释了这两个公式之间的联系。

让我们采用第二个公式:PCA 正在尝试寻找方向,以使数据在其上的投影具有最大可能的方差。根据定义,该方向称为第一主方向。我们可以将其形式化如下:给定协方差矩阵$\mathbf C$,我们正在寻找具有单位长度$\|\mathbf w\|=1$的向量$\mathbf w$,使得$\mathbf w ^\top \mathbf{Cw}$是最大的。

(以防万一这不清楚:如果$\mathbf X$是中心数据矩阵,则投影由$\mathbf{Xw}$给出,其方差为$\frac{1}{n-1}( \mathbf{Xw})^\top \cdot \mathbf{Xw} = \mathbf w^\top\cdot (\frac{1}{n-1}\mathbf X^\top\mathbf X)\cdot \mathbf w = \mathbf w^\top \mathbf{Cw}$。)

另一方面,根据定义, $\mathbf C$的特征向量是满足$\mathbf{Cv}=\lambda \mathbf v$的任何向量$\mathbf v$ 。

事实证明,第一主方向由具有最大特征值的特征向量给出。这是一个不平凡且令人惊讶的声明。


证明

如果您打开任何有关 PCA 的书籍或教程,您可以在那里找到以下几乎单行的上述陈述的证明。我们希望在$\|\mathbf w\|=\mathbf w^\top \mathbf w=1$的约束下最大化$\mathbf w^\top \mathbf{Cw} $ ;这可以通过引入拉格朗日乘数和最大化$\mathbf w^\top \mathbf{Cw}-\lambda(\mathbf w^\top \mathbf w-1)$ 来完成;微分,我们得到$\mathbf{Cw}-\lambda\mathbf w=0$,这就是特征向量方程。通过将这个解代入目标函数,我们看到$\lambda$实际上是最大的特征值,它给出$\mathbf w^\top \mathbf{Cw}-\lambda(\mathbf w^\top \mathbf w-1) = \mathbf w^\top \mathbf{Cw} = \lambda\mathbf w^\top \数学bf{w} = \lambda$由于这个目标函数应该被最大化,$\lambda$必须是最大的特征值,QED。

对于大多数人来说,这往往不是很直观。

一个更好的证明(参见@cardinal 的这个简洁的答案)说,因为$\mathbf C$是对称矩阵,它在其特征向量基础上是对角线。(这实际上称为谱定理。)所以我们可以选择一个正交基,即由特征向量给出的基,其中$\mathbf C$是对角线并且在对角线上有特征值$\lambda_i$在此基础上,$\mathbf w^\top \mathbf{C w}$简化为$\sum \lambda_i w_i^2$,或者换句话说,方差由特征值的加权和给出。几乎立即可以最大化这个表达式,只需简单地取$\mathbf w = (1,0,0,\ldots, 0)$,即第一个特征向量,产生方差$\lambda_1$(实际上,偏离这个解决方案并将最大特征值的部分“交易”为较小的部分只会导致较小的整体方差)。注意$\mathbf w^\top \mathbf{C w}$的值不依赖于基!更改为特征向量基相当于旋转,因此在 2D 中可以想象简单地用散点图旋转一张纸;显然这不能改变任何差异。

我认为这是一个非常直观且非常有用的论点,但它依赖于谱定理。所以我认为真正的问题是:谱定理背后的直觉是什么?


谱定理

取一个对称矩阵$\mathbf C$最大特征值$\lambda_1$的特征向量$\mathbf w_1 $ 。将此特征向量作为第一个基向量,并随机选择其他基向量(使得它们都是正交的)。$\mathbf C$在这个基础上会如何?

它将在左上角有$\lambda_1$ ,因为在这个基础上 $\mathbf w_1=(1,0,0\ldots 0)$并且$\mathbf {Cw}_1=(C_{11}, C_ {21}, \ldots C_{p1})$必须等于$\lambda_1\mathbf w_1 = (\lambda_1,0,0 \ldots 0)$

通过相同的参数,它在$\lambda_1$下的第一列中将有零

但是因为它是对称的,所以在$\lambda_1$之后的第一行也会有零所以它看起来像这样:

$$\mathbf C=\begin{pmatrix}\lambda_1 & 0 & \ldots & 0 \\ 0 & & & \\ \vdots & & & \\ 0 & & & \end{pmatrix},$$

其中空白意味着那里有一些元素的块。因为矩阵是对称的,所以这个块也是对称的。所以我们可以对它应用完全相同的参数,有效地使用第二个特征向量作为第二个基向量,并在对角线上得到$\lambda_1$$\lambda_2$ 。这可以持续到$\mathbf C$是对角线。这本质上是谱定理。(注意它是如何工作的,只是因为$\mathbf C$是对称的。)


这是对完全相同的论点的更抽象的重新表述。

我们知道$\mathbf{Cw}_1 = \lambda_1 \mathbf w_1$,所以第一个特征向量定义了一维子空间,其中$\mathbf C$充当标量乘法。现在让我们取任何与$\mathbf w_1$正交的向量$\mathbf v $ 。然后几乎立即发现$\mathbf {Cv}$也与$\mathbf w_1$正交。确实:

$$ \mathbf w_1^\top \mathbf{Cv} = (\mathbf w_1^\top \mathbf{Cv})^\top = \mathbf v^\top \mathbf C^\top \mathbf w_1 = \mathbf v ^\top \mathbf {Cw}_1=\lambda_1 \mathbf v^\top \mathbf w_1 = \lambda_1\cdot 0 = 0.$$

这意味着$\mathbf C$作用于与$\mathbf w_1$正交的整个剩余子空间,使其与$\mathbf w_1$保持分离这是对称矩阵的关键性质。所以我们可以在那里找到最大的特征向量$\mathbf w_2$,并以相同的方式进行,最终构建特征向量的正交基。

这是我对 PCA 背后的线性代数的看法。在线性代数中,关键定理之一是谱定理。它说明如果 S 是具有实系数的任何对称 n × n 矩阵,则 S 具有 n 个特征向量,所有特征值都是实数。这意味着我们可以将$S = ADA^{-1} $与 D 写成一个具有正项的对角矩阵。$ D = \mbox{diag} (\lambda_1, \lambda_2, \ldots, \lambda_n)$并且假设$\lambda_1 \geq \lambda_2 \geq \ldots \geq \lambda_n$没有害处A 是基矩阵的变化。也就是说,如果我们的原始基础是$x_1,x_2, \ldots, x_n$,那么对于$A(x_1), A(x_2), \ldots A(x_n)$给出的基础, S 的作用是对角线的。这也意味着$A(x_i)$可以被认为是与$||A(x_i)||的正交基。= \lambda_i$ 如果我们的协方差矩阵是针对 n 个变量的 n 个观测值,那么我们就完成了。$A(x_i)$提供的基础是 PCA 基础。这是从线性代数事实得出的。本质上这是正确的,因为 PCA 基是特征向量的基,并且大小为 n 的方阵最多有 n 个特征向量。
当然,大多数数据矩阵都不是正方形的。如果 X 是具有 p 个变量的 n 个观测值的数据矩阵,则 X 的大小为 n x p。我将假设$ n>p$(比变量更多的观察)并且$rk(X) = p $(所有变量都是线性独立的)。这两个假设都不是必需的,但它有助于直觉。线性代数从谱定理中得到一个推广,称为奇异值分解。对于这样的 X 它表明$ X = U \Sigma V^{t} $具有大小为 n 和 p 的 U,V 正交(方)矩阵和$\Sigma = (s_{ij}) $一个实对角矩阵只有对角线上的非负条目。我们可以重新排列 V 的基,使得$s_{11} \geq s_{22} \geq \ldots s_{pp}> 0 $在矩阵术语中,这意味着$ X(v_i) = s_{ii} u_i $ if $ i \leq p$$ s_{ii} = 0 $ if $ i> n$$ v_i $给出 PCA 分解。更准确地说,$ \Sigma V^{t} $是 PCA 分解。为什么?再一次,线性代数说只能有 p 个特征向量。SVD 给出了正交且范数递减的新变量(由 V 的列给出)。

Eckart 和 Young ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ) 有一个 1936 年的结果,其中陈述如下

$\sum_1^r d_k u_k v_k^T = arg min_{\hat{X} \epsilon M(r)} ||X-\hat{X}||_F^2$

其中 M(r) 是 rank-r 矩阵的集合,这基本上意味着 X 的 SVD 的前 r 个分量给出了 X 的最佳低秩矩阵近似值,并且最好根据 Frobenius 范数的平方定义 - 平方和矩阵的元素。

这是矩阵的一般结果,乍一看与数据集或降维无关。

但是,如果您不将 $X$ 视为矩阵,而是将矩阵 $X$ 的列视为表示数​​据点向量的列,则 $\hat{X}$ 是表示误差最小的近似值平方误差差异。

“同时最大化投影数据的方差。” 你听说过瑞利商吗?也许这是看待这个的一种方式。即协方差矩阵的瑞利商为您提供了投影数据的方差。(维基页面解释了为什么特征向量最大化瑞利商)