《机器学习》阅读心得——十、降维与度量学习

    • 第十章 降维与度量学习
      • 1 k近邻学习
      • 2 低维嵌入
      • 3 主成分分析
      • 4 核化线性降维
      • 5 流形学习
        • 51 等度量映射
        • 52 局部线性嵌入
      • 6 度量学习

第十章 降维与度量学习

10.1 k近邻学习

  k近邻学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中使用“投票法”,即选择k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,将这k个样本的实值输出标记的平均值作为预测结果;还可以根据距离远近进行加权平均或加权投票,距离越近的样本权重越大。
  与前面的学习方法相比,k近邻学习没有显式的训练过程。这个算法是“懒惰学习”的著名代表,这类算法在训练阶段仅仅将样本保存起来,训练时间开销为零,收到测试样本后再进行处理。
  假定任意测试样本 x 附近任意小的 δ 距离范围内总能找到一个训练样本,对“最近邻分类器”(1NN,即 k=1)在二分类问题上的性能作简要分析可知,最近邻分类器的泛化误差不超过贝叶斯最优分类器的错误率的两倍。

10.2 低维嵌入

  上一节的结论是基于训练样本的采样密度足够大而得出的,然而,这个假设在现实任务中通常很难被满足。如果考虑属性维数,若要求训练样本满足密采样条件,需要的样本个数呈指数级上升。
  在高维情况下出现的数据样本稀疏,距离计算困难等问题,是所有机器学习方法共同面临的严重阻碍,被称为“维数灾难”。缓解维数灾难的一个重要途径是“降维”,也被称为“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅度提高,距离计算也变得更加容易。
  为什么能进行降维?因为在很多情况下,与学习任务密切相关的仅是一个低维分布,即高维空间中的一个低维“嵌入”。若要求原始空间中高维样本之间的距离在低维空间中得以保持,即得到“多维缩放”(Multiple Dimensional Scaling,MDS)。
  一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定d维空间的样本 X=(x1,x2,...,xm)Rd×m ,变换之后得到 dd 维空间中的样本

Z=WTX(10.1)

其中 WRd×d 是变换矩阵, ZRd×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. 最大可分性:样本点在这个超平面上的投影尽可能分开。
  基于这两个性质,能分别得到主成分分析的两种等价推导。先从最近重构性来推导,假定样本进行了中心化,即 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^=dj=1zijωj
  考虑整个训练集,原样本点 xi 与基于投影重构的样本点 xi^ 之间的距离为

i=1m||j=1dzijωjxi||22=i=1mzTizi2i=1mzTiWTxi+consttr(WT(i=1mxixTi)W)(10.2)

其中 W=(ω1,ω2,...,ωd) 。根据最近重构性,上式应被最小化。考虑到 ωj 是标准正交基, ixixTi 是协方差矩阵,有
mintr(WTXXTW)s.t.WTW=I(10.3)

式(10.3)即为主成分分析的优化目标。
  从最大可分性出发,能得到主成分分析的另一种解释。样本点 xi 在新空间中超平面上的投影是 WTxi ,若所有样本的投影尽可能分开,则应该使得投影后样本点的方差最大化。投影后样本点的方差是 iWTxixTiW ,于是优化目标可写为
maxtr(WTXXTW)s.t.WTW=I(10.4)

  对式(10.3)或式(10.4)使用拉格朗日乘子法可得
XXTωi=λiωi(10.5)

只需对协方差矩阵 XXT 进行特征值分解,将求得的特征值排序: λ1λ2...λd ,再取前 d 个特征值对应的特征向量构成 W=(ω1,ω2,...,ωd) ,这就是主成分分析的解。
  PCA仅需保留 W 与样本的均值向量即可将新样本投影至低维空间中。在投影的过程中,一部分信息被舍弃了,这么做之后样本的采样密度会增加,另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的作用。

10.4 核化线性降维

  线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。如果直接使用线性降维的方式,有可能使得数据丧失原有的低维结构。
  非线性降维的一种常用方法是,基于核技巧对线性降维方法进行“核化”。下面以核主成分分许(Kernelized PCA,KPCA)为例进行演示。
  假定将在高维特征空间中把数据投影到由 W=(ω1,ω2,...,ωd) 确定的超平面上,则对于 ωj ,由式(10.5)有

(i=1mzizTi)ωj=λjωj(10.6)

假定 zi 是由原始属性空间中的样本点 xi 通过映射 ϕ 产生,即 zi=ϕ(xi),i=1,2,...,m. ,则式(10.6)变换为
(i=1Tϕ(xi)ϕ(xi)T)ωj=λjωj(10.7)

由上式可得
ωj=i=1mϕ(xi)αji(10.8)

其中 αji=1λjzTiωj αi 的第 j 个分量。引入核函数,表示为
κ(xi,xj)=ϕ(xi)Tϕ(xj)(10.9)

将式(10.9)和式(10.8)代入式(10.7)后化简可得
Kαj=λjαj(10.10)

其中K为 κ 对应的核矩阵, (K)ij=κ(xi,xj),αj=(αj1;αj2;...;αjm) 。显然,式(10.10)是特征值分解问题,取 K 最大的 d 个特征值对应的特征向量即可。

10.5 流形学习

  流形学习是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离进行距离的计算。这给降维方法带来了启发:若低维流形嵌入到高维空间,则数据样本在高维空间中的分布虽然比较复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易的在局部建立降维映射关系,然后设法将局部映射关系推广到全局。

10.5.1 等度量映射

  等度量映射(Isometric Mapping,Isomap)的基本出发点,是认为低维流形嵌入到高维空间后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入空间中是不可达的。低维嵌入流形两点间的距离是“测地线”。
  如何计算测地线距离?利用流形在局部上与欧氏空间同胚的性质,对每个点基于欧氏距离找出近邻点,然后能够建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。于是,计算两个点之间测地线距离的问题,转化为计算近邻连接图上两点之间的最短路径问题。
  对近邻图的构建有两种办法,一种是指定近邻点个数,例如欧氏距离最近的k个点为近邻点,这样得到的近邻图为k近邻图;另一种是指定距离阈值 ϵ ,距离小于 ϵ 的点被认为是近邻点,这样得到的近邻图为 ϵ 近邻图。在指定近邻范围时,若范围指定的较大,则距离很远的点可能会被误认为近邻,造成“短路”;若范围指定的较小,则图中有些区域可能与其他区域不存在连接,这样就出现了“断路”问题。

10.5.2 局部线性嵌入

  与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding,LLE)试图保持领域内样本之间的线性关系。假定样本点 xi 的坐标能通过它的邻域样本 xj,xk,xl 的坐标通过线性组合而重构出来的,即

xi=ωijxj+ωikxk+ωilxl(10.11)

LLE希望上式的关系在低维空间中得以保持。
  LLE先为每个样本 xi 找到近邻下标集合 Qi ,然后计算出基于 Qi 中的样本点对于 xi 进行线性重构的系数 ωi :
mini=1m||xijQiωijxj||22s.t.jQiωij=1(10.12)

其中 xi xj 均为已知,令 Cjk=(xixj)T(xixk)ωij 有闭式解
ωij=kQiC1jkl,sQiC1ls(10.13)

  LLE在低维空间中保持 ωi 不变,于是 xi 对应的低维空间中坐标 zi 可通过下式求解
mini=1m||zijQiωijzj||22(10.14)

10.6 度量学习

  在机器学习中,对高维数据进行降维的主要目标是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,本质上就是在寻找一个合适的距离度量。因此,度量学习提出了直接学习出一个合适的距离度量的方案。
  欲对距离度量进行学习,必须有一个便于学习的距离度量表达形式。现有的距离度量的表达形式都是固定的,没有可调剂的参数,因此首先对距离度量做一个推广:

dist2ed(xi,xj)=||xixj||22=dist2ij,1+dist2ij,2+...+dist2ij,d(10.15)

其中 distij,k 表示 xi xj 在第k维上的距离。若假定不同属性的重要性不同,则可引入属性权重 ω ,得到
dist2wed(xi,xj)=ω1dist2ij,1+ω2dist2ij,2+...+ωddist2ij,d=(xixj)TM(xixj)(10.16)

其中 ωi0 W=diag(ω) 是一个对角矩阵, (W)ii=ωi
  上式中的W可通过学习确定。W的非对角元素均为零,这意味着坐标轴是正交的,即属性之间无关。但现实情况中往往不是这样。为此,将上式中的W替换为一个普通的半正定对称矩阵M,得到马氏距离(Mahalanobis distance)
dist2mah(xi,xj)=(xi,xj)TM(xi,xj)(10.17)

其中M被称为”度量矩阵”,度量学习是对M进行学习。

你可能感兴趣的:(机器学习)