第十章 降维与度量学习

k近邻学习

kNN学习是一种常用的监督学习方法

  • 工作机制
    给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后根据这k个“邻居”的信息来进行预测。

    对于kNN学习中,最重要的是对k的选取和对距离的定义
    对于最近邻分类器(1NN,即k=1),其出错的概率为:

其中x为测试样本,其最近邻样本为z,假设样本独立同分布,且对任意x和任意小正数距离范围内总能找到一个训练样本. 令表示贝叶斯最有分类器的结果, 则可以推导出:

最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。

低维嵌入

前面的讨论的都是基于假设:对任意和任意小正数, 在附近距离范围内总能找到一个训练样本。但是这在现实任务中是很难实现的而且随着特征维数增加,所需要的样本数飞速增长,高维特征也会使距离运算量更大,耗费时间更长。

  • 维度灾难
    在高维情形下出现的数据样本稀疏,距离计算困难等问题,是所有机器学习方法共同面临的严重障碍。

缓解维数灾难的一个重要途径是降维,也称作“维数约简”。即通过某种数字变换将原始高维属性空间转变为一个子空间,在这个子空间中样本密度大幅度提高,距离计算也变得容易。(将原始高维属性空间转变为一个低维子空间)虽然数据样本是高维的,但是与学习任务密切相关的也许仅仅是某个低维分布.
MDS算法(多维缩放)

多为缩放是一种经典的降维算法。假设个样本在原始空间的距离矩阵为, 其中第行第列的元素为两个样本和之间的距离,而我们的目标就是获得样本在维空间的表示 , 且任意两个样本在维空间中的欧氏距离等于原始空间中的距离,即.令 , 其中为降维后样本的内积矩阵, , 有:

为了便于讨论, 令降维后的样本被中心化了, 则推导后可以得到:

                                                 
                                                 

由此可以利用降维前的距离矩阵来求降维后的内积矩阵, 并对其做特征值分解, 其中 为特征值组成的对角矩阵, 为特征向量矩阵. 假设其中有个非零特征值, 它们组成的对角矩阵和特征向量矩阵则有以下关系:

实际中, 为了有效降维(降到), 则不一定要求降维后的距离严格相等, 此时取前个非零特征值对应的和:

MDS算法流程:


除了MDS算法,基于线性变换来进行降维的线性降维是最简单的降维方法, 这类方法被称作线性降维方法,下一节将以PCA主成分分析为例进行介绍。

主成分分析

主成分分析(PCA)是最常用的一种降维方法。对于一个能够将所有样本进行恰当表达的超平面,基于其最近重构性(样本点到这个超平面的距离都足够近)主成分分析的优化目标为:


而基于其最大可分性(样本点在这个超平面上的投影尽可能分开)主成分分析的优化目标:

对以上两个式子使用拉格朗日乘子法得到:

于是,对协方差矩阵做特征值分解,对所求得的特征值排序,取前个特征值构成的特征向量构成,就得到PCA的解。
算法流程:

维数由降到了。 这里的值可以人工指定,也可以通过其他开销小的学习器来交叉验证,也可通过重构阈值来设定,例如设,选择合适的使得:


PCA仅需保留与样本的均值向量即可通过简单的向量减法和矩阵-向量乘法将新样本投影至低维空间中。

核化线性降维

线性降维方法假设从高维空间到低维空间的函数映射是线性的,但现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。进行非线性降维的常用方法便是基于核技巧来对线性降维方法进行核化
核主成分分析(KPCA)算法:
假定将在高维特征空间中把数据投影到由W确定的超平面上,即PCA欲求解:


其中是样本点在高维特征空间中的像,于是有:

然后引入映射,即有.再引入核函数:

最后代入化简得:,其中K为核函数对应的核矩阵。

流形学习

流形学习是一类借鉴了拓扑流形概念的将为方法,而流形是指在局部与欧式空间同胚的空间(即在局部与欧式空间具有相同的性质),能用欧氏距离计算样本之间的距离。

等度量映射(Isomap)

其基本出发点是认为低维流形嵌入到高维空间后,然后直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的。因此利用流形在局部上与欧式空间同胚的性质,可以使用近邻距离来逼近测地线距离。例如在一维空间中有一直线,将其嵌入二维空间时变成了非线形,两端点的距离就会发生改变,此时就产生了距离计算的偏差。


在近邻连接图上计算两点间的最短距离,可以采用Dijkstra算法或者Floyd算法,在得到任意两点的距离之后。可通过MDS方法来获得样本点在低维空间中的坐标。
Isomap算法的流程


最近邻图的构建有两种方法:
1、指定近邻点数目,与kNN一样选取k个最近的邻居;
2、指定邻域半径,距离小于该阈值的选定为其近邻点。
对于两种方法,会有以下问题:
1、邻域范围指定过大,则会造成“短路问题”,即距离很远的点也可能会被误认为近邻;
2、邻域范围指定过小,则会造成“断路问题”,即有些区域和其他区域不可互达。

LLE算法(局部线性嵌入)

局部线性嵌入试图保持邻域内样本间的线性关系。


假设样本点通过它的领域样本的坐标通过线性组合重构得到:
线性关系保持不变,即邻域重构系数不变

LLE算法分为两步:
1、根据近邻关系计算出所有样本的邻域重构系数w
2、根据邻域重构系数不变,求解低维坐标

其中式(10.27):

式(10.30):

度量学习

对高维进行降维的主要目的是找到一个合使的低维空间,实际上就是在寻找一个合使的距离度量。度量学习便是尝试学习出一个合使的距离度量。
对于两个d维样本和,它们之间的平方欧式距离:

其中表示和在第k维上的距离.
假定各个属性有其不同的重要性,即引入w,于是有:

其中W的非对角元素均为零,故可以将W替换为一个普通的半正定对称矩阵M(协方差矩阵的逆,即),于是得到马氏距离:


而度量学习即是对M的学习,为了保持距离非负且对称,于是M必须是正定对称矩阵,即满足必有正交基P使得.
对M的学习的前提是要设定一个目标,比如希望提高近邻分类器的性能,则可以将M嵌入到近邻分类器的评价指标中去,通过优化该性能指标从而求得M.
我们不仅能够将错误率等这种监督学习目标作为度量学习的优化目标,还可以在度量学习种引入领域知识,比如已知一些样本类似,一些样本不相似。于是相似样本的样本距离尽可能小,不相似的样本之间的距离尽可能大。

和分别表示相似集合和不相似集合。
度量学习习得的半正定对称距离度量矩阵M,若其是低秩矩阵,则可以对其进行特征值分解,总能找到一组正交基小于元素。于是度量学习学得的结果可以衍生出一个降维矩阵以用于降维之目的。

你可能感兴趣的:(第十章 降维与度量学习)