基于核熵成分分析(Kernel Entropy Component Analysis, KECA)的特征提取与密度保留优化过程
1. 题目描述
核熵成分分析(Kernel Entropy Component Analysis, KECA)是一种基于信息论的特征提取与降维方法。与主成分分析(PCA)最大化方差、或核PCA(KPCA)在特征空间中最大化方差不同,KECA的目标是保留数据分布的信息熵,具体来说,是最大化与数据分布相关的Renyi熵的估计。KECA通过核技巧将数据映射到高维特征空间,并在该空间中选择能够最大程度保留数据熵信息的特征向量,从而实现降维。它的核心思想是:数据的熵与数据分布的“结构”紧密相关,保留熵即保留了数据的关键分布特征。
2. 解题过程(循序渐进讲解)
步骤1:理解目标——Renyi熵的估计
KECA的关键是Renyi二次熵。对于随机变量 \(X\) 的概率密度函数 \(p(x)\),Renyi二次熵定义为:
\[H(p) = -\log \int p(x)^2 dx \]
但 \(p(x)\) 未知,我们需要从样本中估计它。KECA使用Parzen窗密度估计(核密度估计)来近似 \(p(x)\)。具体地,给定样本 \(\{x_i\}_{i=1}^n\),Parzen估计为:
\[\hat{p}(x) = \frac{1}{n} \sum_{i=1}^n k_\sigma(x, x_i) \]
其中 \(k_\sigma\) 是核函数(通常为高斯核)。代入熵定义:
\[\hat{H} = -\log \int \hat{p}(x)^2 dx \]
忽略对数(因为对数单调,最大化熵等价于最大化其内部项),我们关心的是:
\[V = \int \hat{p}(x)^2 dx \]
这就是信息势(Information Potential)。
步骤2:将信息势表达为核矩阵的形式
将Parzen估计代入 \(V\):
\[V = \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n \int k_\sigma(x, x_i) k_\sigma(x, x_j) dx \]
如果核函数 \(k_\sigma\) 是平移不变的,并且满足 \(k_\sigma(x, y) = k_\sigma(x-y)\),则积分可解析计算。特别地,对于高斯核 \(k_\sigma(x, y) = \exp\left(-\frac{\|x-y\|^2}{2\sigma^2}\right)\),有:
\[\int k_\sigma(x, x_i) k_\sigma(x, x_j) dx = (\sqrt{\pi}\sigma)^d \cdot k_{\sigma/\sqrt{2}}(x_i, x_j) \]
其中 \(d\) 是数据维度。常数项不影响最大化,所以我们可以聚焦于:
\[V \propto \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n k_{\sigma/\sqrt{2}}(x_i, x_j) \]
定义核矩阵 \(K\) 满足 \(K_{ij} = k_{\sigma/\sqrt{2}}(x_i, x_j)\),则:
\[V \propto \frac{1}{n^2} \mathbf{1}^\top K \mathbf{1} \]
其中 \(\mathbf{1}\) 是全1向量。这表示信息势与核矩阵的所有元素和有关。
步骤3:引入特征空间视角
KECA 的关键步骤是将数据通过核技巧映射到特征空间 \(\mathcal{H}\)。设 \(\phi(x)\) 是映射函数,使得 \(k(x, y) = \langle \phi(x), \phi(y) \rangle_{\mathcal{H}}\)。在特征空间中,我们可以用特征值分解来表示 \(K\):
\[K = E \Lambda E^\top \]
其中 \(\Lambda\) 是特征值对角矩阵,\(E\) 是特征向量矩阵。那么,信息势可以重写为:
\[V = \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n k(x_i, x_j) = \frac{1}{n^2} \mathbf{1}^\top E \Lambda E^\top \mathbf{1} \]
进一步写成:
\[V = \frac{1}{n^2} \sum_{k=1}^n \lambda_k \left( \sum_{i=1}^n e_{k,i} \right)^2 \]
其中 \(\lambda_k\) 是第 \(k\) 个特征值,\(e_{k,i}\) 是第 \(k\) 个特征向量的第 \(i\) 个分量。这个分解表明:信息势是特征值加权的特征向量分量和的平方的加权和。
步骤4:选择特征子集以最大化保留的信息势
降维的目标是选择 \(m\) 个特征向量(\(m < n\))来近似 \(V\)。定义每个特征向量 \(e_k\) 对信息势的贡献为:
\[\text{贡献}_k = \lambda_k \left( \sum_{i=1}^n e_{k,i} \right)^2 \]
KECA 的特征选择策略是:
- 计算所有特征向量的贡献值。
- 按贡献从大到小排序。
- 选择贡献最大的前 \(m\) 个特征向量对应的特征方向,作为降维后的特征空间基。
与KPCA(按特征值大小排序)不同,KECA考虑了特征向量分量和,这使得它更关注能保留数据整体分布结构的特征方向,而不仅仅是方差最大的方向。
步骤5:降维投影的计算
选定前 \(m\) 个特征向量 \(e_1, \dots, e_m\) 后,对于一个新样本 \(x\),其在KECA降维空间中的投影坐标为:
\[y_k = \frac{1}{\sqrt{\lambda_k}} \sum_{i=1}^n e_{k,i} \, k(x, x_i), \quad k=1,\dots,m \]
这类似于KPCA的投影,但所用的特征向量是按信息势贡献选择的,而非特征值大小。
3. 算法总结
KECA 的完整步骤:
- 选择核函数(通常为高斯核),计算核矩阵 \(K\)。
- 对 \(K\) 进行特征值分解:\(K = E \Lambda E^\top\)。
- 对每个特征向量 \(e_k\),计算贡献 \(\lambda_k (\sum_i e_{k,i})^2\)。
- 按贡献降序排列特征向量,选择前 \(m\) 个。
- 将数据投影到选定的特征向量上,得到降维后的表示。
4. 关键点理解
- KECA vs. KPCA:KPCA 选择最大特征值对应的特征向量,以保留最大方差;KECA 选择最大贡献(特征值乘以特征向量分量和的平方)对应的特征向量,以保留数据分布的熵。
- 密度保留:KECA 的目标函数与 Parzen 窗密度估计紧密相关,因此降维后的数据能更好地保持原始数据的密度结构。
- 适用场景:当数据分布的结构(如聚类、流形)与熵密切相关时,KECA 可能比基于方差的方法更具优势,尤其在异常检测或聚类任务中。