基于核方法的局部线性嵌入(Kernel Locally Linear Embedding, KLLE)的原理与实现过程
1. 题目描述
局部线性嵌入(LLE)是一种经典的非线性降维方法,其核心思想是假设数据在高维空间中局部呈线性,并试图在低维嵌入中保持这种局部线性重构关系。然而,标准LLE依赖于欧氏距离的线性重构,在处理某些复杂非线性结构时可能受限。基于核方法的局部线性嵌入(KLLE) 通过引入核技巧,将原始数据隐式映射到一个高维(甚至无限维)的特征空间,并在该特征空间中执行LLE算法,从而增强了模型对更复杂非线性流形的表达能力。本题将详细讲解KLLE算法的动机、核技巧的引入、目标函数的构建,以及求解低维嵌入的完整计算过程。
2. 背景与动机:标准LLE的局限性
首先,快速回顾标准LLE的三个核心步骤:
- 寻找近邻:为每个高维数据点 \(\mathbf{x}_i \in \mathbb{R}^D\) 找到其 \(k\) 个最近邻(通常基于欧氏距离)。
- 计算局部重构权重:为每个点 \(\mathbf{x}_i\) 计算一组权重 \(W_{ij}\),使得其能用其 \(k\) 个近邻的线性组合来最佳重构,即最小化重构误差:
\[ \min_{\mathbf{W}} \sum_{i=1}^{N} \|\mathbf{x}_i - \sum_{j \in \mathcal{N}(i)} W_{ij} \mathbf{x}_j \|^2, \quad \text{s.t.} \sum_{j} W_{ij} = 1 \]
- 计算低维嵌入:在低维空间(\(\mathbb{R}^d, d \ll D\))中寻找点 \(\mathbf{y}_i\),使其保持相同的局部重构权重,即最小化:
\[ \min_{\mathbf{Y}} \sum_{i=1}^{N} \|\mathbf{y}_i - \sum_{j \in \mathcal{N}(i)} W_{ij} \mathbf{y}_j \|^2 \]
局限性:标准LLE的“局部线性”假设依赖于原始空间中的欧氏距离。当数据的非线性结构非常复杂(例如,存在高度扭曲或交叉的流形)时,原始空间中的欧氏距离可能无法准确反映流形上的测地线距离(即沿着流形表面的最短路径)。这可能导致近邻选择不准确,从而破坏局部线性假设。
KLLE的动机:通过一个非线性映射 \(\phi: \mathbb{R}^D \to \mathcal{H}\) 将数据映射到一个高维(可能是无限维)的再生核希尔伯特空间(RKHS)\(\mathcal{H}\)。在 \(\mathcal{H}\) 中,数据点之间的内积可以通过一个核函数 \(k(\mathbf{x}_i, \mathbf{x}_j) = \langle \phi(\mathbf{x}_i), \phi(\mathbf{x}_j) \rangle_{\mathcal{H}}\) 计算。在这个高维特征空间中,数据可能呈现出更清晰的线性结构,使得在 \(\mathcal{H}\) 中执行LLE能更好地捕捉原始空间中复杂的非线性关系。
3. KLLE算法的核心步骤
KLLE的主要思想是:在特征空间 \(\mathcal{H}\) 中执行LLE。我们无需显式知道映射 \(\phi\),只需通过核函数 \(k(\cdot, \cdot)\) 计算内积。
假设我们有 \(N\) 个数据点 \(\{\mathbf{x}_1, \dots, \mathbf{x}_N\}\),核函数 \(k\),对应的核矩阵为 \(K\),其中 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
步骤1:在特征空间中寻找近邻
- 在特征空间 \(\mathcal{H}\) 中,两点 \(\phi(\mathbf{x}_i)\) 和 \(\phi(\mathbf{x}_j)\) 之间的距离为:
\[ d_{\mathcal{H}}(i,j)^2 = \|\phi(\mathbf{x}_i) - \phi(\mathbf{x}_j)\|_{\mathcal{H}}^2 = k_{ii} + k_{jj} - 2k_{ij} \]
- 利用此距离公式,为每个点 \(\phi(\mathbf{x}_i)\) 计算其与所有其他点的距离,并选择距离最小的 \(k\) 个点作为其近邻 \(\mathcal{N}(i)\)。这通常能比原始空间中的欧氏距离更好地反映流形上的几何关系。
步骤2:在特征空间中计算局部重构权重
目标:在特征空间 \(\mathcal{H}\) 中,用近邻线性重构 \(\phi(\mathbf{x}_i)\)。
- 对于点 \(\phi(\mathbf{x}_i)\),其重构误差为:
\[ \epsilon_i = \left\| \phi(\mathbf{x}_i) - \sum_{j \in \mathcal{N}(i)} W_{ij} \phi(\mathbf{x}_j) \right\|_{\mathcal{H}}^2 \]
- 展开此范数的平方:
\[ \epsilon_i = k_{ii} - 2 \sum_{j \in \mathcal{N}(i)} W_{ij} k_{ij} + \sum_{j,l \in \mathcal{N}(i)} W_{ij} W_{il} k_{jl} \]
- 在约束条件 \(\sum_{j \in \mathcal{N}(i)} W_{ij} = 1\) 下最小化 \(\epsilon_i\)。引入拉格朗日乘子法,求解得到权重 \(W_{ij}\) 的封闭解。构造拉格朗日函数:
\[ \mathcal{L} = \epsilon_i + \lambda ( \sum_{j} W_{ij} - 1 ) \]
- 对 \(W_{ij}\) 求导并令导数为零,结合约束条件,可以得到线性方程组。令 \(\mathbf{w}_i\) 为点 \(i\) 的权重向量(仅包含其近邻对应的权重),\(\mathbf{k}_i\) 为向量,其元素为 \(k_{ij}\)(\(j \in \mathcal{N}(i)\)),\(C_i\) 为局部核矩阵,其元素为 \(C_{jl}^{(i)} = k_{jl}\)(\(j,l \in \mathcal{N}(i)\))。则最优权重由下式给出:
\[ \mathbf{w}_i = \frac{C_i^{-1} \mathbf{1}}{\mathbf{1}^T C_i^{-1} \mathbf{1}} \]
其中 \(\mathbf{1}\) 是全1向量。这里要求 \(C_i\) 可逆(通常需加入一个小的正则项 \(\eta I\) 保证数值稳定)。
关键:我们只使用了核矩阵 \(K\) 中的元素来计算权重 \(W\),无需知道 \(\phi\) 的具体形式。
步骤3:在特征空间中计算低维嵌入
目标:在低维空间 \(\mathbb{R}^d\) 中寻找点 \(\mathbf{y}_i\),使得它们之间的几何关系能保持特征空间 \(\mathcal{H}\) 中由权重 \(W\) 确定的局部线性结构。
- 最小化嵌入代价函数:
\[ \Phi(\mathbf{Y}) = \sum_{i=1}^{N} \left\| \mathbf{y}_i - \sum_{j \in \mathcal{N}(i)} W_{ij} \mathbf{y}_j \right\|^2 \]
注意,这里的权重 \(W_{ij}\) 是在步骤2中从特征空间计算得到的。
- 可以证明,这个优化问题的解对应于一个稀疏矩阵的特征向量问题。定义重构权重矩阵 \(\mathbf{W}\)(\(N \times N\)),其元素 \(W_{ij}\) 在 \(j\) 是 \(i\) 的近邻时非零,否则为0。定义矩阵 \(\mathbf{M} = (\mathbf{I} - \mathbf{W})^T (\mathbf{I} - \mathbf{W})\)。
- 嵌入代价可重写为:
\[ \Phi(\mathbf{Y}) = \operatorname{tr}(\mathbf{Y}^T \mathbf{M} \mathbf{Y}) \]
其中 \(\mathbf{Y} = [\mathbf{y}_1, \dots, \mathbf{y}_N]^T \in \mathbb{R}^{N \times d}\) 是低维嵌入坐标矩阵。
- 为了得到唯一解并避免退化(如所有点缩到原点),我们施加约束:\(\mathbf{Y}^T \mathbf{Y} = \mathbf{I}_d\)(中心化和归一化,即嵌入坐标的协方差矩阵为单位阵)。
- 在此约束下,最小化 \(\operatorname{tr}(\mathbf{Y}^T \mathbf{M} \mathbf{Y})\) 等价于求解矩阵 \(\mathbf{M}\) 的 d+1 个最小特征值对应的特征向量,并丢弃最小的那个特征值(通常接近0,对应于平移自由度,即全1向量)。取第2到第d+1小的特征值对应的特征向量,按行排列即得到低维嵌入 \(\mathbf{Y}\)。
4. 算法总结与实现要点
- 输入:高维数据点 \(\{\mathbf{x}_i\}_{i=1}^N\),近邻数 \(k\),目标维度 \(d\),核函数 \(k(\cdot, \cdot)\)(如高斯核 \(k(\mathbf{x}, \mathbf{y}) = \exp(-\gamma \|\mathbf{x}-\mathbf{y}\|^2)\))。
- 计算核矩阵:\(K \in \mathbb{R}^{N \times N}\),其中 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
- 特征空间近邻选择:对每个点 \(i\),计算 \(d_{\mathcal{H}}(i,j)^2 = K_{ii} + K_{jj} - 2K_{ij}\),找出最小的 \(k\) 个 \(j\) 作为近邻集 \(\mathcal{N}(i)\)。
- 计算重构权重:
- 对每个点 \(i\),构建其局部核矩阵 \(C_i\)(\(k \times k\)),其中 \(C_{jl}^{(i)} = K_{n_j, n_l}\),\(n_j, n_l \in \mathcal{N}(i)\)。
- 求解 \(C_i \mathbf{w}_i = \mathbf{1}\)(或使用正则化解 \((C_i + \eta I) \mathbf{w}_i = \mathbf{1}\)),然后归一化使 \(\mathbf{1}^T \mathbf{w}_i = 1\)。
- 将权重填入全局稀疏矩阵 \(\mathbf{W}\)。
- 计算低维嵌入:
- 构造矩阵 \(\mathbf{M} = (\mathbf{I} - \mathbf{W})^T (\mathbf{I} - \mathbf{W})\)。
- 计算 \(\mathbf{M}\) 的 d+1 个最小特征值对应的特征向量。
- 丢弃最小的特征值对应的特征向量(通常是全1向量),取第2到第d+1小的特征值对应的特征向量,构成 \(\mathbf{Y} \in \mathbb{R}^{N \times d}\)。每一行即为一个数据点的低维坐标。
5. 与标准LLE的对比与优势
- 核心差异:标准LLE在原始空间中使用欧氏距离选择近邻和计算线性权重;KLLE在通过核函数隐式定义的高维特征空间中进行这些操作。
- 优势:
- 更强的非线性表示能力:通过选择合适的核函数(如高斯核),KLLE可以处理原始空间中高度非线性的流形结构,因为特征空间可能使数据更线性可分。
- 灵活性:核方法允许通过选择不同的核函数来适应不同类型的数据结构。
- 代价:计算核矩阵需要 \(O(N^2)\) 的存储和计算,且特征空间中距离计算依赖于整个核矩阵,计算量通常大于标准LLE。近邻选择在特征空间中进行也需要计算所有成对距离。
总结:KLLE通过核技巧将LLE扩展到更复杂的非线性场景,它在特征空间中保持局部线性重构关系,从而可能获得比原始空间更准确的流形结构表示,是处理复杂非线性降维问题的一种有效扩展。