流形学习
来源:互联网 发布:仿内涵段子源码 编辑:程序博客网 时间:2024/05/21 09:51
好久好久木有写了,由于时间比较零散,总是感觉没有学到什么东西,也就没什么可写的,最近模式识别课正好有个作业是写一个综述,我选的流形学习,把自己的所学记录下来。
流形学习是一种实现非线性降维的方法,这一方法的发展主要得益于2000年Science上两篇文章的发表—ISOMAP和LLE(Local linear embedding),第一篇主要是对MDS方法的改进,用测地线距离(geodesic diatance)取代了欧氏距离,从全局的角度对高维数据的实现降维。而第二篇正好相反,它主要从局部角度出发,用每个样本点的k临近点来线性表示这个样本点,然后在低维空间中进行重构。
接着,大体从这两个角度出发,后继研究者又给出了Laplacian Eigenmap(LE)、Hessian Eigenmap(HE)、Local Tangent Space Alignment(LTSA)、Maximum Variance Unfolding(MVU)等等。
ISOMAP
algorithm
step1:建立邻域关系图G(V,D),其中,V表示vertex,D表示distance
step2:计算测地线距离矩阵GD,方法是在邻域矩阵G中运用Dijkstra算法或Floyd算法来寻找最短路径。
step3:在测地线距离矩阵GD上运用古典MDS算法,寻找低维构造点Y={y1,y2,...,yN}
在step2中,算法假设在流形结构的局部是可以线性化的,即再局部可以用欧式距离来近似代替测地线距离。
LLE
algorithm
step1:建立k近邻邻域关系图G(V,D)
step2:计算重构权值矩阵:对于每个xi∈Rm ,计算每个由k近邻Ni={xj,j∈G} 重构xi 的权值系数wij
ϵLLE=∑i=1N||xi−∑j=Giwjixj||2
step3:寻找在低维空间中的表示:
minYΦ(Y)=∑i=1N||yi−∑jwijyj||2
对于step3,写成矩阵的形式:
求解一个关于Y的二次型最小化问题,解得唯一最小解
LLE VS PCA
PCA最终实际上是对所有样本点的散度进行特征值分解,而LLE算法,我们可以看到实际上是对由权重矩阵构成的矩阵求特征值分解,这相当于只运用了局部样本点的属性。所以,我们可以从LLE中看到PCA的影子。
LE
algorithm
step1:建立k近邻邻域关系图G(V,D)
step2:选择权值,运用热核公式,这里如果Wij=e−||xi−xj||2t xi 和xj 有连接,则||xi−xj|| 表示两点的距离;否则令权重为0
step3:最小化损失函数:Φ(Y)=∑ij(yi−yj)2wij
对step3的公式的理解:
对于step3的求解,算法运用到了图理论中的拉普拉斯矩阵将原问题转化为了一个特征问题:
其中,
HE
algorithm
step1:建立k近邻邻域关系图G(V,D)
step2:在这k个最近邻距离G上运用PCA来获得对应样本点xi 的一组局部切空间基底.即在每个样本点处的局部切空间基底就等价于计算距离的协方差矩阵cov(xi.) 的d个主特征向量M={m1,m2,...,md} ,且k>=d.
step3:通过已经得到的局部切空间基底来估计流形的Hessian矩阵.
HE算法理解的还不够透彻,算法的大概思想就是通过保持局部样本点的Hessian矩阵这一属性来实现降维。后面会有一个与LLE算法的比较,能够直观的感受到HE算法的思想。
LTSA
algorithm
step1:建立k近邻邻域关系图G(V,D)
step2:计算每个数据点xi 处局部切空间的基底,方法同样是将PCA算法应用在由数据点xi 的k近邻点xij 得到的局部散布矩阵上,它能够将数据点xi 的近邻点映射到局部切空间θi 中.局部切空间θ 拥有一个重要的属性──从局部切空间坐标θij 到低维表示yij 存在着一个线性映射Li 。
step3:最小化损失函数其中,minYi,Li∑i||YiJk−Liθi||2 Jk 表示k维的中心矩阵。
对于LLE/LTSA/HE这三种方法之间的关系,可以从LTSA论文的推导中清晰的看出来,同时也在一篇博士论文内看到这样的阐述:
令
x∈Rm ,把函数f(x)在x=0点进行二阶Taylor展开如下:
f(x)=f(0)+TTf(0)⋅x+xT⋅Hf(0)⋅x+o(f(0))
其中,Tf(0)=grad(f(x))|x=0 是f(x)在x=0点的梯度,Hf(0) 是f(x)在x=0点的Hessian矩阵。
那么对于LLE,它通过领域内的数据点本身的线性组合重构样本来获取局部几何,LTSA利用样本在局部切空间上的投影重构样本来获取局部几何,而HE则是利用样本点之间的Hessian矩阵来获取局部几何。
MVU
algorithm
step1:建立k近邻邻域关系图G(V,D)
step2:计算保持局部距离的最大方差展开:
max∑i||yi||2s.t.||yi−yj||2=||xi−xj||2,if(xi,xj)isk−nn∑iyi=0
step3:对角化Gram矩阵K ,令Kij=yi⋅yj 为Gram矩阵,它决定了输出数据Y=K1/2 ,可以将step2中问题转化成SDP问题
max∑iKiis.t.Kii+Kjj−2Kij=||xi−xj||2,if(xi,xj)isk−nn∑iKij=0K>=0(保证半正定)
根据该半定规划求解得到的Gram矩阵 ,可以利用特征值分解来得到数据的低维表示。所以,MVU算法又称为半定嵌入(Semi-definite Embedding, SDE)。
reference
1.Joshua B. Tenenbaum, Vin de Silva, John C. Langford. A global geometric framework for nonlinear dimensionality reduction. Science, 2000,290,2319-2323.
2.Sam T. Roweis, Lawrence K. Saul. Nonlinear Dimensionality reduction by locally linear embedding. Science, 2000. 290,2323-2326.
3.Zhang Zh., Zha H., Principal Manifolds and Nonlinear Dimension Reduction via Local Tangent Space Alignment, Journal. Sci. Comput. SIAM. vol.26, no.1, Jan. 2004, pp.319-338.
4.Belkin M., Niyogi P., Laplacian Eigenmaps for dimensionality reduction and data representation, Neural Computation, vol.15, no.6, 2003, pp.1373-1396.
5.Donoho D.L., Grimes C.E., Hessian Eigenmaps: locally linear embedding techniques for high dimensional data, Proceedings of the National Academy of Arts and Sciences, vol.100, 2003, pp.5591-5596.
6.Weinberger K.Q., Saul L.K., Unsupervised learning of image manifolds by semidefinite programming, CVPR, II, 2004, pp.988-995.
7.Elnaz Golchin, Keivan Maghooli. Overview of manifold learning and its application in medical data set. International journal of biomedical engineering and science(IJBES),Vol.1, No. 2. July 2014
8.李春光.流形学习及其在模式识别中的应用,2007,博士毕业论文
9.杨剑,流形学习问题,2004.
10.浅谈流形学习
11.流形学习综述-张重
12.scikit-learn:manifold learning
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习
- 流形学习 (Manifold Learning)
- 流形学习演示
- Android自定义的网络连接工具类HttpUtil
- Css预处理-sass、less和stylus的安装使用和入门实践
- android listview addHeaderView和addFooterView的注意事项
- 数据库操作(使用FMDB)
- 10以内伐木问题递归求解
- 流形学习
- [Android开发]Fragment使用工厂模式和优化
- BZOJ 3262 陌上花开 “树套树”
- 杭电oj 1003
- Android图片处理工具类
- 线程池的原理及实现
- HTML5来了,7个混合式移动开发框架
- Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation
- CSS的margin塌陷