核主成分分析(Kernel PCA)的原理与非线性降维过程
题目描述
核主成分分析(Kernel PCA)是主成分分析(PCA)的非线性扩展,通过核技巧将原始数据映射到高维特征空间,并在该空间中进行线性PCA,从而实现对非线性数据的降维。其核心思想是:在低维空间中线性不可分的数据,在高维特征空间中可能线性可分。本题目要求详细讲解Kernel PCA的数学原理、核函数的作用、以及具体的计算步骤。
解题过程
1. 问题背景与目标
- 问题:传统PCA是一种线性降维方法,仅能捕捉数据的线性结构。对于非线性分布的数据(如螺旋状、环形数据),PCA效果有限。
- 目标:通过核方法将数据非线性映射到高维空间,在高维空间中执行线性PCA,实现非线性降维。
- 关键点:无需显式计算高维映射,仅通过核函数隐式计算高维空间的内积。
2. 核函数与高维映射
- 核函数定义:设原始数据为 \(\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2, ..., \mathbf{x}_n\}\)(每列一个样本),通过非线性映射 \(\phi\) 将数据映射到高维空间:\(\phi(\mathbf{x}_i)\)。
- 核技巧:直接计算 \(\phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j)\) 可能代价高昂,但可通过核函数 \(k(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j)\) 隐式计算。常用核函数包括:
- 多项式核:\(k(\mathbf{x}, \mathbf{y}) = (\mathbf{x}^\top \mathbf{y} + c)^d\)
- 高斯核(RBF):\(k(\mathbf{x}, \mathbf{y}) = \exp(-\|\mathbf{x} - \mathbf{y}\|^2 / (2\sigma^2))\)
3. 高维空间中的PCA步骤
在特征空间中,假设数据已中心化(即 \(\sum_i \phi(\mathbf{x}_i) = 0\)),需求解特征问题:
\[\mathbf{C} \mathbf{v} = \lambda \mathbf{v}, \quad \mathbf{C} = \frac{1}{n} \sum_{i=1}^n \phi(\mathbf{x}_i) \phi(\mathbf{x}_i)^\top \]
其中 \(\mathbf{C}\) 是高维空间的协方差矩阵。特征向量 \(\mathbf{v}\) 可表示为 \(\phi(\mathbf{x}_i)\) 的线性组合:
\[\mathbf{v} = \sum_{i=1}^n \alpha_i \phi(\mathbf{x}_i) \]
将上式代入特征方程,并左乘 \(\phi(\mathbf{x}_j)^\top\),得到核矩阵形式的特征问题:
\[\mathbf{K} \boldsymbol{\alpha} = n \lambda \boldsymbol{\alpha} \]
其中 \(\mathbf{K}\) 是核矩阵,元素 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\),\(\boldsymbol{\alpha} = (\alpha_1, ..., \alpha_n)^\top\)。
4. 数据中心化处理
实际中特征空间数据未中心化,需对核矩阵进行中心化修正:
\[\tilde{\mathbf{K}} = \mathbf{K} - \mathbf{1}_n \mathbf{K} - \mathbf{K} \mathbf{1}_n + \mathbf{1}_n \mathbf{K} \mathbf{1}_n \]
其中 \(\mathbf{1}_n\) 是元素全为 \(1/n\) 的 \(n \times n\) 矩阵。中心化后求解 \(\tilde{\mathbf{K}} \boldsymbol{\alpha} = n \lambda \boldsymbol{\alpha}\)。
5. 特征向量归一化与降维
- 求解特征问题后,保留前 \(k\) 个最大特征值对应的特征向量 \(\boldsymbol{\alpha}^{(1)}, ..., \boldsymbol{\alpha}^{(k)}\)。
- 为保证特征向量 \(\mathbf{v}\) 为单位向量,需对 \(\boldsymbol{\alpha}\) 归一化:\(\boldsymbol{\alpha} \leftarrow \boldsymbol{\alpha} / \sqrt{\lambda n}\)。
- 新样本 \(\mathbf{x}_\text{new}\) 的降维坐标通过投影计算:
\[y_\text{new}^{(j)} = \mathbf{v}^{(j)\top} \phi(\mathbf{x}_\text{new}) = \sum_{i=1}^n \alpha_i^{(j)} k(\mathbf{x}_i, \mathbf{x}_\text{new}) \]
6. 算法总结
- 计算核矩阵 \(\mathbf{K}\)。
- 中心化核矩阵得 \(\tilde{\mathbf{K}}\)。
- 求解 \(\tilde{\mathbf{K}} \boldsymbol{\alpha} = n \lambda \boldsymbol{\alpha}\),取前 \(k\) 大特征值对应的特征向量。
- 对特征向量归一化。
- 将样本投影到特征向量张成的子空间,得到降维结果。
关键点:Kernel PCA通过核函数避免显式高维计算,适用于非线性数据,但核函数选择对结果影响显著。