10.1 k近邻学习kNN
k 近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个 “邻居”的信息来进行预测.通常,在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.
与前面介绍的学习方法相比,k近邻学习有一个明显的不同之处:它似乎
没有显式的训练过程!事实上,它是“懒惰学习”(lazy learning)的著名代表,
此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到
测试样本后再进行处理;相应的,那些在训练阶段就对样本进行学习处理的方
法,称为“急切学习”(eager learning).
图10.1给出了 k近邻分类器的一个示意图.显然,k是一个重要参数,当k取不同值时,分类结果会有显著不同.另一方面,若采用不同的距离计算方式,则找出的“近邻”可能有显著差别,从而也会导致分类结果有显著不同.暂且假设距离计算是“恰当”的,即能够恰当地找出k个近邻,我们来对“最近邻分类器”(1NN,即k = l)在二分类问题上的性能做一个简单的讨论.
给定测试样本x若其最近邻样本为z则最近邻分类器出错的概率就是x与z类别标记不同的概率
(其中c是指类别标签)
假设样本独立同分布,且对任意x和任意小正数sigma,在出附近sigma距离范围内总能找到一个训练样本;换言之,对任意测试样本,总能在任意近的范围内找到式(10.1)中的训练样本z.令表示贝叶斯最优分类器的结果,有:
于是我们得到了有点令人惊讶的结论:最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍
但是这里计算的重要前提是x->z充分接近,这个是要求整个样本空间是很稠密的,待测样本与观测样本之间的距离要足够近
我们想把样本从高维空间中去做一个降维,那么就能够应用这个近邻学习的技术
10.2 低维嵌入
上一节的讨论是基于一个重要假设:任意测试样本究附近任意小的sigma距离范围内总能找到一个训练样本,即训练样本的采样密度足够大,或称为“密采样”(dense sample).然而,这个假设在现实任务中通常很难满足,例如若sigma = 0.001,仅考虑单个属性,则仅需1000个样本点平均分布在归一化后的属性取值范围内,即可使得任意测试样本在其附近0.001距离范围内总能找到一个训练样本,此时最近邻分类器的错误率不超过贝叶斯最优分类器的错误率的两倍.
然而,这仅是属性维数为1的情形,若有更多的属性,则情况会发生显著变化.例如假定属性维数为20,若要求样本满足密采样条件,则至少需(10^3) ^{20} = 10 ^{60}个样本.现实应用中属性维数经常成千上万,要满足密采样条件所需的样本数目是无法达到的天文数字.此外,许多学习方法都涉及距离计算,而高维空间会给距离计算带来很大的麻烦,例如当维数很高时甚至连计算内积都不再容易
事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”
缓解维数灾难的一个重要途径是降维(dimension reduction), 亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅提高,距离计算也变得更为容易.为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维“嵌入”(embedding).图10.2给出了一个直观的例子.原始高维空间中的样本点,在这个低维嵌入子空间中更容易进行学习.
10.3 主成分分析PCA
主成分分析(Principal Component Analysis,简称PCA)是最常用的一种降维方法.在介绍P C A 之前,不妨先考虑这样一个问题:对于正交属性空间中的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?
容易想到,若存在这样的超平面,那么它大概应具有这样的性质:
• 最近重构性:样本点到这个超平面的距离都足够近;
• 最大可分性:样本点在这个超平面上的投影能尽可能分开.
有趣的是,基于最近重构性和最大可分性,能分别得到主成分分析的两种
等价推导.
我们希望它每维特征尽量分散,用数学语言描述就是希望变换后每一行的对应方差最大,因此可以对每一行求一个方差,然后对方差求一个和,最大化方差的和
依据这样的一个思路,进行PCA的求解过程
假定数据样本进行了中心化,即
,也就是PCA的前提假设:Z的每一行均值是0(在数据输到PCA之中就可以做这样一个均值为0的一个规范化的转换),因此所有的z-bar都是0
要求所有W是规范化而且正交的,因为这个式子矩阵W可能有无穷个形式,这个式子任意乘一个数对结果没有影响,因此为了避免求解过程中常数项的影响,我们限制了W^TW是一个单位阵I
这就是主成分分析的优化目标.这实际上是一个受约束的线性规划问题,因此很自然地想到了用拉格朗日乘子的方法去求解
对于这个凸优化问题的话,可以用求微分的方式拿到它的解析解
因为我们现在想求的是这个变换矩阵W,所以我们对这个拉格朗日函数对W求偏微分
(I是一个常数矩阵和W没关系)
10.4 流形学习
流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法.“流形”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离来进行距离计算.这给降维方法带来了很大的启发:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧氏空间的性质,因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局.当维数被降至二维或三维时,能对数据进行可视化展示,因此流形学习也可被用于可视化.本节介绍两种著名的流形学习方法.
等度量映射
等度量映射(Isometric Mapping,简称 Isomap) [Tenenbaum et al., 2000]的基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的.如图10.7(a)所示,低维嵌入流形上两点间的距离是“测地线”(geodesic)距离:想象一只虫子从一点爬到另一点,如果它不能脱离曲面行走,那么图10.7(a)中的红色曲线是距离最短的路径,即S曲面上的测地线,测地线距离是两点之间的本真距离.显然,直接在高维空间中计算直线距离是不恰当的.
局部线性嵌入
与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding,简称LLE) [Roweis and Saul, 2000]试图保持邻域内样本之间的线性关系
10.5 度量学习
在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好.事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量.那么,为何不直接尝试“学习”出一个合适的距离度量呢?这就是度量学习(metric learning)的基本动机.