基本思路
LLE(Local Linear Embedding)局部线性嵌入的思路也是局部保持与线性降维,是一种经典的降维与流形学习算法。给定
X
∈
R
D
×
n
X\in \mathbb{R}^{D\times n}
X∈RD×n表示原始的
n
n
n个样本,每列一个样本,欲求
X
X
X中这些样本降维后的结果
Y
∈
R
d
×
n
,
d
<
D
Y\in \mathbb{R}^{d\times n},d<D
Y∈Rd×n,d<D.
为了记录原始样本分布的局部信息,LLE将
X
X
X中每个样本用其
k
k
k个近邻来表示(或称为“重建”),使其
k
k
k个近邻的加权和尽可能接近该样本,最小化重建误差,设第
i
i
i个样本
x
i
x_i
xi的第
j
j
j个近邻
x
i
j
x_{ij}
xij的重建权重为
W
i
j
W_{ij}
Wij,先计算这个
W
∈
R
n
×
k
W\in \mathbb{R}^{n\times k}
W∈Rn×k矩阵。
在降维的过程中,既然已经得到了
W
W
W,LLE希望降完维后的
Y
Y
Y中的各样本仍保持
W
W
W所描述的这种重建关系。
这就是LLE的思路,先记录样本及其近邻之间的关系,然后在降维时保持这种关系。
W W W矩阵求解
先来计算
W
W
W矩阵:
min
W
∑
i
=
1
n
∥
x
i
−
∑
j
=
1
k
W
i
j
x
i
j
∥
2
2
s
.
t
.
∑
j
=
1
k
W
i
j
=
1
\min_W \sum_{i=1}^n\|x_i-\sum_{j=1}^kW_{ij}x_{ij} \|_2^2 \\ s.t.\ \sum_{j=1}^kW_{ij}=1
Wmini=1∑n∥xi−j=1∑kWijxij∥22s.t. j=1∑kWij=1
k
k
k为近邻数量,是个可以调节的参数,
x
i
j
x_{ij}
xij是
x
i
x_i
xi的第
j
j
j个近邻,
x
i
,
x
i
j
x_i,x_{ij}
xi,xij都是列向量。这就是所谓的用来求
W
W
W的要最小化的“重建误差”。我们来求解。
∑
i
=
1
n
∥
x
i
−
∑
j
=
1
k
W
i
j
x
i
j
∥
2
2
=
∑
i
=
1
n
∥
∑
j
=
1
k
W
i
j
(
x
i
−
x
i
j
)
∥
2
2
=
∑
i
=
1
n
(
W
i
x
~
i
T
)
(
x
~
i
W
i
T
)
=
∑
i
=
1
n
W
i
x
~
i
T
x
~
i
W
i
T
s
.
t
.
W
i
e
=
1
W
i
=
[
W
i
1
,
W
i
2
,
⋯
,
W
i
k
]
∈
R
1
×
k
x
~
i
=
[
x
i
−
x
i
1
,
x
i
−
x
i
2
,
⋯
,
x
i
−
x
i
k
]
∈
R
D
×
k
e
=
[
1
,
1
,
⋯
,
1
]
T
∈
R
k
×
1
\sum_{i=1}^n\|x_i-\sum_{j=1}^kW_{ij}x_{ij} \|_2^2 \\ = \sum_{i=1}^n \|\sum_{j=1}^kW_{ij}(x_i-x_{ij}) \|_2^2 \\ = \sum_{i=1}^n (W_i \tilde{x}_i^T)(\tilde{x}_iW_i^T) \\ = \sum_{i=1}^n W_i \tilde{x}_i^T\tilde{x}_iW_i^T \\ s.t.\ W_ie=1 \\ W_i=[W_{i1},W_{i2},\cdots,W_{ik}]\in \mathbb{R}^{1\times k} \\ \tilde{x}_i=[x_i-x_{i1},x_i-x_{i2},\cdots,x_i-x_{ik}]\in \mathbb{R}^{D\times k} \\ e=[1,1,\cdots,1]^T\in \mathbb{R}^{k\times 1}
i=1∑n∥xi−j=1∑kWijxij∥22=i=1∑n∥j=1∑kWij(xi−xij)∥22=i=1∑n(Wix~iT)(x~iWiT)=i=1∑nWix~iTx~iWiTs.t. Wie=1Wi=[Wi1,Wi2,⋯,Wik]∈R1×kx~i=[xi−xi1,xi−xi2,⋯,xi−xik]∈RD×ke=[1,1,⋯,1]T∈Rk×1
变成这种形式后用Lagrangian乘子法求解:
L
(
W
,
λ
)
=
∑
i
=
1
n
W
i
x
~
i
T
x
~
i
W
i
T
+
λ
i
(
1
−
W
i
e
)
L(W, \lambda)=\sum_{i=1}^n W_i \tilde{x}_i^T\tilde{x}_iW_i^T + \lambda_i(1-W_ie)
L(W,λ)=i=1∑nWix~iTx~iWiT+λi(1−Wie)
令偏导为
0
0
0:
∂
∂
W
i
L
(
W
,
λ
)
=
2
W
i
x
~
i
T
x
~
i
−
λ
i
e
T
=
0
W
i
x
~
i
T
x
~
i
=
1
2
λ
i
e
T
W
i
=
1
2
λ
i
e
T
(
x
~
i
T
x
~
i
)
−
1
(1)
\frac{\partial}{\partial W_i}L(W,\lambda)=2W_i\tilde{x}_i^T\tilde{x}_i-\lambda_ie^T=0 \\ W_i\tilde{x}_i^T\tilde{x}_i= \frac{1}{2} \lambda_ie^T\\ W_i= \frac{1}{2} \lambda_i e^T(\tilde{x}_i^T\tilde{x}_i)^{-1} \tag{1}
∂Wi∂L(W,λ)=2Wix~iTx~i−λieT=0Wix~iTx~i=21λieTWi=21λieT(x~iTx~i)−1(1)
∂
∂
λ
i
L
(
W
,
λ
i
)
=
1
−
W
i
e
=
0
W
i
e
=
1
1
2
λ
i
e
T
(
x
~
i
T
x
~
i
)
−
1
e
=
1
(2)
\frac{\partial}{\partial \lambda_i}L(W,\lambda_i)=1-W_ie=0 \\ W_ie=1 \\ \frac{1}{2} \lambda_i e^T(\tilde{x}_i^T\tilde{x}_i)^{-1}e=1 \tag{2}
∂λi∂L(W,λi)=1−Wie=0Wie=121λieT(x~iTx~i)−1e=1(2)
从公式
(
2
)
(2)
(2)可以解出
λ
i
\lambda_i
λi,代入公式
(
1
)
(1)
(1)可以解出
W
i
W_i
Wi。因为只能解出来一组结果,尽管是必要条件,但是也就这样了。
这样就得到了
W
W
W矩阵。
投影优化与求解
求出
W
W
W之后,如前所述,要在降维后的
Y
Y
Y中尽量保持
W
W
W所描述的重建关系,因此LLE列出了下优化目标:
min
Y
∑
i
=
1
n
∥
y
i
−
∑
j
=
1
k
W
i
j
y
i
j
∥
2
2
=
∑
i
=
1
n
∥
Y
I
i
−
Y
∑
j
=
1
k
W
i
j
I
(
i
)
j
∥
2
2
=
∑
i
=
1
n
∥
Y
(
I
i
−
W
~
i
T
)
∥
2
2
=
∑
i
=
1
n
(
I
i
T
−
W
~
i
)
Y
T
Y
(
I
i
−
W
~
i
T
)
=
t
r
(
G
T
Y
T
Y
G
)
s
.
t
.
Y
Y
T
=
I
\min_Y \sum_{i=1}^n\| y_i-\sum_{j=1}^kW_{ij}y_{ij} \|_2^2 \\ =\sum_{i=1}^n\| YI_i- Y \sum_{j=1}^k W_{ij}I_{(i)j} \|_2^2 \\ = \sum_{i=1}^n \| Y(I_i- \tilde{W}_i^T) \|_2^2 \\ = \sum_{i=1}^n (I_i^T-\tilde{W}_i)Y^T Y(I_i-\tilde{W}_i^T) \\ =tr(G^TY^TYG) \\ s.t.\ YY^T=I
Ymini=1∑n∥yi−j=1∑kWijyij∥22=i=1∑n∥YIi−Yj=1∑kWijI(i)j∥22=i=1∑n∥Y(Ii−W~iT)∥22=i=1∑n(IiT−W~i)YTY(Ii−W~iT)=tr(GTYTYG)s.t. YYT=I
I i ∈ R n × 1 I_i\in \mathbb{R}^{n\times 1} Ii∈Rn×1是一个列向量,其第 i i i个元素为1,其他均为0,起到一个筛选作用,从 Y Y Y中将 y i y_i yi筛选出来。 W ~ i T ∈ R n × 1 \tilde{W}_i^T\in \mathbb{R}^{n\times 1} W~iT∈Rn×1是一个列向量,其定义其实可以从公式里面看出来,第 j j j个样本如果是 x i x_i xi的 k k k近邻之一,则 W ~ i \tilde{W}_i W~i第 j j j个元素为 W i j W_{ij} Wij,否则为0. 而 G ∈ R n × n G\in \mathbb{R}^{n\times n} G∈Rn×n是一个矩阵,第 i i i列为 ( I i − W ~ i T ) (I_i-\tilde{W}_i^T) (Ii−W~iT)。且有 G = I − W ~ T G=I-\tilde W^T G=I−W~T。
然后列Lagrangian乘子法:
L
(
Y
,
λ
)
=
t
r
(
G
T
Y
T
Y
G
)
+
t
r
[
λ
(
I
−
Y
Y
T
)
]
L(Y,\lambda)=tr(G^TY^TYG) +tr[\lambda(I-YY^T)]
L(Y,λ)=tr(GTYTYG)+tr[λ(I−YYT)]
λ
\lambda
λ为对角矩阵。求偏导并令偏导为0:
∂
∂
Y
L
(
Y
,
λ
)
=
2
Y
G
G
T
−
2
λ
Y
=
0
G
G
T
Y
T
=
Y
T
λ
(
I
−
W
~
T
)
(
I
−
W
~
T
)
T
Y
T
=
Y
T
λ
\frac{\partial }{\partial Y}L(Y,\lambda)=2YGG^T-2\lambda Y=0 \\ GG^TY^T=Y^T\lambda \\ (I-\tilde W^T)(I-\tilde W^T)^TY^T=Y^T\lambda \\
∂Y∂L(Y,λ)=2YGGT−2λY=0GGTYT=YTλ(I−W~T)(I−W~T)TYT=YTλ
∂
∂
λ
L
(
Y
,
λ
)
=
I
−
Y
Y
T
=
0
Y
Y
T
=
I
\frac{\partial }{\partial \lambda}L(Y,\lambda)=I-YY^T=0 \\ YY^T=I
∂λ∂L(Y,λ)=I−YYT=0YYT=I
意思是说
Y
T
Y^T
YT的每一列(Y的每一行)都应该是
G
G
T
GG^T
GGT的特征向量,对应的特征值在
λ
\lambda
λ的对角元上。这是必要条件。把
G
G
T
Y
T
=
Y
T
λ
GG^TY^T=Y^T\lambda
GGTYT=YTλ代回去:
t
r
(
G
T
Y
T
Y
G
)
=
t
r
(
Y
G
G
T
Y
T
)
=
t
r
(
Y
Y
T
λ
)
=
t
r
(
λ
)
tr(G^TY^TYG) =tr(YGG^TY^T)=tr(YY^T\lambda)=tr(\lambda)
tr(GTYTYG)=tr(YGGTYT)=tr(YYTλ)=tr(λ)
这告诉我们 t r ( G T Y T Y G ) tr(G^TY^TYG) tr(GTYTYG)的最小值等价于 t r ( λ ) tr(\lambda) tr(λ)的最小值,因此要选取最小的 d d d个特征值对应的特征向量组成 Y Y Y。
然而这里有一个问题,那就是
G
G
T
GG^T
GGT最小的特征值是0,对应的特征向量是个
e
=
[
1
,
1
⋯
,
1
]
T
∈
R
n
×
1
e=[1,1\cdots,1]^T\in \mathbb{R}^{n\times 1}
e=[1,1⋯,1]T∈Rn×1。证明一下:
(
I
−
W
~
T
)
(
I
−
W
~
T
)
T
e
=
(
I
−
W
~
T
)
(
I
−
W
~
e
)
=
(
I
−
W
~
T
)
⋅
0
=
0
⋅
e
(I-\tilde W^T)(I-\tilde W^T)^Te=(I-\tilde{W}^T)(I-\tilde{W}e)=(I-\tilde W^T)\cdot 0=0\cdot e
(I−W~T)(I−W~T)Te=(I−W~T)(I−W~e)=(I−W~T)⋅0=0⋅e
主要原因是
W
~
∈
n
×
n
\tilde W\in \mathbb{n\times n}
W~∈n×n的每一行之和都为0。本来就是从重建矩阵
W
∈
R
n
×
k
W\in \mathbb{R}^{n\times k}
W∈Rn×k来的嘛,只不过扩展了一下,扩展的还都填了0.
这个证明告诉我们无论
X
X
X怎样变化,
G
G
T
GG^T
GGT都有一个特征向量全为1,对应的特征值为0. 这显然不是我们想要的,因此一般取非0的前
d
d
d小的特征值对应的特征向量组成
Y
Y
Y。
总结
这个推导告诉我们,经典形式
t
r
(
W
T
A
A
T
W
)
tr(W^TAA^TW)
tr(WTAATW)有多么重要以及千变万化。
还告诉我们,构造向量和矩阵以形成熟悉容易解的形式非常重要。
另有一点,
G
G
T
GG^T
GGT的结果是
n
×
n
n\times n
n×n的矩阵,最多有
n
n
n个特征值,其中还有一个是0,也就是说
d
>
n
−
1
d>n-1
d>n−1的时候LLE就不能用了。