1、k邻近学习
k邻近(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,其工作机制简单:给定测试样本,基于某种距离度量找出训练集中与最靠近的k个训练样本,然后基于这k个“邻居”的信息进行预测,通常,在分类任务中可使用投票法,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。
与前文其他学习方法相比,k邻近学习有一个明显的不同之处:他似乎没有显示的训练过程!其为“懒惰学习”(lazy learning)的著名代表,在训练阶段仅仅是把样本保存起来,训练时间开销为零,接收到测试样本后再进行处理;相应的,那些在训练阶段就对样本进行学习处理的方法,称之为“急切学习”(eager learning)
最近邻分类器虽然简单,但它的泛化错误率不超过贝叶斯最优分类器错误率的两倍!
2、低维嵌入
上一节的讨论是基于一个重要假设:任意测试样本附近任意小的距离范围内总能找到一个训练样本,即训练样本的采样密度足够大,或成为“密采样”(dense sample),这个假设在现实任务中很难满足,尤其是属性较多是采样数目将是天文数字,此外,许多学习方法都涉及距离计算,高维空间给距离计算带来很大的麻烦。
事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,别称为“维数诅咒”(curse of dimensionality)。缓解维数诅咒的一个重要途径是降维(dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace),在这个子空间中样本密度大幅提高,距离计算也更为容易。
为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个 低维“嵌入”(embedding)
若要求原始空间中样本之间的距离在低维空间中得以保持,即得到“多维缩放”(Multiple Dimensional Scaling,简称MDS)这样一种经典的降维方法。
对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高,则认为降维起到了作用。若将维数降至二维或者三维,则可通过可视化技术来直接地判断降维效果。
3、主成分分析(Principal Component Analysis,简称PCA)
是一种最常见的降维方法。用一个超平面(直线的高维推广)对所有样本进行恰当的表达,其应具有这样的性质:
最近重构性:样本点到这个超平面的距离都足够近;
最大可分性:样本点在这个超平面上的投影能尽可能分开。
4、核化线性降维
线性降维,将丢失原本的低维结构,为了对“原本采样的”低维空间与降维后的低维空间加以区别,我们称前者为“本真”(intrinsic)低维空间。
非线性降维的一种常用方式,是基于核技巧对线性降维方式进行“核化”(kernelized)。核主成分分析(Kernelized PCA,简称KPCA)
5、流行学习(manifold learning)
是一类借鉴了拓扑流行概念的降维方法。“流行”是在局部与欧式空间同胚的空间。低维流行嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧式空间的性质。两种著名的流行学习方法:
1)等度量映射
2)局部线性嵌入
6、度量学习
在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量,何不直接尝试“学习”一个合适的距离度量呢?这便是度量学习(metric learning)的基本动机。
不同的度量学习方法针对不同目标获得“好”的半正定对称距离度量矩阵M,若M是一个低秩矩阵,这通过M进行特征值分解,总能找到一组正交集,其正交基数目为矩阵M的秩rank(M),小于原属性数d,于是,度量学习学得的结果可衍生出一个降维矩阵,能用于降维之目的。