数据降维和投影

    高维数据一直是机器学习以及相关领域所面临的一大挑战,维数太高不仅会造成计算过程的时间、空间大幅增长,还有可能由于样本规模远小于维数出现“小样本”问题,造成严重的过拟合;同时维数过高并不意味着所有的特征维数都是有用的,这样数据通常包含大量的冗余信息,对分类也是不利的。因此,在处理高维数据时我们需要把数据的维数降下来,这就是降维的过程。降维的方式有多重多样,其中一种重要的方式是寻找一个线性变换矩阵,通过这个变换矩阵可以把原始的高维样本投影到一个低维子空间。当然不同的变换矩阵能够使子空间中新的样本具有不同的特性,我们从各种tutorials、书本看到的介绍的比较频繁的有三种:

             (1)尽量保持原始数据中的主要信息,并且最大化投影之后样本方差的角度出发寻求投影,也就是我们日常中经常用到的、灰常灰常重要的降维算法主成分分析(Principal Component Analysis, PCA),PCA是一种无监督的机器学习方法~

            (2)从分类的角度出发,寻求的投影能够使新的同类样本聚集,异类样本分散,也就是我们经常所说的线性判别/鉴别方法(Linear Discriminant Analysis, LDA),显然,LDA是一种有监督的机器学习方法;

            (3)从保持原始样本中局部近邻信息的角度出发寻求投影,也就是我们经常所说的“流形学习”(Manifold Learing)方法,流形学习方法没有最原始的“鼻祖”,不过有几个最具影响力的算法,比如等距映射(Isometric Mapping, Isomap)、局部保留投影(Local Preserving Projection, LPP)、近邻保持嵌入(Neighbor Preserving Embedding)等等方法。
    需要指出的是这三种类型方法都有一定的数学渊源,并不是“凭空”想象而来,像PCA上世纪很早的时候就已经用在统计分析了;而LDA基于Fisher准则,Fisher准则也是很早就被提出来,因此LDA也被叫做FDA;而流形学习相关的文章大多会提到黎曼流形,听起来很大上,不过这也正是机器学习这门学科比较尴尬的地方,很多相关背景特别高大上,不过理解只需要一些比较基本的线性代数、概率统计或者微积分的知识。这是题外话~

    上面提到的几类降维方法以及他们的扩展方法真的被研究多年了,一来基于投影变换的降维方法实在是推导方便,“套路”也比较成熟:构造普通的优化目标,然后添加约束条件,固定某个值,然后使用lagrange multiplier、求导、构造特征方程,求解特征值对应的特征向量构成投影向量即可,整个过程很容易获得解析解~;二来这些方法很容易结合其他算法,比如把投影方法用到稀疏分类器,使投影之后的样本满足稀疏重构关系,再复杂一点,目标函数再加某个约束,以限制复杂度或者满足其他某种条件......如此一来,灌灌水就能发发paper岂不美滋滋~无论怎么说,投影方法是一类很典型的线性机器学习方法,因为大多数基于投影的方法对原始样本进行线性变换。除此以外,线性机器学习算法还有很多,比如进行线性回归、神经网络的基础感知机或者早期的线性网络,支持向量机中的线性版本等等,可以看出这一类方法直观便于理解,而且最为重要的是,经过推广这些算法都能够扩展为重要的算法。后面会逐一介绍这些线性方法的详细介绍~

发表评论

电子邮件地址不会被公开。 必填项已用*标注