核熵成分分析(Kernel Entropy Component Analysis, KECA)的密度估计视角与特征提取过程
1. 问题描述
核熵成分分析是一种基于信息论的非线性降维与特征提取方法。与主成分分析(PCA)最大化方差、核PCA(KPCA)最大化特征空间方差不同,KECA 从密度估计的角度重新审视核特征空间,其目标是保留数据分布的Renyi熵的主要信息,从而提取出对数据密度估计最重要的成分。
该算法的关键思想是:数据在特征空间中的分布熵主要由核矩阵的特征值与特征向量共同决定,选择那些对熵贡献最大的成分,可实现对数据结构的有效表示。
本题将详细讲解 KECA 的数学原理、与密度估计的关联、计算步骤及应用场景。
2. 核心思想:从密度估计到特征选择
KECA 的出发点基于Parzen窗密度估计。给定数据集 \(\{\mathbf{x}_i\}_{i=1}^N\),其 Parzen 窗估计为:
\[\hat{p}(\mathbf{x}) = \frac{1}{N} \sum_{i=1}^N \kappa_\sigma(\mathbf{x}, \mathbf{x}_i) \]
其中 \(\kappa_\sigma\) 是宽度为 \(\sigma\) 的核函数(如高斯核)。
Renyi二阶熵定义为:
\[H(p) = -\log \int p(\mathbf{x})^2 d\mathbf{x} \]
代入 Parzen 估计,可推导出熵的估计值与核矩阵的特征值/特征向量相关。
通过特征分解,数据在特征空间的熵可表示为核矩阵特征值的函数,选择对熵贡献最大的特征方向,即可实现降维。
3. 数学推导:从核矩阵到熵贡献
假设使用高斯核函数 \(k(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\|\mathbf{x}_i - \mathbf{x}_j\|^2 / 2\sigma^2)\)。
定义核矩阵 \(\mathbf{K} \in \mathbb{R}^{N \times N}\),其中 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
中心化核矩阵 \(\tilde{\mathbf{K}} = \mathbf{HKH}\),其中 \(\mathbf{H} = \mathbf{I} - \frac{1}{N}\mathbf{11}^T\)。
关键步骤:
- 对 \(\tilde{\mathbf{K}}\) 进行特征分解:
\[ \tilde{\mathbf{K}} = \mathbf{U} \mathbf{\Lambda} \mathbf{U}^T, \quad \mathbf{\Lambda} = \text{diag}(\lambda_1, \dots, \lambda_N) \]
- 数据在特征空间的密度估计可表示为:
\[ \hat{p}(\phi(\mathbf{x})) = \frac{1}{N} \sum_{i=1}^N k(\phi(\mathbf{x}), \phi(\mathbf{x}_i)) \]
其中 \(\phi(\cdot)\) 是核映射。
- Renyi二阶熵的估计为:
\[ \hat{H} = -\log \left( \frac{1}{N^2} \mathbf{1}^T \mathbf{K} \mathbf{1} \right) = -\log \left( \frac{1}{N^2} \sum_{i,j} K_{ij} \right) \]
- 进一步推导可得:
\[ \mathbf{1}^T \mathbf{K} \mathbf{1} = \sum_{i=1}^N \left( \sqrt{\lambda_i} \mathbf{u}_i^T \mathbf{1} \right)^2 \]
定义 熵贡献 为:
\[ \mathcal{C}_i = \sqrt{\lambda_i} \left| \mathbf{u}_i^T \mathbf{1} \right| \]
则 \(\mathbf{1}^T \mathbf{K} \mathbf{1} = \sum_{i=1}^N \mathcal{C}_i^2\)。
结论:熵的大小由 \(\mathcal{C}_i\) 的平方和决定。选择前 \(m\) 个最大 \(\mathcal{C}_i\) 对应的特征向量,可最大程度保留数据分布的熵信息。
4. 算法步骤
- 计算核矩阵:
输入数据 \(\mathbf{X} = [\mathbf{x}_1, \dots, \mathbf{x}_N]^T\),使用高斯核计算 \(\mathbf{K}\)。 - 中心化核矩阵:
\(\tilde{\mathbf{K}} = \mathbf{HKH}\)。 - 特征分解:
求解 \(\tilde{\mathbf{K}} = \mathbf{U} \mathbf{\Lambda} \mathbf{U}^T\)。 - 计算熵贡献:
对每个特征值 \(\lambda_i\) 和对应特征向量 \(\mathbf{u}_i\),计算:
\[ \mathcal{C}_i = \sqrt{\lambda_i} \left| \mathbf{u}_i^T \mathbf{1} \right| \]
- 选择主成分:
将 \(\mathcal{C}_i\) 从大到小排序,选择前 \(m\) 个最大的 \(\mathcal{C}_i\) 对应的特征向量 \(\mathbf{u}_{(1)}, \dots, \mathbf{u}_{(m)}\)。 - 降维投影:
新数据点 \(\mathbf{x}\) 的投影坐标为:
\[ z_j = \frac{1}{\sqrt{\lambda_{(j)}}} \sum_{i=1}^N u_{(j)i} k(\mathbf{x}, \mathbf{x}_i), \quad j=1,\dots,m \]
其中 \(u_{(j)i}\) 是第 \(j\) 个特征向量的第 \(i\) 个元素。
5. 与核PCA的区别
- 目标不同:
KPCA 选择最大特征值对应的特征向量,以保留特征空间的最大方差。
KECA 选择对 Renyi 熵贡献最大的成分,强调密度分布结构。 - 选择准则不同:
KPCA 按特征值排序;KECA 按 \(\mathcal{C}_i = \sqrt{\lambda_i} |\mathbf{u}_i^T \mathbf{1}|\) 排序。 - 应用场景:
KECA 在聚类、异常检测等密度相关的任务中表现更好;KPCA 更适用于方差主导的结构。
6. 总结
KECA 将信息熵引入核方法,通过熵贡献选择特征方向,提供了一种基于密度估计的特征提取视角。其核心在于熵贡献公式 \(\mathcal{C}_i = \sqrt{\lambda_i} |\mathbf{u}_i^T \mathbf{1}|\),该公式融合了特征值与特征向量与数据分布的关联,使得降维结果更能反映数据的本质密度结构。