我的知识记录

digSelf

深入浅出主成分分析(PCA):从原理到推导的完全指南

深入浅出主成分分析(PCA):从原理到推导的完全指南

在数据科学和机器学习领域,我们经常面临“维度灾难”的挑战——数据点的特征维度过高,不仅导致计算复杂度急剧增加,还可能因为特征间的相关性而引入噪声,影响模型效果。然而,在许多高维数据中,真正承载主要信息的“有效维度”可能并不多。主成分分析(Principal Component Analysis, PCA)正是解决这一问题的经典利器。本文将带您从PCA的直观概念出发,一步步深入其数学核心,完整推导出如何通过最小化重建误差来找到最佳的降维投影方向,最终揭示其与协方差矩阵特征分解之间的深刻联系。

什么是降维与主成分分析(PCA)

对于一些数据点,其特征维度看起来很高,其中独立带来信息的维度可能并不多。例如在三维空间中的一条空间直线,它可以用一张二维平面无损的表示。上述例子类似于给定一个向量组,这个向量组中存在有冗余向量,即向量组中的向量之间是线性相关的。当向量组去除冗余向量后,可以降低计算复杂度和空间复杂度。此外,对于一些无法用低维的情况来表示高维的情况,其可能仅需要少数的特征/维度就能表示绝大部分的情况,对于计算资源有限等情况是非常有帮助的。

上述描述的就是降维(Dimensionality Reduction),其目标是将高维的数据点变换为低维空间数据点,并尽可能的减少信息的损失。

PCA的核心思想:最小化重建误差

若采用投影的方式将高维空间中的数据点投影到低维空间的数据点,则这个问题可以建模为一个有约束的优化问题:最小化总重建误差。采用该目标的线性降维方法被称为主成分分析(Principal Components Analysis,PCA)。令X = [\pmb x_1^\top; \cdots; \pmb x_m^\top] \in \mathbb{R}^{n \times m}, \pmb x_i \in \mathbb{R}^n, \pmb y_j \in \mathbb{R}^n, \|\pmb y_j\|_2 = 1,则有:

\begin{align*} &\mathop{\arg\min}_{\pmb y_j} &\sum_{i = 1}^m \|\pmb x_i - \sum_{j = 1}^k (\pmb x_i^\top \pmb y_j)\pmb y_j\|_2^2 \\ &\mathrm{s.t.} \\ && \pmb y_i^\top \pmb y_j = 0, i \ne j \in \{1, 2, \cdots, k\} \\ && \pmb y_i^\top \pmb y_i = 1, i \in \{1, 2, \cdots, k\} \end{align*}

不可或缺的前提:数据中心化

该优化模型表示的是在互相正交的所有n维向量中,找到kk \ll m)个总重建误差最小的那几个向量作为基向量。需要注意的是,在坐标系里,一个方向向量\pmb y_j是采用其终点坐标表示的,这里有一个隐藏前提:它的起点是在原点。在目标函数中\pmb x_i^\top \pmb y_j描述的是将向量\pmb x_i投影到起点在原点的向量\pmb y_j上。因此,应用PCA方法进行降维时,有一个隐藏前提:数据点X的质心被移动到了原点,即中心化了的数据。

从向量到矩阵:PCA的数学推导

为了方便,将上述优化问题转化为矩阵和向量语言进行描述。

目标函数的矩阵化

首先,数据点向由k个基向量张成的子空间的投影可以表示为:

\begin{align*} \hat{\pmb x}_i = YY^\top \pmb x_i, \qquad \hat{\pmb x}_i \in \mathbb{R}^n \end{align*}

其中

Y = [\pmb y_1, \pmb y_2, \cdots, \pmb y_k] \in \mathbb{R}^{n \times k}

进而目标函数可以写为:

\sum_{i = 1}^m \|\pmb x_i - YY^\top \pmb x_i\|_2^2

而这个表达式恰好是矩阵的 Frobenius范数的定义,因此可以将上式写为:

\|X^\top - YY^\top X^\top\|_F^2

进而上述优化问题可以表述为:

\begin{align*} &\mathop{\arg\min}_{Y} &\|X^\top - YY^\top X^\top\|_F^2 \\ &\mathrm{s.t.}\\ && Y^\top Y = I_k \end{align*}

其中I_k是一个k阶的单位矩阵。

利用迹(Trace)进行化简

根据F范数的性质,对于目标函数有下式:

\begin{align*} \|X^\top - YY^\top X^\top\|_F^2 &= \mathrm{tr}[(X^\top - YY^\top X^\top)^\top(X^\top - YY^\top X^\top)] \\ &= \mathrm{tr}[(X - X YY^\top)(X^\top - YY^\top X^\top)] \\ &= \mathrm{tr}[XX^\top - XYY^\top X^\top - XYY^\top X^\top + XYY^\top YY^\top X^\top] \end{align*}

根据约束条件,上述迹可以化简:

XYY^\top YY^\top X^\top= XY(Y^\top Y)Y^\top X^\top = XYI_kY^\top X^\top = XYY^\top X^\top

进而有:

\|X - YY^\top X\|_F^2 = \mathrm{tr}(XX^\top - X Y Y^\top X^\top)

由于两者均为对称矩阵,则上式可以展开如下:

\|X^\top - YY^\top X^\top\|_F^2 = \mathrm{tr}(XX^\top) - \mathrm{tr}(X Y Y^\top X^\top)

由于决策变量为Y,常数\mathrm{tr}(X X^\top)不影响优化问题的解。此外,利用迹的循环性质,上述优化问题可以表述为:

\begin{align*} &\mathop{\arg\max}_{Y} &\mathrm{tr}(Y^\top X^\top X Y)\\ &\mathrm{s.t.}\\ && Y^\top Y = I_k \end{align*}

谱分解与最终求解

C = X^\top X,有C^\top = C,进而采用谱分解,存在单位正交矩阵Q,是得C = Q\Lambda Q^\top,进而上述优化问题可以转化为:

\begin{align*} &\mathop{\arg\max}_{Y} &\mathrm{tr}(Y^\top Q \Lambda Q^\top Y)\\ &\mathrm{s.t.}\\ && Y^\top Y = I_k \end{align*}

根据单位正交矩阵的性质,令Z = Q^\top Y,有:

\begin{align*} &\mathop{\arg\max}_{Z} &\mathrm{tr}(Z^\top \Lambda Z)\\ &\mathrm{s.t.}\\ && Z^\top Z = I_k \end{align*}

该优化问题可以采用KKT条件进行求解,也可以采用放缩的方式来进行求解。具体如下:定义偏序关系\lambda_1 \ge \lambda_2 \ge \cdots,因此,应该把权重尽可能地分配给最大的那些 \lambda

  • 为了最大化第一项 \pmb z_1^\top \Lambda \pmb z_1,在\pmb z_1^\top \pmb z_1 = 1的约束下,应该让\pmb z_1的所有质量都集中在\lambda_1对应的分量上。所以,最优的\pmb z_1 就是[1, 0, \cdots, 0]^\top
  • 为了最大化第二项\pmb z_2^\top \Lambda \pmb z_2,同时要满足与\pmb z_1正交的约束,应该让\pmb z_2的所有质量都集中在下一个最大的\lambda_2对应的分量上。所以,最优的\pmb z_2就是[0, 1, 0,\cdots, 0]^\top
  • 以此类推,直到\pmb z_k

所以,最优的矩阵Z是这样的一个n \times k矩阵:

Z_{optimal} = \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \\ 0 & 0 & \cdots & 0 \\ \vdots & \vdots & & \vdots \\ 0 & 0 & \cdots & 0 \end{pmatrix} = \begin{bmatrix} I_k \\ 0 \end{bmatrix}

它的前 k 行是一个 k \times k 的单位矩阵,其余行全是 0。由于Z = Q^\top Y,进而可以反解Y = QZ,即:

Y = [\pmb y_1, \pmb y_2, \cdots, \pmb y_k] = QZ = Q[\pmb z_1, \pmb z_2, \cdots, \pmb z_k] \implies Y = [\pmb q_1, \pmb q_2, \cdots, \pmb q_k]

结论与直观理解

为了最小化重建误差,应该选择的投影基Y,是由原始数据协方差矩阵X^\top X的前k个最大特征值所对应的特征向量组成的矩阵。上述推导的直观理解就是最大化投影后的数据的离散程度(方差)。在数据分析中,信息就是差异或变化。若两个数据没有差异,则不会带来额外的信息。例如,“全班同学的身高都是170厘米”这句话所含的信息量,远小于“全班同学的平均身高是170厘米,其中最高的同学的身高是185厘米”。第二个例子中身高具有差异(方差),带来了额外的信息。PCA正是通过寻找能最大化保留这种差异性的投影方向,来实现最有效的信息压缩。

  • 0