一、前言
局部线性嵌入(LLE)假设数据在较小的局部是线性的,也就是说,某一个样本可以由它最近邻的几个样本线性表示,离样本远的样本对局部的线性关系没有影响,因此相比等距映射算法,降维的时间复杂度和空间复杂度都有极大的降低。
比如有一个样本
x
1
x_1
x1 ,我们在它的原始高维邻域里用
K
K
K-近邻思想找到和它最近的三个样本
x
2
,
x
3
,
x
4
x_2,x_3,x_4
x2,x3,x4,然后我们假设
x
1
x_1
x1可以由
x
2
,
x
3
,
x
4
x_2,x_3,x_4
x2,x3,x4线性表示,即:
x
1
=
w
12
x
2
+
w
13
x
3
+
w
14
x
4
x_1=w_{12}x_2+w_{13}x_3+w_{14}x_4
x1=w12x2+w13x3+w14x4
其中,
w
12
,
w
13
,
w
14
w_{12},w_{13},w_{14}
w12,w13,w14为权重系数。
在我们通过LLE降维后,我们希望
x
1
x_1
x1在低维空间对应的投影
y
1
y_1
y1 和
x
2
,
x
3
,
x
4
x_2,x_3,x_4
x2,x3,x4对应的投影
y
2
,
y
3
,
y
4
y_2,y_3,y_4
y2,y3,y4也尽量保持同样的线性关系(局部数据结构不变),即:
y
1
≈
w
12
y
2
+
w
13
y
3
+
w
14
y
4
y_1≈w_{12}y_2+w_{13}y_3+w_{14}y_4
y1≈w12y2+w13y3+w14y4
也就是说,投影前后线性关系的权重系数
w
12
,
w
13
,
w
14
w_{12},w_{13},w_{14}
w12,w13,w14是尽量不变或者最小改变的。
因为LLE是基于局部的,所以K近邻的选取是至关重要的。
二、主要步骤
2.1 首先要确定邻域大小
假设这个值为k。我们可以通过和 K N N KNN KNN一样的思想通过距离度量比如欧式距离来选择某样本的 k k k个最近邻。
2.2 确定目标损失函数
在找到某个样本的
x
i
x_i
xi的
k
k
k个最近邻之后,我们就需要找到找到
x
i
x_i
xi和这
k
k
k个最近邻之间的线性关系,也就是要找到线性关系的权重系数。
假设我们有
m
m
m个
n
n
n维样本
x
1
,
x
2
,
⋯
,
x
m
{x_1,x_2,⋯,x_m}
x1,x2,⋯,xm,我们可以用均方差作为问题的损失函数:即:
J
(
w
)
=
∑
i
=
1
m
∣
∣
x
i
−
∑
j
=
1
k
w
i
j
x
j
∣
∣
2
2
J(w)=∑_{i=1}^m{||x_i−∑_{j=1}^k{w_{ij}x_j}||_{2}^{2}}
J(w)=i=1∑m∣∣xi−j=1∑kwijxj∣∣22
对权重系数
w
i
j
w_{ij}
wij做归一化的约束,即权重系数需要满足:
∑
j
=
1
k
w
i
j
=
1
∑_{j=1}^k{w_{ij}=1}
j=1∑kwij=1
通过上面两个式子求出我们的权重系数。
2.3 目标函数优化
对于目标损失函数,将其矩阵化,进行以下推导:
J
(
w
)
=
∑
i
=
1
m
∣
∣
x
i
−
∑
j
=
1
k
w
i
j
x
j
∣
∣
2
2
=
∑
i
=
1
m
∣
∣
∑
j
=
1
k
w
i
j
x
i
−
∑
j
=
1
k
w
i
j
x
j
∣
∣
2
2
=
∑
i
=
1
m
∣
∣
∑
j
=
1
k
w
i
j
(
x
i
−
x
j
)
∣
∣
2
2
=
∑
i
=
1
m
W
i
T
X
i
X
i
T
W
i
=
∑
i
=
1
m
W
i
T
Z
i
W
i
\begin{aligned} &J(w)=∑_{i=1}^m{||x_i−∑_{j=1}^k{w_{ij}x_j}||_{2}^{2}}\\ &=∑_{i=1}^m||∑_{j=1}^kw_{ij}x_i−∑_{j=1}^kw_{ij}x_j||_2^2\\ &=∑_{i=1}^m||∑_{j=1}^kw_{ij}(x_i−x_j)||_2^2\\ &=∑_{i=1}^mW_i^TX_iX_i^TWi\\ &=∑_{i=1}^mW_i^TZ_iW_i \end{aligned}
J(w)=i=1∑m∣∣xi−j=1∑kwijxj∣∣22=i=1∑m∣∣j=1∑kwijxi−j=1∑kwijxj∣∣22=i=1∑m∣∣j=1∑kwij(xi−xj)∣∣22=i=1∑mWiTXiXiTWi=i=1∑mWiTZiWi
其中
W
i
=
(
w
i
1
,
w
i
2
,
⋯
,
w
i
k
)
T
W_i=(w_{i1},w_{i2},⋯,w_{ik})^T
Wi=(wi1,wi2,⋯,wik)T,
X
i
=
(
x
i
−
x
1
,
x
i
−
x
2
,
⋯
,
x
i
−
x
k
)
T
X_i=(x_i−x_1,x_i-x_2,⋯,x_i-x_{k})^T
Xi=(xi−x1,xi−x2,⋯,xi−xk)T,
Z
i
=
X
i
X
i
T
Z_i=X_iX_i^T
Zi=XiXiT,
约束条件可化为
∑
j
=
1
k
w
i
j
=
W
i
1
k
=
1
∑_{j=1}^kw_{ij}=W_{i}1_k=1
∑j=1kwij=Wi1k=1,
其中
1
k
1_k
1k为
k
k
k维全为1的向量。
2.4 拉格朗日乘子法求解
构造拉格朗日函数:
L
(
W
)
=
∑
i
=
1
m
W
i
T
Z
i
W
i
+
λ
(
W
i
1
k
−
1
)
L(W)=∑_{i=1}^mW^T_iZ_iW_i+λ(W_{i}1_k−1)
L(W)=i=1∑mWiTZiWi+λ(Wi1k−1)
对
W
W
W求导并令其值为0,我们得到:
∂
L
(
W
)
∂
W
=
2
Z
i
W
i
+
λ
1
k
=
0
\frac{∂L(W)}{∂W}=2Z_iW_i+λ1_k=0
∂W∂L(W)=2ZiWi+λ1k=0
即我们的
W
i
=
λ
′
Z
i
−
1
1
k
W_i=λ^{′}Z^{−1}_i1_k
Wi=λ′Zi−11k
其中
λ
′
=
−
1
2
λ
λ^′=−\frac{1}2λ
λ′=−21λ为一个常数。那么最终我们的权重系数Wi为:
W
i
=
Z
i
−
1
1
k
1
k
T
Z
i
−
1
1
k
W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}}
Wi=1kTZi−11kZi−11k
现在我们得到了高维的权重系数,那么我们希望这些权重系数对应的线性关系在降维后的低维一样得到保持。
假设我们的n维样本集
x
1
,
x
2
,
.
.
.
,
x
m
{x_1,x_2,...,x_m}
x1,x2,...,xm在低维的d维对应投影为
y
1
,
y
2
,
.
.
.
,
y
m
{y_1,y_2,...,y_m}
y1,y2,...,ym,则我们希望保持线性关系,也就是希望对应的均方差损失函数最小,即最小化损失函数
J
(
Y
)
J(Y)
J(Y)如下:
J
(
y
)
=
∑
i
=
1
m
∣
∣
y
i
−
∑
j
=
1
m
w
i
j
y
j
∣
∣
2
2
=
∑
i
=
1
m
∣
∣
Y
I
i
−
Y
W
i
∣
∣
2
2
=
T
r
(
Y
(
I
−
W
)
(
I
−
W
)
T
Y
T
)
=
T
r
(
Y
T
M
Y
)
J(y)=\sum_{i=1}^{m}||y_{i}-\sum_{j=1}^{m} w_{i j} y_{j}||_{2}^{2}\\ =\sum_{i=1}^m||YI_i−YW_i||_2^2 \\ =Tr(Y(I−W)(I−W)^TY^T)\\ =Tr(Y^TMY)
J(y)=i=1∑m∣∣yi−j=1∑mwijyj∣∣22=i=1∑m∣∣YIi−YWi∣∣22=Tr(Y(I−W)(I−W)TYT)=Tr(YTMY)
其中,
M
=
(
I
−
W
)
T
(
I
−
W
)
M=(I-W)^T(I-W)
M=(I−W)T(I−W),上式约束条件为:
∑
i
=
1
m
y
i
=
0
;
1
m
∑
i
=
1
m
y
i
y
i
T
=
I
,
即
Y
T
Y
=
m
I
∑_{i=1}^my_i=0;\frac{1}{m}∑_{i=1}^my_iy^T_i=I,即Y^TY=mI
∑i=1myi=0;m1∑i=1myiyiT=I,即YTY=mI。
接下来利用拉格朗日乘子法对以上式子进行求解:
L
(
Y
)
=
T
r
(
Y
T
M
Y
)
+
λ
(
Y
T
Y
−
m
I
)
L(Y)=Tr(Y^TMY)+λ(Y^TY−mI)
L(Y)=Tr(YTMY)+λ(YTY−mI)
与拉普拉斯特征映射相似(Laplacian Eigenmaps),最后要得到最小的d维数据集,我们需要求出矩阵 M M M最小的d个非0特征值所对应的特征向量组成的矩阵 Y = ( y 1 , y 2 , ⋯ , y d ) Y=(y_1,y_2,⋯,y_d) Y=(y1,y2,⋯,yd)即可。
三、算法流程总结
现在我们对算法过程做一个总结。整个LLE算法用一张图可以表示如下:
从图中可以看出,LLE算法主要分为三步,
第一步是求
K
K
K近邻的过程,这个过程使用了和
K
N
N
KNN
KNN算法一样的求最近邻的方法。
第二步,就是对每个样本求它在邻域里的
K
K
K个近邻的线性关系,得到线性关系权重系数
W
W
W。
第三步就是利用权重系数 来在低维里重构样本数据.
具体过程如下:
- 输入:样本集 D = x 1 , x 2 , . . . , x m D={x_1,x_2,...,x_m} D=x1,x2,...,xm,最近邻数k,降维到的维数d
- 输出:低维样本集矩阵 D ′ D^′ D′
- i = 1 → m i=1 \to m i=1→m, 按欧式距离作为度量,计算 m m m个样本点 x i x_i xi最近的的 k k k个最近邻 ( x i 1 , x i 2 , . . . , x i k ) (x_{i1},x_{i2},...,x_{ik}) (xi1,xi2,...,xik)
- i = 1 → m i=1 \to m i=1→m,求出局部协方差矩阵 Z i = ( x i − x j ) ( x i − x j ) T Z_i=(x_i-x_j)(x_i-x_j)^T Zi=(xi−xj)(xi−xj)T,求出对应的权重系数向量: W i = Z i − 1 1 k 1 k T Z i − 1 1 k W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}} Wi=1kTZi−11kZi−11k。
- 由权重系数向量 W i W_i Wi组成权重系数矩阵 W W W,计算矩阵 M = ( I − W ) ( I − W ) T M=(I−W)(I−W)^T M=(I−W)(I−W)T
- 由第2个特征向量到第d+1个特征向量所张成的矩阵即为输出低维样本集矩阵 D ′ = ( y 2 , y 3 , . . . y d + 1 ) D^′=(y_2,y_3,...y_{d+1}) D′=(y2,y3,...yd+1)
四、改进算法
LLE算法很简单高效,但是却有一些问题,比如如果近邻数k大于输入数据的维度时,我们的权重系数矩阵不是满秩的。为了解决这样类似的问题,有一些LLE的变种产生出来。比如:Modified Locally Linear Embedding(MLLE) 和 Hessian Based LLE(HLLE)。
对于HLLE,它不是考虑保持局部的线性关系,而是保持局部的Hessian矩阵的二次型的关系。而对于MLLE,它对搜索到的最近邻的权重进行了度量,我们一般都是找距离最近的k个最近邻就可以了,而MLLE在找距离最近的k个最近邻的同时要考虑近邻的分布权重,它希望找到的近邻的分布权重尽量在样本的各个方向,而不是集中在一侧。
另一个比较好的LLE的变种是Local tangent space alignment(LTSA),它希望保持数据集局部的几何关系,在降维后希望局部的几何关系得以保持,同时利用了局部几何到整体性质过渡的技巧。
这些算法原理都是基于LLE,基本都是在LLE这三步过程中寻求优化的方法。
LLE总结
LLE是广泛使用的图形图像降维方法,它实现简单,但是对数据的流形分布特征有严格的要求。比如不能是闭合流形,不能是稀疏的数据集,不能是分布不均匀的数据集等等,这限制了它的应用。下面总结下LLE算法的优缺点。
LLE算法的主要优点有:
1)可以学习任意维的局部线性的低维流形
2)算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
LLE算法的主要缺点有:
1)算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
2)算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。