高斯核主成分分析(Kernel PCA)的核技巧与特征空间降维过程
题目描述
高斯核主成分分析(Kernel PCA)是一种非线性降维方法。它通过“核技巧”(Kernel Trick),将原始数据隐式地映射到高维特征空间,再在特征空间中执行标准PCA,从而捕捉数据中的非线性结构。本题要求详细讲解高斯核(即径向基核)在KPCA中的应用原理,包括核矩阵构建、中心化处理、特征值分解,以及如何将数据降维到低维空间的具体计算步骤。
解题过程循序渐进讲解
1. 核心思想
标准PCA仅能发现数据中的线性结构(即找到方差最大的线性投影方向)。对于非线性分布的数据(如同心圆、螺旋线),线性PCA效果有限。KPCA的核心思路是:
- 通过一个非线性映射函数 \(\phi\),将原始数据 \(x_i\) 映射到高维(甚至无限维)特征空间。
- 在特征空间中,数据可能变得线性可分或近似线性,此时再对特征空间中的数据做PCA。
- 但直接计算 \(\phi(x_i)\) 的维度可能极高,计算不可行。核技巧允许我们只通过核函数 \(k(x_i, x_j) = \phi(x_i)^T \phi(x_j)\) 来隐式地计算特征空间中的内积,从而避免显式计算 \(\phi\)。
2. 高斯核函数
高斯核(RBF核)定义为:
\[k(x_i, x_j) = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) \]
其中 \(\sigma\) 是带宽参数,控制函数的局部性。高斯核对应的特征空间是无限维的,它能将数据映射到非常复杂的非线性空间中。
3. 核矩阵构建
设原始数据为 \(X = [x_1, x_2, \dots, x_n]^T \in \mathbb{R}^{n \times d}\),共 \(n\) 个样本。定义核矩阵 \(K \in \mathbb{R}^{n \times n}\),其中每个元素:
\[K_{ij} = k(x_i, x_j) \]
由于高斯核是正定核,\(K\) 是对称半正定矩阵。
4. 核矩阵中心化
在特征空间中执行PCA时,需要保证数据是零均值的,即 \(\sum_{i=1}^n \phi(x_i) = 0\)。但实际中映射后的数据不一定满足。为此,我们需要对特征空间中的数据进行中心化,这等价于对核矩阵 \(K\) 进行如下变换:
\[\tilde{K} = K - 1_n K - K 1_n + 1_n K 1_n \]
其中 \(1_n \in \mathbb{R}^{n \times n}\) 是全1矩阵除以 \(n\),即 \((1_n)_{ij} = \frac{1}{n}\)。具体计算为:
\[\tilde{K} = K - \frac{1}{n} \mathbf{1} K - \frac{1}{n} K \mathbf{1} + \frac{1}{n^2} \mathbf{1} K \mathbf{1} \]
这里 \(\mathbf{1}\) 表示全1矩阵。另一种等价写法是:
\[\tilde{K} = (I - \frac{1}{n} \mathbf{1}_{n \times n}) K (I - \frac{1}{n} \mathbf{1}_{n \times n}) \]
这一步确保特征空间中的协方差矩阵为 \(\frac{1}{n} \tilde{\Phi}^T \tilde{\Phi}\),其中 \(\tilde{\Phi}\) 是中心化后的特征矩阵。
5. 特征值分解
在特征空间中,我们希望找到投影方向 \(v\)(单位向量),使得投影后数据的方差最大。这等价于求解特征空间协方差矩阵的特征向量。但显式求解 \(v\) 需要知道 \(\phi(x_i)\)。KPCA的关键推导是:特征向量 \(v\) 可表示为样本的线性组合:
\[v = \sum_{i=1}^n \alpha_i \phi(x_i) \]
其中 \(\alpha = [\alpha_1, \dots, \alpha_n]^T\) 是待求系数向量。将上述代入特征方程,可推得:
\[\tilde{K} \alpha = n \lambda \alpha \]
其中 \(\lambda\) 是特征值。因此,我们只需对中心化核矩阵 \(\tilde{K}\) 做特征值分解:
\[\tilde{K} \alpha = \lambda' \alpha \]
这里 \(\lambda' = n \lambda\)。我们取前 \(k\) 个最大特征值对应的特征向量 \(\alpha^{(1)}, \dots, \alpha^{(k)}\),并将每个特征向量归一化(在特征空间中长度为1),即要求 \(v^T v = 1\),这等价于:
\[\alpha^{(p) T} \tilde{K} \alpha^{(p)} = \lambda_p' \quad \Rightarrow \quad \|\alpha^{(p)}\|^2 = \frac{1}{\lambda_p'} \]
因此归一化:\(\alpha^{(p)} \leftarrow \alpha^{(p)} / \sqrt{\lambda_p'}\)。
6. 降维投影
对于任意一个样本 \(x\)(可以是新样本),其在第 \(p\) 个主成分上的投影坐标为:
\[z_p = v_p^T \phi(x) = \sum_{i=1}^n \alpha_i^{(p)} k(x_i, x) \]
注意:如果 \(x\) 是训练样本 \(x_j\),则其投影即为 \(\tilde{K}\) 的第 \(j\) 行与 \(\alpha^{(p)}\) 的内积。对于新样本,还需要对核向量进行中心化:
\[k_{\text{test}} = [k(x_1, x), \dots, k(x_n, x)]^T \]
\[\tilde{k}_{\text{test}} = k_{\text{test}} - \frac{1}{n} \mathbf{1} K - \frac{1}{n} K \mathbf{1}_\text{test} + \frac{1}{n^2} \mathbf{1} K \mathbf{1} \]
其中 \(\mathbf{1}_\text{test}\) 是全1矩阵的适当形式。实际常用简便方式:\(\tilde{k}_{\text{test}} = (k_{\text{test}} - \frac{1}{n} \mathbf{1}_{1 \times n} K)^T\) 再整体中心化。最终,新样本的降维坐标为:
\[z = [\tilde{k}_{\text{test}}^T \alpha^{(1)}, \dots, \tilde{k}_{\text{test}}^T \alpha^{(k)}]^T \]
7. 步骤总结
- 选择高斯核参数 \(\sigma\),计算核矩阵 \(K\)。
- 对 \(K\) 进行中心化得到 \(\tilde{K}\)。
- 对 \(\tilde{K}\) 做特征值分解,取前 \(k\) 个最大特征值对应的特征向量,并归一化。
- 对训练数据,投影坐标即为 \(\tilde{K}\) 乘以特征向量矩阵。
- 对新样本,先计算其与所有训练样本的核向量,中心化后与特征向量内积得到降维坐标。
8. 关键点
- 高斯核将数据映射到无限维空间,可处理非常复杂的非线性模式。
- 整个过程只需核函数,无需知道 \(\phi\) 的具体形式,计算复杂度在样本数 \(n\) 上。
- 带宽 \(\sigma\) 的选择很重要:过大则核矩阵接近全1,失去局部性;过小则对角线突出,易过拟合。