LLE原理
局部线性嵌入(Locally Linear Embedding, LLE)是无监督非线性降维算法,是流行学习的一种。
LLE和Isomap一样试图在降维过程中保持高维空间中的流形结构。Isomap把任意两个样本点之间的测地距离作为流形结构的特征,而LLE认为局部关系刻画了流形结构。
LLE认为,在高维中间中的任意一个样本点和它的邻居样本点近似位于一个超平面上,所以该样本点可以通过其邻居样本点的线性组合重构出来。
我们假设共有N个样本点。可以根据欧式距离或者其他相似性度量为每个样本点xi∈Rd找到K个邻居,用ηik表示xi的第k个邻居点。重构误差为
J(W)=∑i=1N||xi−∑k=1Kwikηik||2(1)
其中wik表示在重构xi时的第k个邻居的权重系数。把所有的重构系数放在矩阵W∈RN×K中,它的第i行元素表示重构xi时的邻居系数。
为了得到W,求解最小化问题
minWs.t.J(W)∑k=1Kwik=1,i=1,2,⋯,N.(2)
为了使得流形结构在低维空间中得以保持,LLE要求低维空间中的样本点仍能保持上面的局部线性关系。假设xi在低维空间中的映射为yi∈Rd′,令Y=[y1,y2,⋯,yN]。Y可以通过下面的优化问题进行求解:
minYs.t.∑i=1N||yi−∑j=1Nwijyj||21N∑i=1NyiyTi=I.(3)
注意,这里的wij和前面的wik不完全一样,表示在低维空间中重构第i个样本点时,第j个样本点的权重。相应的矩阵W∈RN×N可以由上面的W构造出来。为了不引起混淆,我们把后者重新写作W′。当j样本点是i样本点的邻居时,wij等于W′中对应的那个权重值;否则wij=0。后面会统一称作W,根据上下文确定到底是哪个。
两个优化问题的求解
上面两个优化问题都可以直接得到最优解的解析式。
高维空间中的优化问题
有两种方法可以推出优化问题(2)的最优解。
方法一
令wi表示矩阵W的第i行元素,Ni=[ηi1,ηi2,⋯,ηiK]∈Rd×K,则
J(W)=∑i=1N||xi−NiwTi||2=∑i=1N(xi−NiwTi)T(xi−NiwTi)=∑i=1N(xTixi−2xTiNiwTi+wiNTiNiwTi).
由于第一项和W无关,所以目标函数等价于
J(W)=∑i=1N(−2xTiNiwTi+wiNTiNiwTi).(4)
构建拉格朗日函数
L(W,λ)=∑i=1N(−2xTiNiwTi+wiNTiNiwTi)+∑i=1Nλi(wi1−1),
求导得到:
∂L∂wi=−2xTiNi+2wiNTiNi+λi1T=0,(5)
∂L∂λi=(wi1−1)=0.(6)
令
Ci=NTiNi∈RK×K.(7)
由公式(5)可以得到
wi=(xTiNi−12λi1T)(Ci)−1,(8)
于是有
wi1=(xTiNi−12λi1T)⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑_m=1K(Ci)−1_1m∑_m=1K(Ci)−1_2m⋮∑_m=1K(Ci)−1_Km⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=xTiNi⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑_m=1K(Ci)−1_1m∑_m=1K(Ci)−1_2m⋮∑_m=1K(Ci)−1_Km⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟−12λi1T⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑_m=1K(Ci)−1_1m∑_m=1K(Ci)−1_2m⋮∑_m=1K(Ci)−1_Km⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=[xTiηi1,xTiηi2,⋯,xTiηiK]⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑_m=1K(Ci)−1_1m∑_m=1K(Ci)−1_2m⋮∑_m=1K(Ci)−1_Km⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟−12λi∑n=1K∑_m=1K(Ci)−1_nm=∑n=1KxTiηin∑_m=1K(Ci)−1_nm−12λi∑n=1K∑_m=1K(Ci)−1_nm=∑n=1K∑_m=1KxTiηin(Ci)−1_nm−12λi∑n=1K∑_m=1K(Ci)−1_nm,
代入(6)中,得到
∑n=1K∑_m=1KxTiηin(Ci)−1_nm−12λi∑n=1K∑_m=1K(Ci)−1_nm=1,
所以
λi=2(∑Kn=1∑_m=1KxTiηin(Ci)−1_nm−1)∑Kn=1∑_m=1K(Ci)−1_nm,
代入公式(7)中得到
wi=(xTiNi−(1−∑Kn=1∑_m=1KxTiηin(Ci)−1_nm)∑Kn=1∑_m=1K(Ci)−1_nm1T)(Ci)−1.(9)
根据公式(9)得到所有的wi,组成矩阵W。
方法二
J(W)=∑i=1N||xi−∑k=1Kwikηik||2=∑i=1N||∑k=1Kwikxi−∑k=1Kwikηik||2=∑i=1N||∑k=1Kwik(xi−ηik)||2=∑i=1N||(Xi−Ni)wTi||2=∑i=1N((Xi−Ni)wTi)T((Xi−Ni)wTi)=∑i=1Nwi(Xi−Ni)T(Xi−Ni)wTi,(10)
其中Xi=[xi,⋯,xi]∈Rd×K。
构建拉格朗日函数
L(W,λ)=∑i=1Nwi(Xi−Ni)T(Xi−Ni)wTi+∑i=1Nλi(wi1−1),
求导得到
∂L∂wi=2wi(Xi−Ni)T(Xi−Ni)+λi1T=0,(11)
∂L∂λi=(wi1−1)=0.(12)
令
S=(Xi−Ni)T(Xi−Ni).(13)
可以得到
wi=−12λi1TS−1,(14)
代入公式(12)中,得到
12λi1TS−11−1=0,
1TS−11是一个实数,所以得到
λi=21TS−11,
代入公式(14)得到
wi=−1TS−11TS−11.(15)
暂时还没有证明(9)和(15)是否等价,留作以后的习题吧。
低维空间中的优化问题
令Y=[y1,y2,⋯,yN]∈RN×N,wi表示W的第i行元素。优化问题(3)的目标函数可以化简成:
J(Y)=∑i=1N||yi−∑j=1Nwijyj||2=∑i=1N||yi−YwTi||2=∑i=1N(yi−YwTi)T(yi−YwTi)=∑i=1N(yTiyi−2yTiYwTi+wiYTYwTi)=∑i=1NyTiyi−2∑i=1NyTiYwTi+∑i=1NwiYTYwTi=∑i=1NyTiyi−2∑i=1N[yTiy1,yTiy2,⋯,yTiyN]⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜wi1wi2⋮wiN⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟+∑i=1N(wi1,wi2,⋯,wiN)⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜yT1yT2⋮yTN⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟(y1,y2,⋯,yN)⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜wi1wi2⋮wiN⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=∑i=1NyTiyi−2∑i=1N∑j=1NyTiyjwij+∑i=1N∑m=1NwimyTm∑n=1Nwinyn=∑i=1NyTiyi−2∑i=1N∑j=1NyTiyjwij+∑i=1N∑m=1N∑n=1NwimwinyTmyn=∑i=1NyTiyi−2∑i=1N∑j=1NyTiyjwij+∑k=1N∑i=1N∑j=1NwkiwkjyTiyj=∑i=1NyTiyi−∑i=1N∑j=1N2wijyTiyj+∑i=1N∑j=1N(∑k=1Nwkiwkj)yTiyj,(16)
令
δij=⎧⎩⎨1,ifi=j0,ifi≠j,
令
Mij=δij−2wij+∑k=1Nwkiwkj,(17)
则(16)可以写成
J(Y)=∑i=1N∑j=1NMijyTiyj.(18)
通过展开进行矩阵相乘,可以证明
J(Y)=∑i=1N∑j=1NMijyTiyj=tr(YMYT).
令Z=YT,写作Z=[z1,z2,⋯,zN],那么
J(Z)=tr(ZTMZ).(19)
优化问题(3)的约束条件等价于
1NYYT=I,
用
Z表示的话为
1NZTZ=I.(20)
于是优化问题(3)现在变成
minZs.t.tr(ZTMZ),1NZTZ=I(21)
拉格朗日乘子法,可以得到这个优化问题的最优解满足
Mzi=λizi,(22)
即最优解肯定是M的特征向量,但是我们只需要d′个特征向量,是哪d′个呢?先把(22)代入目标函数中,得到
J(Z)=tr(ZTMZ)=∑i=1NzTiMzi=∑i=1NλizTizi.
又因为约束条件1NZTZ=I其实等价于
zTizi=N,i=1,2,⋯,NzTizj=0,i≠j,
所以
J(Z)=N2∑i=1Nλi,
所以为了最小化
J(Z),应该取矩阵
M的前
d′个最小非零特征值对应的特征向量作为
Z的列向量,得到
Z,其转置即为
Y。
综上,M的前d′个最小非零特征值对应的特征向量作为Y的行向量就得到最优Y。
LLE算法总结
算法流程
步骤一
首先根据欧氏距离或者其他度量标准得到每个样本的K个近邻,得到近邻矩阵Ni。
步骤二
根据公式(7)求出Ci,并且求逆矩阵(Ci)−1。代入(9)中,得到根据每个样本的重构系数。
步骤三
把步骤二中的权重系数重新构建成稀疏矩阵W。根据公式(17)计算M,计算M的特征之和特征向量,取最小非零特征值对应的特征向量作为Y的行向量得到Y。
算法优缺点
优点
- 算法中只涉及矩阵运算,容易实现;
- 低维空间维度变化时,不需要重新运行LLE,只要在原有低维空间的基础上增加或者减去维度;
缺点
疑问
- 优化问题(18)怎么应用拉格朗日乘子法?
自己尝试推导了一下,发现得到的方程组非常繁琐,不知道怎么化简。
参考
[1] Nonlinear dimensionality reduction by locally linear embedding. Sam T. Roweis and Lawrence K. Saul. 2000.
[2] 降维打击之LLE算法
[3] 机器学习降维算法三:LLE (Locally Linear Embedding) 局部线性嵌入