第十章 降维与度量学习
10.1 k近邻学习
k近邻学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中使用“投票法”,即选择k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,将这k个样本的实值输出标记的平均值作为预测结果;还可以根据距离远近进行加权平均或加权投票,距离越近的样本权重越大。
与前面的学习方法相比,k近邻学习没有显式的训练过程。这个算法是“懒惰学习”的著名代表,这类算法在训练阶段仅仅将样本保存起来,训练时间开销为零,收到测试样本后再进行处理。
假定任意测试样本
x
附近任意小的
10.2 低维嵌入
上一节的结论是基于训练样本的采样密度足够大而得出的,然而,这个假设在现实任务中通常很难被满足。如果考虑属性维数,若要求训练样本满足密采样条件,需要的样本个数呈指数级上升。
在高维情况下出现的数据样本稀疏,距离计算困难等问题,是所有机器学习方法共同面临的严重阻碍,被称为“维数灾难”。缓解维数灾难的一个重要途径是“降维”,也被称为“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅度提高,距离计算也变得更加容易。
为什么能进行降维?因为在很多情况下,与学习任务密切相关的仅是一个低维分布,即高维空间中的一个低维“嵌入”。若要求原始空间中高维样本之间的距离在低维空间中得以保持,即得到“多维缩放”(Multiple Dimensional Scaling,MDS)。
一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定d维空间的样本
X=(x1,x2,...,xm)∈Rd×m
,变换之后得到
d′≤d
维空间中的样本
其中 W∈Rd′×d 是变换矩阵, Z∈Rd′×m 是样本在新空间中的表达。
变换矩阵W可视为 d′ 个d维基向量, zi=WTxi 是第i个样本与这 d′ 个基向量分别做内积而得到的 d′ 维属性向量。换言之, zi 是原属性向量 xi 在新坐标系 {ω1,ω2,...,ωd′} 中的坐标向量。若 ωi 与 ωj 正交,则新坐标系是一个正交坐标系,此时 W 是正交变换。
基于线性变换来进行降维的方法称为线性降维方法,它们都符合式(10.1)的基本形式,不同之处在于对低维空间的性质有不同的要求。
10.3 主成分分析
主成分分析(Principal Component Aanlysis,PDA)是最常用的一种降维方法。这个方法是由一个问题引申出来的:“对于正交属性空间中的样本点,如何应用一个超平面对所有样本进行恰当的表达?”
若存在这样的超平面,它应当具有以下性质:
1. 最近重构性:样本点到这个超平面的距离足够近;
2. 最大可分性:样本点在这个超平面上的投影尽可能分开。
基于这两个性质,能分别得到主成分分析的两种等价推导。先从最近重构性来推导,假定样本进行了中心化,即
考虑整个训练集,原样本点
xi
与基于投影重构的样本点
xi^
之间的距离为
其中 W=(ω1,ω2,...,ωd) 。根据最近重构性,上式应被最小化。考虑到 ωj 是标准正交基, ∑ixixTi 是协方差矩阵,有
式(10.3)即为主成分分析的优化目标。
从最大可分性出发,能得到主成分分析的另一种解释。样本点 xi 在新空间中超平面上的投影是 WTxi ,若所有样本的投影尽可能分开,则应该使得投影后样本点的方差最大化。投影后样本点的方差是 ∑iWTxixTiW ,于是优化目标可写为
对式(10.3)或式(10.4)使用拉格朗日乘子法可得
只需对协方差矩阵 XXT 进行特征值分解,将求得的特征值排序: λ1≥λ2≥...≥λd ,再取前 d′ 个特征值对应的特征向量构成 W∗=(ω1,ω2,...,ωd′) ,这就是主成分分析的解。
PCA仅需保留 W∗ 与样本的均值向量即可将新样本投影至低维空间中。在投影的过程中,一部分信息被舍弃了,这么做之后样本的采样密度会增加,另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的作用。
10.4 核化线性降维
线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。如果直接使用线性降维的方式,有可能使得数据丧失原有的低维结构。
非线性降维的一种常用方法是,基于核技巧对线性降维方法进行“核化”。下面以核主成分分许(Kernelized PCA,KPCA)为例进行演示。
假定将在高维特征空间中把数据投影到由
W=(ω1,ω2,...,ωd)
确定的超平面上,则对于
ωj
,由式(10.5)有
假定 zi 是由原始属性空间中的样本点 xi 通过映射 ϕ 产生,即 zi=ϕ(xi),i=1,2,...,m. ,则式(10.6)变换为
由上式可得
其中 αji=1λjzTiωj 是 αi 的第 j 个分量。引入核函数,表示为
将式(10.9)和式(10.8)代入式(10.7)后化简可得
其中K为 κ 对应的核矩阵, (K)ij=κ(xi,xj),αj=(αj1;αj2;...;αjm) 。显然,式(10.10)是特征值分解问题,取 K 最大的
10.5 流形学习
流形学习是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离进行距离的计算。这给降维方法带来了启发:若低维流形嵌入到高维空间,则数据样本在高维空间中的分布虽然比较复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易的在局部建立降维映射关系,然后设法将局部映射关系推广到全局。
10.5.1 等度量映射
等度量映射(Isometric Mapping,Isomap)的基本出发点,是认为低维流形嵌入到高维空间后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入空间中是不可达的。低维嵌入流形两点间的距离是“测地线”。
如何计算测地线距离?利用流形在局部上与欧氏空间同胚的性质,对每个点基于欧氏距离找出近邻点,然后能够建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。于是,计算两个点之间测地线距离的问题,转化为计算近邻连接图上两点之间的最短路径问题。
对近邻图的构建有两种办法,一种是指定近邻点个数,例如欧氏距离最近的k个点为近邻点,这样得到的近邻图为k近邻图;另一种是指定距离阈值
ϵ
,距离小于
ϵ
的点被认为是近邻点,这样得到的近邻图为
ϵ
近邻图。在指定近邻范围时,若范围指定的较大,则距离很远的点可能会被误认为近邻,造成“短路”;若范围指定的较小,则图中有些区域可能与其他区域不存在连接,这样就出现了“断路”问题。
10.5.2 局部线性嵌入
与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding,LLE)试图保持领域内样本之间的线性关系。假定样本点 xi 的坐标能通过它的邻域样本 xj,xk,xl 的坐标通过线性组合而重构出来的,即
LLE希望上式的关系在低维空间中得以保持。
LLE先为每个样本 xi 找到近邻下标集合 Qi ,然后计算出基于 Qi 中的样本点对于 xi 进行线性重构的系数 ωi :
其中 xi 和 xj 均为已知,令 Cjk=(xi−xj)T(xi−xk),ωij 有闭式解
LLE在低维空间中保持 ωi 不变,于是 xi 对应的低维空间中坐标 zi 可通过下式求解
10.6 度量学习
在机器学习中,对高维数据进行降维的主要目标是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,本质上就是在寻找一个合适的距离度量。因此,度量学习提出了直接学习出一个合适的距离度量的方案。
欲对距离度量进行学习,必须有一个便于学习的距离度量表达形式。现有的距离度量的表达形式都是固定的,没有可调剂的参数,因此首先对距离度量做一个推广:
其中 distij,k 表示 xi 和 xj 在第k维上的距离。若假定不同属性的重要性不同,则可引入属性权重 ω ,得到
其中 ωi≥0 , W=diag(ω) 是一个对角矩阵, (W)ii=ωi 。
上式中的W可通过学习确定。W的非对角元素均为零,这意味着坐标轴是正交的,即属性之间无关。但现实情况中往往不是这样。为此,将上式中的W替换为一个普通的半正定对称矩阵M,得到马氏距离(Mahalanobis distance)
其中M被称为”度量矩阵”,度量学习是对M进行学习。