流形学习——局部线性嵌入算法LLE

来源:互联网 发布:创维电视如何连接网络 编辑:程序博客网 时间:2024/06/06 08:23

LLE原理

局部线性嵌入(Locally Linear Embedding, LLE)是无监督非线性降维算法,是流行学习的一种。

LLE和Isomap一样试图在降维过程中保持高维空间中的流形结构。Isomap把任意两个样本点之间的测地距离作为流形结构的特征,而LLE认为局部关系刻画了流形结构。

LLE认为,在高维中间中的任意一个样本点和它的邻居样本点近似位于一个超平面上,所以该样本点可以通过其邻居样本点的线性组合重构出来。

这里写图片描述

我们假设共有N个样本点。可以根据欧式距离或者其他相似性度量为每个样本点xiRd找到K个邻居,用ηik表示xi的第k个邻居点。重构误差为

J(W)=i=1N||xik=1Kwikηik||2(1)

其中wik表示在重构xi时的第k个邻居的权重系数。把所有的重构系数放在矩阵WRN×K中,它的第i行元素表示重构xi时的邻居系数。

为了得到W,求解最小化问题

minWs.t.J(W)k=1Kwik=1,i=1,2,,N.(2)

为了使得流形结构在低维空间中得以保持,LLE要求低维空间中的样本点仍能保持上面的局部线性关系。假设xi在低维空间中的映射为yiRd,令Y=[y1,y2,,yN]Y可以通过下面的优化问题进行求解:

minYs.t.i=1N||yij=1Nwijyj||21Ni=1NyiyTi=I.(3)

注意,这里的wij和前面的wik不完全一样,表示在低维空间中重构第i个样本点时,第j个样本点的权重。相应的矩阵WRN×N可以由上面的W构造出来。为了不引起混淆,我们把后者重新写作W。当j样本点是i样本点的邻居时,wij等于W中对应的那个权重值;否则wij=0。后面会统一称作W,根据上下文确定到底是哪个。

两个优化问题的求解

上面两个优化问题都可以直接得到最优解的解析式。

高维空间中的优化问题

有两种方法可以推出优化问题(2)的最优解。

方法一

wi表示矩阵W的第i行元素,Ni=[ηi1,ηi2,,ηiK]Rd×K,则

J(W)=i=1N||xiNiwTi||2=i=1N(xiNiwTi)T(xiNiwTi)=i=1N(xTixi2xTiNiwTi+wiNTiNiwTi).

由于第一项和W无关,所以目标函数等价于

J(W)=i=1N(2xTiNiwTi+wiNTiNiwTi).(4)

构建拉格朗日函数

L(W,λ)=i=1N(2xTiNiwTi+wiNTiNiwTi)+i=1Nλi(wi11),

求导得到:

Lwi=2xTiNi+2wiNTiNi+λi1T=0,(5)

Lλi=(wi11)=0.(6)

Ci=NTiNiRK×K.(7)

由公式(5)可以得到

wi=(xTiNi12λi1T)(Ci)1,(8)

于是有

wi1=(xTiNi12λ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_Km12λ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_Km12λin=1K_m=1K(Ci)1_nm=n=1KxTiηin_m=1K(Ci)1_nm12λin=1K_m=1K(Ci)1_nm=n=1K_m=1KxTiηin(Ci)1_nm12λin=1K_m=1K(Ci)1_nm,

代入(6)中,得到

n=1K_m=1KxTiηin(Ci)1_nm12λin=1K_m=1K(Ci)1_nm=1,

所以

λi=2(Kn=1_m=1KxTiηin(Ci)1_nm1)Kn=1_m=1K(Ci)1_nm,

代入公式(7)中得到

wi=(xTiNi(1Kn=1_m=1KxTiηin(Ci)1_nm)Kn=1_m=1K(Ci)1_nm1T)(Ci)1.(9)

根据公式(9)得到所有的wi,组成矩阵W

方法二

J(W)=i=1N||xik=1Kwikηik||2=i=1N||k=1Kwikxik=1Kwikηik||2=i=1N||k=1Kwik(xiηik)||2=i=1N||(XiNi)wTi||2=i=1N((XiNi)wTi)T((XiNi)wTi)=i=1Nwi(XiNi)T(XiNi)wTi,(10)

其中Xi=[xi,,xi]Rd×K

构建拉格朗日函数

L(W,λ)=i=1Nwi(XiNi)T(XiNi)wTi+i=1Nλi(wi11),

求导得到

Lwi=2wi(XiNi)T(XiNi)+λi1T=0,(11)

Lλi=(wi11)=0.(12)

S=(XiNi)T(XiNi).(13)

可以得到

wi=12λi1TS1,(14)

代入公式(12)中,得到

12λi1TS111=0,

1TS11是一个实数,所以得到

λi=21TS11,

代入公式(14)得到

wi=1TS11TS11.(15)

暂时还没有证明(9)和(15)是否等价,留作以后的习题吧。

低维空间中的优化问题

Y=[y1,y2,,yN]RN×Nwi表示W的第i行元素。优化问题(3)的目标函数可以化简成:

J(Y)=i=1N||yij=1Nwijyj||2=i=1N||yiYwTi||2=i=1N(yiYwTi)T(yiYwTi)=i=1N(yTiyi2yTiYwTi+wiYTYwTi)=i=1NyTiyi2i=1NyTiYwTi+i=1NwiYTYwTi=i=1NyTiyi2i=1N[yTiy1,yTiy2,,yTiyN]wi1wi2wiN+i=1N(wi1,wi2,,wiN)yT1yT2yTN(y1,y2,,yN)wi1wi2wiN=i=1NyTiyi2i=1Nj=1NyTiyjwij+i=1Nm=1NwimyTmn=1Nwinyn=i=1NyTiyi2i=1Nj=1NyTiyjwij+i=1Nm=1Nn=1NwimwinyTmyn=i=1NyTiyi2i=1Nj=1NyTiyjwij+k=1Ni=1Nj=1NwkiwkjyTiyj=i=1NyTiyii=1Nj=1N2wijyTiyj+i=1Nj=1N(k=1Nwkiwkj)yTiyj,(16)

δij=1,ifi=j0,ifij,

Mij=δij2wij+k=1Nwkiwkj,(17)

则(16)可以写成

J(Y)=i=1Nj=1NMijyTiyj.(18)

通过展开进行矩阵相乘,可以证明

J(Y)=i=1Nj=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,ij,

所以

J(Z)=N2i=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,只要在原有低维空间的基础上增加或者减去维度;

缺点

  • 数据流形不能是闭合结构,否则LLE不再适用

疑问

  1. 优化问题(18)怎么应用拉格朗日乘子法?
    自己尝试推导了一下,发现得到的方程组非常繁琐,不知道怎么化简。

参考

[1] Nonlinear dimensionality reduction by locally linear embedding. Sam T. Roweis and Lawrence K. Saul. 2000.
[2] 降维打击之LLE算法
[3] 机器学习降维算法三:LLE (Locally Linear Embedding) 局部线性嵌入