文章目录
非线性子空间学习是一类
降维技术
,旨在通过
非线性映射
将高维数据转换到低维空间,从而发现数据中的潜在结构、减少冗余信息,并可能增强数据的可分离性,适用于
分类
、
聚类
、可视化等多种任务。
与线性降维方法(如PCA、LDA)相比,非线性方法能更好地捕捉
复杂
的数据分布。以下是一些常用的非线性子空间学习方法及其相关公式。
1. 核主成分分析(Kernel PCA, KPCA)
核方法通过将数据映射到高维特征空间,然后在该空间执行线性操作
,实现了在原始输入空间中的非线性变换
。KPCA是PCA的非线性扩展。
- 公式:
- 核函数
K
(
x
,
y
)
=
ϕ
(
x
)
T
ϕ
(
y
)
K(x, y) = \phi(x)^T \phi(y)
K(x,y)=ϕ(x)Tϕ(y),其中
ϕ
(
⋅
)
\phi(\cdot)
ϕ(⋅) 是将
输入数据
x x x映射到高维特征空间的函数
。 - 中心化核矩阵 K c = K − 1 n K − K 1 n T + 1 n K 1 n T K_c = K - 1_n K - K 1_n^T + 1_n K 1_n^T Kc=K−1nK−K1nT+1nK1nT,其中 K K K 是核矩阵, 1 n 1_n 1n是长度为 n n n 的全1向量。
- 寻找最大的 α \alpha α 使得 α T K c α \alpha^T K_c \alpha αTKcα 最小,同时约束 α T 1 n = 0 \alpha^T 1_n = 0 αT1n=0(保证数据的无偏性),解得 α \alpha α 后,低维表示为 Z = α K Z = \alpha K Z=αK。
- 核函数
K
(
x
,
y
)
=
ϕ
(
x
)
T
ϕ
(
y
)
K(x, y) = \phi(x)^T \phi(y)
K(x,y)=ϕ(x)Tϕ(y),其中
ϕ
(
⋅
)
\phi(\cdot)
ϕ(⋅) 是将
例子
核主成分分析(KPCA)是一个非线性降维技术,通过将原始数据映射到一个高维特征空间并在该空间执行PCA
,来捕获
数据中的非线性结构。以下是KPCA的一个具体计算示例,我们将使用一个简化的数据集和高斯核函数(RBF核)来进行说明。
数据集
假设有以下二维数据集,属于同一类别,但我们希望通过KPCA来发现潜在的非线性结构
:
样本编号 | x 1 x_1 x1 | x 2 x_2 x2 |
---|---|---|
1 | 2 | 3 |
2 | 3 | 2 |
3 | 4 | 6 |
4 | 6 | 5 |
5 | 8 | 7 |
计算步骤
-
定义核函数:我们选择
高斯核函数
(RBF核)来映射数据到高维空间
。RBF核函数定义为:
k ( x i , x j ) = exp ( − γ ∣ ∣ x i − x j ∣ ∣ 2 ) k(x_i, x_j) = \exp\left(-\gamma ||x_i - x_j||^2\right) k(xi,xj)=exp(−γ∣∣xi−xj∣∣2)
其中, ∣ ∣ x i − x j ∣ ∣ 2 ||x_i - x_j||^2 ∣∣xi−xj∣∣2 是样本 x i x_i xi 和 x j x_j xj 之间的欧氏距离的平方 , , ,\gamma$ 是核宽度参数
,控制了映射的非线性程度
。 -
计算核矩阵:基于RBF核函数,计算数据集中的所有点对之间的核相似度,形成核矩阵 ( K )。对于上述数据集,核矩阵 ( K ) 为:
K = ( k ( 1 , 1 ) k ( 1 , 2 ) k ( 1 , 3 ) k ( 1 , 4 ) k ( 1 , 5 ) k ( 2 , 1 ) k ( 2 , 2 ) k ( 2 , 3 ) k ( 2 , 4 ) k ( 2 , 5 ) ⋮ ⋮ ⋮ ⋮ ⋮ k ( 5 , 1 ) k ( 5 , 2 ) k ( 5 , 3 ) k ( 5 , 4 ) k ( 5 , 5 ) ) K = \begin{pmatrix} k(1, 1) & k(1, 2) & k(1, 3) & k(1, 4) & k(1, 5) \\ k(2, 1) & k(2, 2) & k(2, 3) & k(2, 4) & k(2, 5) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ k(5, 1) & k(5, 2) & k(5, 3) & k(5, 4) & k(5, 5) \end{pmatrix} K= k(1,1)k(2,1)⋮k(5,1)k(1,2)k(2,2)⋮k(5,2)k(1,3)k(2,3)⋮k(5,3)k(1,4)k(2,4)⋮k(5,4)k(1,5)k(2,5)⋮k(5,5)
假设 γ = 1 \gamma = 1 γ=1,计算得:
K = ( 1 exp ( − 2 ) exp ( − 8 ) exp ( − 16 ) exp ( − 24 ) exp ( − 2 ) 1 exp ( − 4 ) exp ( − 14 ) exp ( − 22 ) exp ( − 8 ) exp ( − 4 ) 1 exp ( − 10 ) exp ( − 16 ) exp ( − 16 ) exp ( − 14 ) exp ( − 10 ) 1 exp ( − 8 ) exp ( − 24 ) exp ( − 22 ) exp ( − 16 ) exp ( − 8 ) 1 ) K = \begin{pmatrix} 1 & \exp(-2) & \exp(-8) & \exp(-16) & \exp(-24) \\ \exp(-2) & 1 & \exp(-4) & \exp(-14) & \exp(-22) \\ \exp(-8) & \exp(-4) & 1 & \exp(-10) & \exp(-16) \\ \exp(-16) & \exp(-14) & \exp(-10) & 1 & \exp(-8) \\ \exp(-24) & \exp(-22) & \exp(-16) & \exp(-8) & 1 \end{pmatrix} K= 1exp(−2)exp(−8)exp(−16)exp(−24)exp(−2)1exp(−4)exp(−14)exp(−22)exp(−8)exp(−4)1exp(−10)exp(−16)exp(−16)exp(−14)exp(−10)1exp(−8)exp(−24)exp(−22)exp(−16)exp(−8)1
-
中心化核矩阵:为了去除数据的平移影响,需要对核矩阵进行中心化处理,形成中心化核矩阵 K c K_c Kc:
K c = K − 1 1 T K − K 1 1 T + 1 1 T K 1 1 T K_c = K - \mathbf{1}\mathbf{1}^TK - K\mathbf{1}\mathbf{1}^T + \mathbf{1}\mathbf{1}^TK\mathbf{1}\mathbf{1}^T Kc=K−11TK−K11T+11TK11T
其中, 1 \mathbf{1} 1 是一个所有元素均为1的列向量,大小与数据集的行数相同。 -
计算特征值和特征向量:对中心化后的核矩阵 K c K_c Kc 进行特征分解,找到
最大的几个特征值对应的特征向量
。假设我们想要降到一维空间
,那么就取最大的那个特征值 λ 1 \lambda_1 λ1 及其对应的特征向量 α 1 \alpha_1 α1。 -
构造低维表示:低维空间的表示 ( Z ) 可以通过原数据集 ( X ) 与特征向量 α \alpha α 的内积得到,即:
z i = ∑ j = 1 n α j k ( x i , x j ) , for i = 1 , 2 , . . . , n z_i = \sum_{j=1}^{n} \alpha_j k(x_i, x_j), \quad \text{for } i = 1, 2, ..., n zi=j=1∑nαjk(xi,xj),for i=1,2,...,n
其中,( n ) 是数据集中的样本数, z i z_i zi 是第 ( i ) 个样本在降维后的坐标。
结果解释
通过上述步骤,我们得到了每个样本
在降维后的一维坐标
z
i
z_i
zi,这些坐标反映了原始数据在非线性子空间中的位置
,可能揭示了数据间的非线性关系。实际应用中,会根据具体情况调整核函数的参数
γ
\gamma
γ 以及选择降维的维度数。
2. 局部线性嵌入(Locally Linear Embedding, LLE)
LLE试图保持每个点与其邻居
间的线性关系,在低维空间中重构这种局部结构。
- 公式:
- 寻找权重 W i j W_{ij} Wij 使得 x i ≈ ∑ j ∈ N ( i ) W i j x j x_i \approx \sum_{j \in N(i)} W_{ij} x_j xi≈∑j∈N(i)Wijxj,其中 N ( i ) N(i) N(i) 是点 i i i 的邻域。
- 最优化问题: min Y ∑ i ∣ ∣ y i − ∑ j ∈ N ( i ) W i j y j ∣ ∣ 2 \min_Y \sum_i ||y_i - \sum_{j \in N(i)} W_{ij} y_j||^2 minY∑i∣∣yi−∑j∈N(i)Wijyj∣∣2,在保持 Y T Y = I Y^TY = I YTY=I 的约束下,其中 Y Y Y 是低维嵌入。
- 解决方案通常涉及解决一系列的优化问题和约束条件。
例子
局部线性嵌入(LLE)是一种非线性
降维技术 ,它通过在高维空间中寻找每个数据点的局部线性重构权重
,然后在低维空间中保持这些权重关系来保持数据的局部结构。下面是LLE的一个简单计算示例。
数据集
假设我们有一个简单的二维数据集,包含四个点 (X):
样本编号 | x 1 x_1 x1 | x 2 x_2 x2 |
---|---|---|
1 | 0 | 0 |
2 | 1 | 1 |
3 | 2 | 1 |
4 | 3 | 0 |
计算步骤
-
定义邻域:首先确定每个点的邻域,比如选择每个点最近的 (k) 个邻居,这里 (k=2)。由于数据集较小,我们简单地选择每个点的直接邻居(在实际应用中,可能需要使用更复杂的
距离度量和选择策略
)。 -
计算权重:对于每个点 x i x_i xi,我们希望找到一组权重 W i j W_{ij} Wij,使得 x i x_i xi 可以通过其邻居 x j x_j xj 线性组合近似。即解优化问题:
min W i j ∑ j ∈ N ( i ) W i j ∣ ∣ x i − x j ∣ ∣ 2 s.t. ∑ j ∈ N ( i ) W i j = 1 , W i j ≥ 0 \min_{W_{ij}} \sum_{j \in N(i)} W_{ij} ||x_i - x_j||^2 \quad \text{s.t.} \quad \sum_{j \in N(i)} W_{ij} = 1, W_{ij} \geq 0 Wijminj∈N(i)∑Wij∣∣xi−xj∣∣2s.t.j∈N(i)∑Wij=1,Wij≥0
这个公式是局部线性嵌入(LLE, Locally Linear Embedding)的核心优化目标,用于计算每个数据点 x i x_i xi 在其局部邻域 N ( i ) N(i) N(i) 内的线性重构权重 W i j W_{ij} Wij。下面是对公式的详细解释:
公式意义
min W i j ∑ j ∈ N ( i ) W i j ∣ ∣ x i − x j ∣ ∣ 2 s.t. ∑ j ∈ N ( i ) W i j = 1 , W i j ≥ 0 \min_{W_{ij}} \sum_{j \in N(i)} W_{ij} ||x_i - x_j||^2 \quad \text{s.t.} \quad \sum_{j \in N(i)} W_{ij} = 1, W_{ij} \geq 0 Wijminj∈N(i)∑Wij∣∣xi−xj∣∣2s.t.j∈N(i)∑Wij=1,Wij≥0
-
目标函数:
- min W i j \min_{W_{ij}} minWij 表示我们要最小化的目标是关于权重 W i j W_{ij} Wij 的。
-
∑
j
∈
N
(
i
)
W
i
j
∣
∣
x
i
−
x
j
∣
∣
2
\sum_{j \in N(i)} W_{ij} ||x_i - x_j||^2
∑j∈N(i)Wij∣∣xi−xj∣∣2 是对每一个点
x
i
x_i
xi 的表达式,其中
N
(
i
)
N(i)
N(i) 表示点
x
i
x_i
xi 的邻域,即距离
x
i
x_i
xi
最近
的几个点的集合。 - 这个求和表达了点
x
i
x_i
xi 通过其邻域内的点
x
j
x_j
xj 来线性重构自身的
误差的平方和
。目标是最小化
这个误差,意味着我们希望每个点能够很好地被其邻域内的点线性表示。
-
约束条件:
-
∑
j
∈
N
(
i
)
W
i
j
=
1
\sum_{j \in N(i)} W_{ij} = 1
∑j∈N(i)Wij=1:这个条件确保了权重的
归一化
,即所有邻域内点对 x i x_i xi 的贡献总和为1。这意味着 x i x_i xi 通过其邻居的加权组合来近似,权重之和等于1保证了重构的有效性,避免了过度放大或缩小。` -
W
i
j
≥
0
W_{ij} \geq 0
Wij≥0:要求所有的权重
W
i
j
W_{ij}
Wij 都是非负的,这是因为权重代表了
贡献度
,负值没有实际意义
,而且在寻求重构点 x i x_i xi 时,我们希望邻域内的点是正向帮助的。
-
∑
j
∈
N
(
i
)
W
i
j
=
1
\sum_{j \in N(i)} W_{ij} = 1
∑j∈N(i)Wij=1:这个条件确保了权重的
对于这个简单的例子,手动计算每个点的权重:
- 对于点1,其邻居是点2,理想情况下 W 12 = 1 W_{12} = 1 W12=1(如果只考虑最简单的线性插值)。
- 对于点2,其邻居是点1和点3,假设等权重,则 W 21 = W 23 = 0.5 W_{21} = W_{23} = 0.5 W21=W23=0.5。
- 对于点3,其邻居是点2和点4,同样假设等权重,则 W 32 = W 34 = 0.5 W_{32} = W_{34} = 0.5 W32=W34=0.5。
- 对于点4,其邻居是点3,因此 W 43 = 1 W_{43} = 1 W43=1。
-
重建误差最小化:虽然在这个简化的例子中,我们直接指定了权重,实际操作中,这些权重需要通过优化算法求解。但在本例中,我们继续基于上述分配的简单权重。
-
降维:有了这些权重后,下一步是在
低维空间
中找到新的坐标 (Y),使得低维空间中的点能够通过类似的权重组合重构回原始空间。设 (Y) 为低维嵌入,我们希望最小化重构误差:
min Y ∑ i ∣ ∣ y i − ∑ j ∈ N ( i ) W i j y j ∣ ∣ 2 \min_Y \sum_i ||y_i - \sum_{j \in N(i)} W_{ij} y_j||^2 Ymini∑∣∣yi−j∈N(i)∑Wijyj∣∣2
由于这个例子过于简化,我们不进行详细的数学优化求解,但在实际操作中,这一步骤通常涉及迭代优化算法
,如梯度下降。
结论
对于这个非常基础的例子,LLE的过程主要是为了演示思想,实际应用中LLE涉及更复杂的数学和计算过程,尤其是计算权重和优化低维坐标时。在真实数据集中,我们会使用算法自动确定权重并优化低维嵌入,可能还会涉及对邻域的选择、正则化项的添加等策略,以确保算法的稳定性和有效性。
3. 等距映射(Isomap)
Isomap是基于图论
的降维方法,它首先构建数据点间的邻接图
,然后计算两点间的最短路径长度
,最后通过多维缩放(MDS)在低维空间中保持这些距离。
- 公式:
- 构建邻接图,计算所有对之间最短路径的距离矩阵 ( D )。
- 解多维缩放问题: min Z ∑ i , j ( D i j − ∣ ∣ z i − z j ∣ ∣ ) 2 \min_Z \sum_{i,j} (D_{ij} - ||z_i - z_j||)^2 minZ∑i,j(Dij−∣∣zi−zj∣∣)2,其中 Z Z Z 是低维坐标。
4. t-分布邻域嵌入算法(t-SNE)
t-SNE通过使用t-分布作为相似性度量
,来优化高维和低维空间中点对
之间的概率分布匹配。
- 公式:
- 高维空间中的相似度: p i j = ( 1 + ∣ ∣ x i − x j ∣ ∣ 2 ) − 1 ∑ k ≠ l ( 1 + ∣ ∣ x k − x l ∣ ∣ 2 ) − 1 p_{ij} = \frac{(1 + ||x_i - x_j||^2)^{-1}}{\sum_{k \neq l}(1 + ||x_k - x_l||^2)^{-1}} pij=∑k=l(1+∣∣xk−xl∣∣2)−1(1+∣∣xi−xj∣∣2)−1,使用高斯核。
- 低维空间中的相似度: q i j = ( 1 + ∣ ∣ y i − y j ∣ ∣ 2 ) − 1 ∑ k ≠ l ( 1 + ∣ ∣ y k − y l ∣ ∣ 2 ) − 1 q_{ij} = \frac{(1 + ||y_i - y_j||^2)^{-1}}{\sum_{k \neq l}(1 + ||y_k - y_l||^2)^{-1}} qij=∑k=l(1+∣∣yk−yl∣∣2)−1(1+∣∣yi−yj∣∣2)−1,但使用t-分布核。
- 最小化KL散度: min Q K L ( P ∣ ∣ Q ) = ∑ i , j p i j log p i j q i j \min_Q KL(P||Q) = \sum_{i,j} p_{ij} \log \frac{p_{ij}}{q_{ij}} minQKL(P∣∣Q)=∑i,jpijlogqijpij,通过梯度下降优化 ( Y )。