Isomap 和 LLE
1. 等度量映射(Isomap)
等度量映射 (Isomap, Isometric Mapping) 的假设是低维流形嵌入高维空间之后,直接在高维空间计算直线距离具有误导性。
如下图,两个黑点之间就距离应该是经过流形曲面的红线距离,但是直接计算欧式距离得到的是两点之间的直线距离。
因为流形在局部内近似于一个欧式空间(平面),因此在某个小的局部内计算欧式距离是合理的。于是先建立一个KNN 图,只计算每个点与其最近的 K 个邻居的距离,与其他点的距离设为无穷大。然后使用 Dijkstra 算法或 Floyd 算法计算任意两点之间的最短路径,作为两点之间的距离。最后再使用 MDS 算法进行降维。
2. 局部线性嵌入(LLE)
局部线性嵌入(LLE, Locally Linear Embedding) 试图保持邻域内样本之间的线性关系。其假设样本
x
i
x_i
xi 的坐标可以表示为其邻居的线性组合:
x
i
=
w
i
j
x
j
+
w
i
k
x
k
+
w
i
l
x
l
x_i = w_{ij}x_j+w_{ik}x_k+w_{il}x_l
xi=wijxj+wikxk+wilxl LLE 试图让降维前后上式保持不变。
首先 LLE 在原始空间内,找出每个样本点
x
i
x_i
xi 的最近的 k 个邻居集合
Q
i
Q_i
Qi,然后根据下面的目标函数计算出
w
i
w_i
wi:
min
w
1
,
.
.
.
w
m
∑
i
=
1
m
∥
x
i
−
∑
j
∈
Q
i
w
i
j
x
j
∥
2
2
\min_{w_1,...w_m}\sum_{i=1}^m \Vert x_i-\sum_{j\in Q_i}w_{ij}x_j \Vert_2^2
w1,...wmmini=1∑m∥xi−j∈Qi∑wijxj∥22 令
C
j
k
=
(
x
i
−
x
j
)
T
(
x
i
−
x
k
)
C_{jk}=(x_i-x_j)^T(x_i-x_k)
Cjk=(xi−xj)T(xi−xk) ,则上述的
w
i
w_i
wi 具有闭式解:
w
i
j
=
∑
k
∈
Q
i
C
j
k
−
1
∑
l
,
s
∈
Q
i
C
l
s
−
1
w_{ij}=\frac{\sum_{k\in Q_i}C_{jk}^{-1}}{\sum_{l,s\in Q_i}C_{ls}^{-1}}
wij=∑l,s∈QiCls−1∑k∈QiCjk−1 由于
w
i
w_i
wi 在降维后不变,因此可以通过
w
i
w_i
wi 来求出降维后的低维向量
z
i
z_i
zi
min
z
1
,
.
.
.
z
m
∑
i
=
1
m
∥
z
i
−
∑
j
∈
Q
i
w
i
j
z
j
∥
2
2
\min_{z_1,...z_m}\sum_{i=1}^m\Vert z_i-\sum_{j\in Q_i}w_{ij}z_j \Vert_2^2
z1,...zmmini=1∑m∥zi−j∈Qi∑wijzj∥22 令
Z
=
[
z
1
,
⋯
 
,
z
m
]
,
W
i
j
=
w
i
j
Z=[z_1, \cdots,z_m], W_{ij}=w_{ij}
Z=[z1,⋯,zm],Wij=wij,则上述优化目标为:
min
Z
∥
Z
−
Z
W
T
∥
2
2
=
min
Z
t
r
(
 
(
Z
−
Z
W
T
)
(
Z
−
Z
W
T
)
T
)
=
min
Z
t
r
(
 
Z
(
I
−
W
T
)
(
Z
(
I
−
W
T
)
T
)
=
min
Z
t
r
(
 
Z
(
I
−
W
)
T
(
I
−
W
)
Z
T
)
=
min
Z
t
r
(
 
Z
M
Z
T
)
s
.
t
.
Z
Z
T
=
I
\begin{aligned} \min_{Z}\Vert Z-ZW^T \Vert_2^2 & = \min_{Z}\quad tr(\,(Z-ZW^T)(Z-ZW^T)^T)\\ & = \min_{Z}\quad tr(\,Z(I-W^T)(Z(I-W^T)^T) \\ & = \min_{Z}\quad tr(\,Z(I-W)^T(I-W)Z^T) \\ & = \min_{Z}\quad tr(\,ZMZ^T) \\ s.t. \quad \quad ZZ^T=I \end{aligned}
Zmin∥Z−ZWT∥22s.t.ZZT=I=Zmintr((Z−ZWT)(Z−ZWT)T)=Zmintr(Z(I−WT)(Z(I−WT)T)=Zmintr(Z(I−W)T(I−W)ZT)=Zmintr(ZMZT)
其中
M
=
(
I
−
W
)
T
(
I
−
W
)
M=(I-W)^T(I-W)
M=(I−W)T(I−W),通过求解
M
M
M 的最小的
d
′
d'
d′ 个特征值对应的特征向量即为
Z
T
Z^T
ZT 的每一列。