机器学习方法篇(28)------降维和度量学习
● 每周一言
不亲身经历,不妄加评论。
导语
在特征提取过程中,有时候会遇到特征维数非常大(维数灾难)的情况,这种情况会带来两个主要问题:一是样本稀疏,会极大削弱特征的表达能力;二是高维数所带来的庞大计算量。降维和度量学习便是维数灾难的解决之法。那么,究竟什么是降维和度量学习?
降维和度量学习
我们先来讲讲这个“维数灾难”。当特征维数变大之后,为什么会出现“灾难”?
不妨举个例子直观感受一下:比如一个分类问题,一开始只有一个特征A,特征值有100个,我们最少需要100个样本才能拟合出特征A。现新增一个特征B,特征值同样有100个,并假设特征之间正交独立,问最少需要多少个样本才能完整拟合A和B?没错,答案是100 × 100 = 10000个。
由此推之,当特征维数为n时,我们至少需要100的n次方个样本才能完整拟合特征空间。显然,这样指数级的样本数量是不可获取的,也是不可计算的,这便是所谓的“维数灾难”。
降维,顾名思义就是降低特征维数,通过某种数学变换将原始特征从高维空间转变到低维空间。降维在直观意义上降低了特征数据的稀疏性,一定程度达到了提炼低维优质属性或降噪的效果。
通常情况下,降维的基本要求是,经过高低维空间变换后的低维空间中各个样本之间的相对距离,尽量与原高维空间中的相对距离等价。
降维的实现方法分为 线性降维 和 非线性降维 两大类。
线性降维算法主要有 主成分分析(Principal components analysis,PCA) 和 线性判别分析(Linear Discriminant Analysis,LDA)两种;非线性降维算法主要有 多维缩放(Multidimensional Scaling,MDS)、局部线性嵌入(Locally Linear Embedding,LLE) 和 拉普拉斯映射(Laplacian Eigenmaps,LE)等。
降维的目的是寻找一个合适的低维空间,而每一个空间都对应一个合适的距离度量进行特征计算。
度量学习 则是在原特征空间上直接“学习”出一个合适的距离度量,来等效降维的效果。
由于在解决维数灾难问题上,一般倾向于使用更为直观的降维来解决,因此在这里对度量学习不做展开描述,有兴趣的读者可自行查阅资料。
以上便是降维和度量学习的介绍,敬请期待下节内容。
结语
感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白!