基于核的线性判别分析(Kernel Linear Discriminant Analysis, K-LDA)的原理与非线性降维分类过程
1. 题目描述
线性判别分析(LDA)是一种经典的监督降维与分类算法,旨在寻找一个投影方向,使得不同类别的样本在该方向上具有最大的类间散度(类间距离)和最小的类内散度(类内距离)。然而,LDA只能学习线性投影,对于非线性可分的数据效果有限。基于核的线性判别分析(K-LDA)通过引入核技巧(Kernel Trick),将原始数据映射到高维特征空间,再在特征空间中执行LDA,从而实现对非线性可分数据的降维与分类。本题将详细介绍K-LDA的数学原理、核技巧的应用,以及具体的计算步骤。
2. 核心思想:从LDA到K-LDA
2.1 回顾LDA的目标
设数据集为 \(\{x_i, y_i\}_{i=1}^N\),其中 \(x_i \in \mathbb{R}^d\),\(y_i \in \{1,2,\dots,C\}\) 为类别标签。LDA寻找投影矩阵 \(W \in \mathbb{R}^{d \times m} (m \leq C-1)\),使得投影后的数据 \(z_i = W^T x_i\) 满足:
- 类间散度(Between-class scatter)最大化;
- 类内散度(Within-class scatter)最小化。
目标函数为:
\[J(W) = \frac{W^T S_B W}{W^T S_W W} \]
其中 \(S_B\) 为类间散度矩阵,\(S_W\) 为类内散度矩阵。
2.2 LDA的局限性
LDA假设数据是线性可分的。如果数据在原始空间中呈现非线性分布(例如环形或交叉分布),则LDA的线性投影无法有效分离类别。
2.3 K-LDA的解决思路
K-LDA通过一个非线性映射 \(\phi: \mathbb{R}^d \to \mathcal{H}\),将数据映射到高维特征空间 \(\mathcal{H}\)(可能是无限维),然后在 \(\mathcal{H}\) 中执行LDA。由于 \(\phi\) 通常难以显式表达,我们使用核函数 \(k(x_i, x_j) = \langle \phi(x_i), \phi(x_j) \rangle\) 来隐式计算特征空间的内积,从而避免直接处理 \(\phi\)。
3. K-LDA的数学推导
3.1 特征空间中的LDA问题
在特征空间中,数据变为 \(\phi(x_i)\)。我们希望找到投影向量 \(w \in \mathcal{H}\)(假设 \(w\) 位于 \(\phi(x_i)\) 张成的空间中,即 \(w = \sum_{i=1}^N \alpha_i \phi(x_i)\)),使得目标函数最大化:
\[J(\alpha) = \frac{\alpha^T K B K \alpha}{\alpha^T K W K \alpha} \]
其中:
- \(\alpha = (\alpha_1, \dots, \alpha_N)^T\) 是系数向量;
- \(K \in \mathbb{R}^{N \times N}\) 是核矩阵,元素 \(K_{ij} = k(x_i, x_j)\);
- \(B\) 和 \(W\) 是特征空间中的类间和类内散度矩阵的核形式表达,具体定义如下。
3.2 散度矩阵的核化
设第 \(c\) 类的样本索引集合为 \(I_c\),样本数为 \(n_c\)。定义:
- 类中心在特征空间中的像:\(\mu_c = \frac{1}{n_c} \sum_{i \in I_c} \phi(x_i)\);
- 总体中心:\(\mu = \frac{1}{N} \sum_{i=1}^N \phi(x_i)\)。
则类间散度矩阵 \(S_B^\phi\) 和类内散度矩阵 \(S_W^\phi\) 为:
\[S_B^\phi = \sum_{c=1}^C n_c (\mu_c - \mu)(\mu_c - \mu)^T, \quad S_W^\phi = \sum_{c=1}^C \sum_{i \in I_c} (\phi(x_i) - \mu_c)(\phi(x_i) - \mu_c)^T \]
利用 \(w = \sum_{i=1}^N \alpha_i \phi(x_i)\),可将散度矩阵的二次型转化为核矩阵形式。经推导(过程略),目标函数中的分子和分母可写为:
\[w^T S_B^\phi w = \alpha^T K M K \alpha, \quad w^T S_W^\phi w = \alpha^T K N K \alpha \]
其中 \(M\) 和 \(N\) 是根据类别信息构造的矩阵:
- \(M = \sum_{c=1}^C \frac{1}{n_c} m_c m_c^T - \frac{1}{N} \mathbf{1}_N \mathbf{1}_N^T\),其中 \(m_c\) 是第 \(c\) 类的指示向量(第 \(i\) 个元素为 \(1\) 若 \(x_i\) 属于类 \(c\),否则为 \(0\)),\(\mathbf{1}_N\) 是全1向量。
- \(N = K - \sum_{c=1}^C \frac{1}{n_c} m_c m_c^T K\)(另一种常见形式是 \(N = K (I - \sum_{c=1}^C \frac{1}{n_c} m_c m_c^T) K\))。
3.3 广义特征值问题
K-LDA的优化问题转化为求解广义特征值问题:
\[K M K \alpha = \lambda K N K \alpha \]
由于 \(K\) 可能奇异,通常引入正则化项,即求解:
\[(K M K + \epsilon I) \alpha = \lambda K N K \alpha \]
其中 \(\epsilon > 0\) 是一个小的正则化参数。求解得到前 \(m\) 个最大特征值对应的特征向量 \(\alpha^{(1)}, \dots, \alpha^{(m)}\)。
4. K-LDA的计算步骤
步骤1:选择核函数并计算核矩阵
常用核函数包括高斯核 \(k(x_i, x_j) = \exp(-\gamma \|x_i - x_j\|^2)\)、多项式核等。计算所有样本对的核值,得到核矩阵 \(K\)。
步骤2:构造类别矩阵 \(M\) 和 \(N\)
根据类别标签,构造指示向量 \(m_c\)(长度为 \(N\)),进而计算 \(M\) 和 \(N\)。例如,\(M = \sum_{c=1}^C \frac{1}{n_c} m_c m_c^T - \frac{1}{N} \mathbf{1}_N \mathbf{1}_N^T\)。
步骤3:求解广义特征值问题
解 \((K M K + \epsilon I) \alpha = \lambda K N K \alpha\),选取前 \(m = C-1\) 个最大特征值对应的特征向量 \(\alpha_1, \dots, \alpha_m\),构成系数矩阵 \(A = [\alpha_1, \dots, \alpha_m] \in \mathbb{R}^{N \times m}\)。
步骤4:降维投影
对于任意样本 \(x\)(包括新样本),其在K-LDA降维空间中的投影为:
\[z = A^T k_x \]
其中 \(k_x = [k(x_1, x), k(x_2, x), \dots, k(x_N, x)]^T \in \mathbb{R}^N\) 是该样本与训练集中所有样本的核向量。
步骤5:分类
在降维后的空间(维度 \(m\))中,可使用简单分类器(如最近邻分类器)进行分类:计算测试样本与各类中心的距离,将其分配到最近的类。
5. K-LDA的特点与注意事项
- 优点:通过核技巧处理非线性数据,在特征空间中实现线性判别;适用于复杂模式分类。
- 缺点:计算复杂度高(需存储和计算 \(N \times N\) 核矩阵);核函数和参数(如高斯核的 \(\gamma\))需谨慎选择;对训练样本数量敏感。
- 正则化必要性:为避免矩阵奇异,必须引入正则化(例如在 \(K N K\) 上加上 \(\epsilon I\))。
- 与Kernel PCA的区别:Kernel PCA是无监督降维,而K-LDA利用类别标签进行监督降维,通常更有利于分类任务。
6. 总结
K-LDA通过核技巧将LDA扩展至非线性领域,在特征空间中最大化类间散度与类内散度之比。其核心在于将原始数据隐式映射到高维空间,并通过核矩阵表达散度矩阵,最终转化为广义特征值问题求解投影方向。K-LDA在图像识别、生物信息学等领域有广泛应用,是非线性判别分析的重要方法之一。