LE算法简介及其推导
1.简单介绍
Laplacian Eigenmaps是一种降维算法,它看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系。具体来讲,拉普拉斯特征映射是一种基于图的降维算法,它希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构。
2.推导
拉普拉斯特征映射通过构建邻接矩阵为W(邻接矩阵定义见这里)的图来重构数据流形的局部结构特征。其主要思想是,如果两个数据实例i和j很相似,那么i和j在降维后目标子空间中应该尽量接近。设数据实例的数目为n,目标子空间即最终的降维目标的维度为m。定义n×m大小的矩阵Y,其中每一个行向量
y
i
T
y_i^T
yiT 是数据实例i在目标m维子空间中的向量表示(即降维后的数据实例i)。我们的目的是让相似的数据样例i和j在降维后的目标子空间里仍旧尽量接近,故拉普拉斯特征映射优化的目标函数如下:
m
i
n
∑
i
,
j
∣
∣
y
i
−
y
j
∣
∣
2
A
i
j
min\sum_{i,j}||y_i-y_j||^2A_{ij}
mini,j∑∣∣yi−yj∣∣2Aij
=
∑
i
=
1
n
∑
j
=
1
n
∣
∣
y
i
−
y
j
∣
∣
2
A
i
j
=\sum_{i=1}^n\sum_{j=1}^n||y_i-y_j||^2A_{ij}
=i=1∑nj=1∑n∣∣yi−yj∣∣2Aij
=
∑
i
=
1
n
∑
j
=
1
n
(
y
i
T
y
i
−
2
y
i
T
y
j
+
y
j
T
y
j
)
A
i
j
=\sum_{i=1}^n\sum_{j=1}^n(y_i^Ty_i-2y_i^Ty_j+y_j^Ty_j)A_{ij}
=i=1∑nj=1∑n(yiTyi−2yiTyj+yjTyj)Aij
=
∑
i
=
1
n
(
∑
j
=
1
n
A
i
j
)
y
i
T
y
i
+
∑
j
=
1
n
(
∑
i
=
1
n
A
i
j
)
y
j
T
y
j
−
2
∑
i
=
1
n
∑
j
=
1
n
y
i
T
y
i
A
i
j
=\sum_{i=1}^n(\sum_{j=1}^nA_{ij})y_i^Ty_i+\sum_{j=1}^n(\sum_{i=1}^nA_{ij})y_j^Ty_j-2\sum_{i=1}^n\sum_{j=1}^ny_i^Ty_iA_{ij}
=i=1∑n(j=1∑nAij)yiTyi+j=1∑n(i=1∑nAij)yjTyj−2i=1∑nj=1∑nyiTyiAij
其中
A
i
j
A_{ij}
Aij为度矩阵,且
∑
j
=
1
n
A
i
j
\sum_{j=1}^nA_{ij}
∑j=1nAij和
∑
i
=
1
n
A
i
j
\sum_{i=1}^nA_{ij}
∑i=1nAij分别表示节点
i
i
i和
j
j
j的度数,故
=
2
∑
i
=
1
n
D
i
i
y
i
T
y
i
−
2
∑
i
=
1
n
∑
j
=
1
n
y
i
T
y
i
A
i
j
=2\sum_{i=1}^nD_{ii}y_i^Ty_i-2\sum_{i=1}^n\sum_{j=1}^ny_i^Ty_iA_{ij}
=2i=1∑nDiiyiTyi−2i=1∑nj=1∑nyiTyiAij
=
2
∑
i
=
1
n
(
D
i
j
y
i
)
T
(
D
i
j
y
i
)
−
2
∑
i
=
1
n
y
i
T
(
∑
j
=
1
n
y
j
A
i
j
)
=2\sum_{i=1}^n(\sqrt{{D_{ij}}}y_i)^T(\sqrt{{D_{ij}}}y_i)-2\sum_{i=1}^ny_i^T(\sum_{j=1}^ny_jA_{ij})
=2i=1∑n(Dijyi)T(Dijyi)−2i=1∑nyiT(j=1∑nyjAij)
=
s
t
r
a
c
e
(
Y
T
D
Y
)
−
2
∑
i
=
1
n
y
i
T
(
Y
A
)
=strace(Y^TDY)-2\sum_{i=1}^ny_i^T(YA)
=strace(YTDY)−2i=1∑nyiT(YA)
=
2
t
r
a
c
e
(
Y
T
D
Y
)
−
2
t
r
a
c
e
(
Y
T
A
Y
)
=2trace(Y^TDY)-2trace(Y^TAY)
=2trace(YTDY)−2trace(YTAY)
=
2
t
r
a
c
e
[
Y
T
(
D
−
A
)
Y
]
=2trace[Y^T(D-A)Y]
=2trace[YT(D−A)Y]
=
2
t
r
a
c
e
(
Y
T
L
Y
)
=2trace(Y^TLY)
=2trace(YTLY)
其中,
D
−
A
=
L
D-A=L
D−A=L,
L
L
L 为拉普拉斯矩阵。
变换后的拉普拉斯特征映射优化的目标函数如下:
m
i
n
t
r
a
c
e
(
Y
T
L
Y
)
,
s
.
t
.
Y
T
A
Y
=
I
min trace(Y^TLY), s.t.Y^TAY = I
mintrace(YTLY),s.t.YTAY=I
其中限制条件
s
.
t
.
Y
T
L
Y
=
I
s.t.Y^TLY = I
s.t.YTLY=I保证优化问题有解,下面用拉格朗日乘数法对目标函数求解:
f
(
Y
)
=
t
r
(
Y
T
L
Y
)
+
t
r
[
Λ
(
Y
T
D
Y
−
I
)
]
f(Y) = tr(Y^TLY) + tr[\Lambda(Y^TDY-I)]
f(Y)=tr(YTLY)+tr[Λ(YTDY−I)]
∂
f
(
Y
)
∂
Y
=
L
Y
+
L
T
Y
+
D
T
Y
Λ
T
+
D
Y
Λ
\frac{\partial f(Y)}{\partial Y}=LY + L^TY + D^TY\Lambda^T + DY\Lambda
∂Y∂f(Y)=LY+LTY+DTYΛT+DYΛ
=
2
L
Y
+
2
D
Y
Λ
=2LY + 2DY\Lambda
=2LY+2DYΛ
令偏导数等于0,即
L
Y
=
−
D
Y
Λ
LY = -DY\Lambda
LY=−DYΛ
L
y
=
λ
D
y
Ly = \lambda Dy
Ly=λDy是一个广义特征值问题。通过求得m个最小非零特征值所对应的特征向量,即可达到降维的目的。
3.步骤
1:构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。
2:确定权重
确定点与点之间的权重大小,例如选用热核函数来确定。
3:特征映射
计算拉普拉斯矩阵L的特征向量与特征值:
L
y
=
λ
D
y
Ly = \lambda Dy
Ly=λDy
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。