高斯核主成分分析(Kernel PCA)的核技巧与特征空间降维过程
字数 3300 2025-12-06 00:15:33

高斯核主成分分析(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. 步骤总结

  1. 选择高斯核参数 \(\sigma\),计算核矩阵 \(K\)
  2. \(K\) 进行中心化得到 \(\tilde{K}\)
  3. \(\tilde{K}\) 做特征值分解,取前 \(k\) 个最大特征值对应的特征向量,并归一化。
  4. 对训练数据,投影坐标即为 \(\tilde{K}\) 乘以特征向量矩阵。
  5. 对新样本,先计算其与所有训练样本的核向量,中心化后与特征向量内积得到降维坐标。

8. 关键点

  • 高斯核将数据映射到无限维空间,可处理非常复杂的非线性模式。
  • 整个过程只需核函数,无需知道 \(\phi\) 的具体形式,计算复杂度在样本数 \(n\) 上。
  • 带宽 \(\sigma\) 的选择很重要:过大则核矩阵接近全1,失去局部性;过小则对角线突出,易过拟合。
高斯核主成分分析(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,失去局部性;过小则对角线突出,易过拟合。