k近邻学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中使用“投票法”,即选择k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,将这k个样本的实值输出标记的平均值作为预测结果;还可以根据距离远近进行加权平均或加权投票,距离越近的样本权重越大。
与前面的学习方法相比,k近邻学习没有显式的训练过程。这个算法是“懒惰学习”的著名代表,这类算法在训练阶段仅仅将样本保存起来,训练时间开销为零,收到测试样本后再进行处理。
假定任意测试样本 x 附近任意小的 δ 距离范围内总能找到一个训练样本,对“最近邻分类器”(1NN,即 k=1)在二分类问题上的性能作简要分析可知,最近邻分类器的泛化误差不超过贝叶斯最优分类器的错误率的两倍。
上一节的结论是基于训练样本的采样密度足够大而得出的,然而,这个假设在现实任务中通常很难被满足。如果考虑属性维数,若要求训练样本满足密采样条件,需要的样本个数呈指数级上升。
在高维情况下出现的数据样本稀疏,距离计算困难等问题,是所有机器学习方法共同面临的严重阻碍,被称为“维数灾难”。缓解维数灾难的一个重要途径是“降维”,也被称为“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅度提高,距离计算也变得更加容易。
为什么能进行降维?因为在很多情况下,与学习任务密切相关的仅是一个低维分布,即高维空间中的一个低维“嵌入”。若要求原始空间中高维样本之间的距离在低维空间中得以保持,即得到“多维缩放”(Multiple Dimensional Scaling,MDS)。
一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定d维空间的样本 X=(x1,x2,...,xm)∈Rd×m ,变换之后得到 d′≤d 维空间中的样本
主成分分析(Principal Component Aanlysis,PDA)是最常用的一种降维方法。这个方法是由一个问题引申出来的:“对于正交属性空间中的样本点,如何应用一个超平面对所有样本进行恰当的表达?”
若存在这样的超平面,它应当具有以下性质:
1. 最近重构性:样本点到这个超平面的距离足够近;
2. 最大可分性:样本点在这个超平面上的投影尽可能分开。
基于这两个性质,能分别得到主成分分析的两种等价推导。先从最近重构性来推导,假定样本进行了中心化,即 ∑ixi=0 ;再假定投影变换后得到的新坐标系为 {ω1,ω2,...,ωd} ,其中 ωi 是标准正交基向量, ||ωi||2=1 , ωTiωj=0 。若丢弃新坐标系中的部分坐标,即将维度降低到 d′<d ,则样本点 xi 在低维坐标系中的投影是 zi=(zi1,zi2,...,zid′) ,其中 zij=ωTjωi 是 xi 在低维坐标系下第j维的坐标。若基于 zi 来重构 xi ,则会得到 xi^=∑d′j=1zijωj 。
考虑整个训练集,原样本点 xi 与基于投影重构的样本点 xi^ 之间的距离为
线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。如果直接使用线性降维的方式,有可能使得数据丧失原有的低维结构。
非线性降维的一种常用方法是,基于核技巧对线性降维方法进行“核化”。下面以核主成分分许(Kernelized PCA,KPCA)为例进行演示。
假定将在高维特征空间中把数据投影到由 W=(ω1,ω2,...,ωd) 确定的超平面上,则对于 ωj ,由式(10.5)有
流形学习是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离进行距离的计算。这给降维方法带来了启发:若低维流形嵌入到高维空间,则数据样本在高维空间中的分布虽然比较复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易的在局部建立降维映射关系,然后设法将局部映射关系推广到全局。
等度量映射(Isometric Mapping,Isomap)的基本出发点,是认为低维流形嵌入到高维空间后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入空间中是不可达的。低维嵌入流形两点间的距离是“测地线”。
如何计算测地线距离?利用流形在局部上与欧氏空间同胚的性质,对每个点基于欧氏距离找出近邻点,然后能够建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。于是,计算两个点之间测地线距离的问题,转化为计算近邻连接图上两点之间的最短路径问题。
对近邻图的构建有两种办法,一种是指定近邻点个数,例如欧氏距离最近的k个点为近邻点,这样得到的近邻图为k近邻图;另一种是指定距离阈值 ϵ ,距离小于 ϵ 的点被认为是近邻点,这样得到的近邻图为 ϵ 近邻图。在指定近邻范围时,若范围指定的较大,则距离很远的点可能会被误认为近邻,造成“短路”;若范围指定的较小,则图中有些区域可能与其他区域不存在连接,这样就出现了“断路”问题。
与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding,LLE)试图保持领域内样本之间的线性关系。假定样本点 xi 的坐标能通过它的邻域样本 xj,xk,xl 的坐标通过线性组合而重构出来的,即
在机器学习中,对高维数据进行降维的主要目标是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,本质上就是在寻找一个合适的距离度量。因此,度量学习提出了直接学习出一个合适的距离度量的方案。
欲对距离度量进行学习,必须有一个便于学习的距离度量表达形式。现有的距离度量的表达形式都是固定的,没有可调剂的参数,因此首先对距离度量做一个推广: