机器学习第十章---降维与度量学习

1、k近邻学习

k近邻学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中可使用“投票法”,即选择这K个样本中出现最多的类别标记为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。
与前面介绍的学习方法相比,k近邻学习有一个明显的不同之处:它没有显示的训练过程,它是“懒惰学习”的著名代表,此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理;相应的,哪些在训练阶段就对样本进行学习处理的方法,称为“急切学习”。显然,k是一个重要参数,当k取值不同时,分类结果会有显著不同,另一方面,若采用不同的距离计算方式,则找出的“近邻”可能有显著差别,从而也会导致分类结果有显著不同。假设距离计算是“恰当”的,即能够恰当地找出k个近邻。
在这里插入图片描述

给定测试样本x,若其最近邻样本为z,则最近邻分类器出错地概率就是x与z类别标记不同的概率,即 P ( e r r ) = 1 − ∑ c ∈ y P ( c ∣ x ) P ( c ∣ z ) P(err)=1-\sum_{c\in y}P(c|x)P(c|z) P(err)=1cyP(cx)P(cz)
假设样本独立同分布,且对任意x与任意小正数 δ \delta δ,在x附近 δ \delta δ距离范围内总能找到一个训练样本;换言之,对任意测试样本,总能在任意近地范围找到训练样本z,令 c ∗ = a r g   m a x c ∈ y P ( c ∣ x ) c^*=arg\ max_{c\in y}P(c|x) c=arg maxcyP(cx)表示最优分类器的结果,有 P ( e r r ) = 1 − ∑ c ∈ y P ( c ∣ x ) P ( c ∣ z ) ≃ 1 − ∑ c ∈ y P 2 ( c ∣ x ) ≤ 1 − P 2 ( c ∗ ∣ x ) = ( 1 + p ( c ∗ ∣ x ) ) ( 1 − p ( c ∗ ∣ x ) ) ≤ 2 ∗ ( 1 − p ( c ∗ ∣ x ) ) P(err)=1-\sum_{c\in y}P(c|x)P(c|z)\simeq1-\sum_{c\in y}P^2(c|x)\\\leq1-P^2(c^*|x)=(1+p(c^*|x))(1-p(c^*|x))\leq2*(1-p(c^*|x)) P(err)=1cyP(cx)P(cz)1cyP2(cx)1P2(cx)=(1+p(cx))(1p(cx))2(1p(cx))最近邻分类器比贝叶斯最优分类器要简单的多,但它的错误率不超过贝叶斯分类器的两倍。

2、低维嵌入

上一节的讨论是在任意测试样本 x x x 附近任意小的 δ \delta δ 距离范围内总能找到一个训练样本的情况下进行的,然而,这个假设在现实任务中通常很难满足,此外,许多学习方法都涉及距离计算,而高维空间会给距离计算带来很大麻烦。事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为维数灾难。缓解维数灾难的一个重要途径是降维,亦称"维数约简",即通过某种数学变换将原始高维属性空间转变为一个低维"子空间",在这个子空间中样本密度大幅提高,距离计算也变得更加容易。
在这里插入图片描述

若要求原始空间样本之间的距离在低维空间得以保持,如上图,即得到多维缩放(MDS)这样一种经典的降维方法。下面来简单介绍一下:
假定m个样本在原始空间的距离矩阵为 D ∈ R m ∗ m D\in R^{m*m} DRmm,其第i行j列的元素 d i s t i j dist_{ij} distij为样本 x i x_i xi x j x_j xj的距离。我们的目标是获得样本在 d ′ d^{'} d维空间中的表示 Z ∈ R d ′ ∗ m , d ′ ≤ d Z\in R^{d^{'}*m},d^{'}\leq d ZRdm,dd,且任意两个样本在 d ′ d^{'} d维空间中的欧式距离等于原始空间中的距离,即 ∣ ∣ z i − z j ∣ ∣ = d i s t i j ||z_i-z_j||=dist_{ij} zizj=distij。令 B = Z T Z ∈ R m ∗ m B=Z^TZ\in R^{m*m} B=ZTZRmm,其中B为降维后样本的内积矩阵, b i j = z i T z j b_{ij}=z_i^Tz_j bij=ziTzj,有 d i s t i j 2 = ∣ ∣ z i ∣ ∣ 2 + ∣ ∣ z j ∣ ∣ 2 − 2 z i z j = b i i + b j j − 2 b i j dist_{ij}^2=||z_i||^2+||z_j||^2-2z_iz_j=b_{ii}+b_{jj}-2b_{ij} distij2=zi2+zj22zizj=bii+bjj2bij为方便讨论,令降维后的样本被中心化,即 ∑ i = 1 m z i = 0 \sum_{i=1}^mz_i=0 i=1mzi=0,显然,矩阵的行与列之和均为零,即 ∑ i = 1 m b i j = ∑ j = 1 m b i j = 0 \sum_{i=1}^mb_{ij}=\sum_{j=1}^mb_{ij}=0 i=1mbij=j=1mbij=0易知 ∑ i = 1 m d i s t i j 2 = t r ( B ) + m b j j \sum_{i=1}^mdist_{ij}^2=tr(B)+mb_{jj} i=1mdistij2=tr(B)+mbjj ∑ j = 1 m d i s t i j 2 = t r ( B ) + m b i i \sum_{j=1}^mdist_{ij}^2=tr(B)+mb_{ii} j=1mdistij2=tr(B)+mbii ∑ i = 1 m ∑ j = 1 m d i s t i j 2 = 2 m   t r ( B ) \sum_{i=1}^m\sum_{j =1}^mdist_{ij}^2=2m\ tr(B) i=1mj=1mdistij2=2m tr(B)其中 t r ( . ) tr(.) tr(.)表示矩阵的迹, t r ( B ) = ∑ i = 1 m ∣ ∣ z i ∣ ∣ 2 tr(B)=\sum_{i=1}^m||z_i||^2 tr(B)=i=1mzi2.令 d i s t i . 2 = 1 m ∑ j = 1 m d i s t i j 2 , d i s t . j 2 = 1 m ∑ i = 1 m d i s t i j 2 d i s t . . 2 = 1 m 2 ∑ i = 1 m ∑ j = 1 m d i s t i j 2 dist^2_{i.}=\frac{1}{m}\sum_{j=1}^mdist^2_{ij},\\ dist^2_{.j}=\frac{1}{m}\sum_{i=1}^mdist^2_{ij}\\ dist^2_{..}=\frac{1}{m^2}\sum_{i=1}^m\sum_{j=1}^mdist^2_{ij} disti.2=m1j=1mdistij2,dist.j2=m1i=1mdistij2dist..2=m21i=1mj=1mdistij2
由此即可求出内积矩阵B了。对矩阵B做特征分解, B = V Λ V T B=V\Lambda V^T B=VΛVT,其中 Λ \Lambda Λ为特征值构成的对角矩阵, V V V为特征向量矩阵。假设有 d ∗ d^* d个非零特征值,令对角矩阵 Λ ∗ = d i a g ( λ 1 , λ 2 , … … , λ d ∗ ) \Lambda_*=diag(\lambda_1,\lambda_2,……,\lambda_{d^*}) Λ=diag(λ1,λ2,,λd),令 V ∗ V_* V表示相应的特征向量矩阵,则Z可表达为 Z = Λ ∗ 1 2 V ∗ T Z=\Lambda_*^{\frac{1}{2}}V_*^T Z=Λ21VT
在现实应用中,为了有效降维,往往不需要降维后的距离与原始空间中的距离尽可能相近,而不必严格相等。此时,选择 d ′ ≪ d d^{'} \ll d dd个特征值构成的对角矩阵 Λ ^ = d i a g ( λ 1 , λ 2 , … … , λ d ′ ) \hat\Lambda=diag(\lambda_1,\lambda_2,……,\lambda_{d^{'}}) Λ^=diag(λ1,λ2,,λd) V ^ \hat V V^表示相应的特征向量矩阵,则Z可表达为 Z = Λ ^ ∗ 1 2 V ^ T Z=\hat\Lambda_*^{\frac{1}{2}}\hat V^T Z=Λ^21V^T
MDS算法的具体流程如下:
在这里插入图片描述

一般来说,为了获得低维子空间,最简单的是对原始高维空间进行线性变换。给定d维空间中的样本 X = ( x 1 , x 2 , … … , x m ) ∈ R d ∗ m X=(x_1,x_2,……,x_m)\in R^{d*m} X=(x1,x2,,xm)Rdm变换后得到 d ′ d^{'} d维空间中的样本 Z = W T X Z=W^TX Z=WTX其中 W ∈ R d ∗ d ′ W\in R^{d*d^{'}} WRdd是变换矩阵,变换矩阵W可视为是 d ′ d^{'} d个d维基向量, z i = W T x i z_i=W^Tx_i zi=WTxi是原属性向量 x i x_i xi在新坐标系{ w 1 , w 2 , … … , w d ′ w_1,w_2,……,w_{d^{'}} w1,w2,,wd}中的坐标向量。若 w i w_i wi w j w_j wj正交,则新坐标系是一个正交坐标系,此时 W W W为正交变换。显然,新空间中的属性是原空间中属性的线性组合。
基于线性变换来进行降维的方法称为线性降维方法,它们都符合 Z = W T X Z=W^TX Z=WTX的基本形式,不同之处是对低维子空间的性质有不同的要求, W W W所加的约束不同。对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高则认为降维起到了作用。

3、主成分分析

主成分分析是最常用的一种降维方法,在介绍PCA之前,我们先思考这样一个问题,对于正交属性空间中的样本点,如何用一个超平面对所有样本进行恰当的表达?
可以知道,若存在这样的超平面,那么它大概具有以下性质:

  1. 最近重构性:样本点到这个超平面的距离都足够近
  2. 最大可分性:样本点在这个超平面上的投影都尽可能分开

先来看最近重构性,假定数据样本进行了中心化,即 ∑ i x i = 0 \sum_ix_i=0 ixi=0;假设投影变换后的新坐标为{ w 1 , w 2 , … … , w d w_1,w_2,……,w_d w1,w2,,wd},其中 w i w_i wi是标准正交基向量,|| w i ∣ ∣ 2 = 1 , w i T w j = 0 ( i ≠ j ) 。 w_i||_2=1,w_i^Tw_j=0(i\neq j)。 wi2=1,wiTwj=0(i=j)若将维度降低到 d ′ < d d^{'}<d d<d,则样本点 x 1 x_1 x1在低维坐标系的投影为 z i = ( z i 1 , z i 2 , … … , z i d ′ ) z_i=(z_{i1},z_{i2},……,z_{id^{'}}) zi=(zi1,zi2,,zid)其中 z i j = w j T x i z_{ij}=w^T_jx_i zij=wjTxi x i x_i xi在低维坐标系下第j维的坐标。若基于 z i z_i zi来重构 x i x_i xi,则会得到 x ^ i = ∑ j = 1 d ′ z i j w j \hat x_i=\sum_{j=1}^{d^{'}}z_{ij}w_j x^i=j=1dzijwj。 那么原样本点 x i x_i xi 与基于投影重构的样本点 x ^ i \hat x_i x^i 之间的距离为 ∑ i = 1 m ∣ ∣ ∑ j = 1 d ′ z i j w j − x i ∣ ∣ 2 2 = ∑ i = 1 m z i T z i − 2 ∑ i = 1 m z i T W T x i + c o n s t ∝ − t r ( W T ( ∑ i = 1 m x i x i T ) W ) \sum_{i=1}^{m}||\sum_{j=1}^{d^{'}}z_{ij}w_j-x_i||_2^2=\sum_{i=1}^{m}z_i^Tz_i-2\sum_{i=1}^{m}z_i^TW^Tx_i+const \propto-tr(W^T(\sum_{i=1}^mx_ix_i^T)W) i=1mj=1dzijwjxi22=i=1mziTzi2i=1mziTWTxi+consttr(WT(i=1mxixiT)W)根据最近重构性,要将上式最小化,因为 w j w_j wj是标准正交基, ∑ i x i x i T \sum_ix_ix_i^T ixixiT是协方差矩阵,所以我们的目标是在 W T W = I W^TW=I WTW=I的条件下求解: m i n W − t r ( W T X X T W ) \underset{W}{min}-tr(W^TXX^TW) Wmintr(WTXXTW)
从最大可分性出发,因为样本点 x i x_i xi在新空间中超平面上的投影是 W T x i W^Tx_i WTxi,想要将样本的投影点尽可能分开,则应该使投影后样本点的方差尽可能大。投影后样本点的方差是 ∑ i W T x i x i T W \sum_iW^Tx_ix_i^TW iWTxixiTW,于是优化目标是在 W T W = I W^TW=I WTW=I的条件下: m a x W   t r ( W T X X T W ) \underset{W}{max} \ tr(W^TXX^TW) Wmax tr(WTXXTW)
显然,两个目标是等价的,使用拉格朗日乘子法求解,令 L ( W ) = W T X X T W − λ W T W L(W)=W^TXX^TW-\lambda W^TW L(W)=WTXXTWλWTW求偏导为零可得 X X T W = λ W XX^TW=\lambda W XXTW=λW于是,只要对 X X T XX^T XXT进行特征值分解,将求得的特征值排序,前 d ′ d^{'} d个特征值对应的特征向量构成的矩阵即为我们要求的投影矩阵。具体流程如下:
在这里插入图片描述

降维后低维空间的维数 d ′ d^{'} d通常是用户事先选择的,或通过在 d ′ d^{'} d值不同的低维空间中对k近邻分类器进行交叉验证来选取较好的 d ′ d^{'} d值。虽然低维空间与原始空间相比舍去了一些信息,但往往这部分信息是必须舍弃的,一方面舍弃这些信息后能使得样本的采样密度增大,另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,舍弃可以起到去噪效果。

4、核化线性降维

线性降维方法是假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。如下图:
在这里插入图片描述

样本从二维空间中的矩形区域采样后以S形曲面嵌入到三维空间,若直接使用线性降维方法对三维空间观察到的样本点进行降维,则会丢失原本的低维结构。因此,我们就要用到非线性降维,非线性降维的一种常用方法,是基于核技巧对线性降维方法进行"核化"。下面我们以核主成分分析来进行演示:
假定我们将在高维特征空间中把数据投影到由 W W W确定的超平面上,即 P C A PCA PCA欲求解 ( ∑ i = 1 m z i z i T ) W = λ W \Big(\sum_{i=1}^{m}z_iz_i^T\Big)W=\lambda W (i=1mziziT)W=λW,其中 z i z_i zi是样本点 x i x_i xi在高维特征空间的像。假设 z i z_i zi是样本点 x i x_i xi通过映射 ϕ \phi ϕ产生,即 z = ϕ ( x i ) z=\phi(x_i) z=ϕ(xi)。我们的变换变为 ( ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ) W = λ W \Big(\sum_{i=1}^{m}\phi(x_i)\phi(x_i)^T\Big)W=\lambda W (i=1mϕ(xi)ϕ(xi)T)W=λW
Φ ( x ) Φ ( x ) T W = λ W \Phi(x)\Phi(x)^TW=\lambda W Φ(x)Φ(x)TW=λW,同时可以解出 W = 1 λ ( ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ) W = ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T W λ W=\frac{1}{\lambda}\Big(\sum_{i=1}^m\phi(x_i)\phi(x_i)^T\Big)W=\sum_{i=1}^m\phi(x_i)\frac{\phi(x_i)^TW}{\lambda} W=λ1(i=1mϕ(xi)ϕ(xi)T)W=i=1mϕ(xi)λϕ(xi)TW α i = 1 λ ϕ ( x i ) T W \alpha_i=\frac{1}{\lambda}\phi(x_i)^TW αi=λ1ϕ(xi)TW,则 W = ∑ i = 1 m ϕ ( x i ) T α i = Φ ( x ) α W=\sum_{i=1}^m\phi(x_i)^T\alpha_i=\Phi(x)\alpha W=i=1mϕ(xi)Tαi=Φ(x)α。于是我们可以得出 Φ ( x ) Φ ( x ) T Φ ( x ) α = λ Φ ( x ) α Φ ( x ) T Φ ( x ) Φ ( x ) T Φ ( x ) α = λ Φ ( x ) T Φ ( x ) α \Phi(x)\Phi(x)^T\Phi(x)\alpha=\lambda\Phi(x)\alpha\\ \Phi(x)^T\Phi(x)\Phi(x)^T\Phi(x)\alpha=\lambda\Phi(x)^T\Phi(x)\alpha Φ(x)Φ(x)TΦ(x)α=λΦ(x)αΦ(x)TΦ(x)Φ(x)TΦ(x)α=λΦ(x)TΦ(x)α因为一般情形下,我们不清楚 ϕ \phi ϕ的具体形式,于是引入核函数 k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) k(x_i,x_j)=\phi(x_i)^T\phi(x_j) k(xi,xj)=ϕ(xi)Tϕ(xj)代入化简可得 K α = λ α K\alpha=\lambda \alpha Kα=λα
其中K是k对应的核矩阵, K i j = k ( x i , x j ) , α = ( α 1 , α 2 , … … α m ) K_{ij}=k(x_i,x_j),\alpha=(α_1,α_2,……α_m) Kij=k(xi,xj)α=(α1,α2,αm)。那么K最大的 d ′ d^{'} d个特征值所对应的特征向量即为我们要求的变换矩阵。

5、流行学习

流行学习是一类借鉴了拓扑流行概念的降维方法,流形学习是一大类基于流形的框架。数学意义上的流形比较抽象,不过我们可以认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征,有点像流水的味道。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程中我们希望流形在高维的一些特征可以得到保留。一个形象的流形降维过程如下图。我们有一块卷起来的布,我们希望将其展开到一个二维平面,我们希望展开后的布能够在局部保持布结构的特征,其实也就是将其展开的过程,就像两个人将其拉开一样。
在这里插入图片描述

5.1 等度量映射

等度量映射的基本出发点,是认为低维流形嵌入到高维空间中之后,直接在高维空间中计算直线距离具有误导性。如下图,可以看出从一点到另一点一定要经过一段曲线,我们将其称为测地线距离,测地线距离是指两点之间的本真距离。显然,直接计算直线距离是不恰当的。
在这里插入图片描述

那么怎么计算测地线距离呢?我们可以对每个点基于欧式距离找出近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题。

在近邻连接图上求最短路径,可采用著名的Dijkstra算法或Floyd算法,在得到任意两点的距离之后,就可通过MDS方法来获得样本点在低维空间中的坐标。Isomap算法的具体流程如下:
在这里插入图片描述
要注意的是,Isomap仅是得到了训练样本在低维空间的坐标,对于新样本,如何将其映射到低维空间呢?一般是将训练样本的高维空间坐标作为输入、低维空间坐标作为输出,训练一个回归学习器来对新样本的低维空间坐标进行预测。
近邻图的构建通常由两种方法,一种是指定近邻点个数,符合条件的k个点为近邻点,如欧氏距离最近的k个点为近邻点;另一种是指定距离阈值 ϵ \epsilon ϵ,距离小于 ϵ \epsilon ϵ的点被认为是近邻点。两种方式都有一定的不足,若近邻范围指定的较大,则距离很远的点可能被误认为是近邻点,近邻范围指定的小,则图中有些区域可能与其他区域不存在连接,都会给后续的计算造成干扰。

5.2 局部线性嵌入

与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(LLE)试图保持邻域内样本间的线性关系,假定样本点 x i x_i xi的能够通过它的邻域样本 x j , x k , x l x_j,x_k,x_l xj,xk,xl的坐标通过线性组合而重构出来,即 x i = w i j x j + w i k x k + w i l x l x_i=w_{ij}x_j+w_{ik}x_k+w_{il}x_l xi=wijxj+wikxk+wilxl局部线性嵌入希望这种关系在低维空间得以保持。LLE先为每个样本 x i x_i xi找到其近邻下标集合 Q i Q_i Qi,然后我们就需要找到样本点 x i x_i xi和这些近邻之间的线性关系,设置损失函数损失函数 J ( w ) = ∑ i = 1 m ∣ ∣ x i − ∑ j ∈ Q ( i ) w i j x j ∣ ∣ 2 2 J(w)=∑_{i=1}^m||x_i−∑_{j∈Q(i)}w_{ij}x_j||_2^2 J(w)=i=1mxijQ(i)wijxj22一般我们也会对权重系数 w i j w_{ij} wij做归一化的限制,即权重系数需要满足 ∑ j ∈ Q ( i ) w i j = 1 ∑_{j∈Q(i)}w_{ij}=1 jQ(i)wij=1对于不在样本xi邻域内的样本 x j x_j xj,我们令对应的 w i j = 0 w_{ij}=0 wij=0。很明显,我们的任务就是找出能使 J ( w ) J(w) J(w)最小的权重系数 w i j w_{ij} wij J ( w ) = ∑ i = 1 m ∣ ∣ x i − ∑ j ∈ Q ( i ) w i j x j ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ ∑ j ∈ Q ( i ) w i j x i − ∑ j ∈ Q ( i ) w i j x j ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ ∑ j ∈ Q ( i ) w i j ( x i − x j ) ∣ ∣ 2 2 = ∑ i = 1 m W i T ( x i − x j ) ( x i − x j ) T W i J(w)=∑_{i=1}^m||x_i−∑_{j∈Q(i)}w_{ij}x_j||_2^2\\=\sum_{i=1}^m||∑_{j∈Q(i)}w_{ij}x_i−∑_{j∈Q(i)}w_{ij}x_j||_2^2\\=∑_{i=1}^m||∑_{j∈Q(i)}w_{ij}(x_i-x_j)||_2^2\\=∑_{i=1}^mW_i^T(x_i-x_j)(x_i-x_j)^TW_i J(w)=i=1mxijQ(i)wijxj22=i=1mjQ(i)wijxijQ(i)wijxj22=i=1mjQ(i)wij(xixj)22=i=1mWiT(xixj)(xixj)TWi其中 W i = ( w i 1 , w i 2 , … … , w i k ) T W_i=(w_{i1},w_{i2},……,w_{ik})^T Wi=(wi1,wi2,,wik)T,那么,用 1 k 1_k 1k表示k维全一向量,则 ∑ j ∈ Q ( i ) W i j = W i T 1 k \sum\limits_{j∈Q(i)}W_{ij}=W_i^T1_k jQ(i)Wij=WiT1k,。用拉格朗日法求解 w i j w_{ij} wij,令 L ( W ) = ∑ i = 1 k W i T ( x i − x j ) ( x i − x j ) T W i + λ ( W i T 1 k − 1 ) L(W)=∑_{i=1}^kW^T_i(x_i-x_j)(x_i-x_j)^TW_i+λ(W^T_i1_k−1) L(W)=i=1kWiT(xixj)(xixj)TWi+λ(WiT1k1)令其对 W W W求偏导为零得 2 ( x i − x j ) ( x i − x j ) T W i + λ 1 k = 0 2(x_i-x_j)(x_i-x_j)^TW_i+λ1_k=0 2(xixj)(xixj)TWi+λ1k=0因此, W i = − 1 2 λ ( ( x i − x j ) T ) − 1 ( ( x i − x j ) − 1 1 k W_i=-\frac{1}{2}λ((x_i-x_j)^T)^{-1}((x_i-x_j)^{-1}1_k Wi=21λ((xixj)T)1((xixj)11k现在我们得到了高维的权重系数,那么我们希望这些权重系数对应的线性关系在降维后的低维空间得到保持。假设我们的n维样本集{ x 1 , x 2 , . . . , x m x_1,x_2,...,x_m x1,x2,...,xm}在低维的d维度对应投影为{ y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1,y2,...,ym},其均方差损失函数为: J ( y ) = ∑ i = 1 m ∣ ∣ y i − ∑ j = 1 m w i j y j ∣ ∣ 2 2 = ∑ j = 1 m ∣ ∣ Y I i − Y W i ∣ ∣ 2 2 = t r ( Y ( I − W ) ( I − W ) T Y T ) J(y)=∑_{i=1}^m||y_i−∑_{j=1}^mw_{ij}y_j||_2^2=∑_{j=1}^m||YI_i−YW_i||_2^2=tr(Y(I-W)(I-W)^TY^T) J(y)=i=1myij=1mwijyj22=j=1mYIiYWi22=tr(Y(IW)(IW)TYT)
同样地,添加约束条件 ∑ i = 1 m y i = 0 ; 1 m ∑ i = 1 m y i y i T = I ∑_{i=1}^my_i=0;\frac{1}{m}∑_{i=1}^my_iy^T_i=I i=1myi=0;m1i=1myiyiT=I M = ( I − W ) ( I − W ) T M=(I−W)(I−W)^T M=(IW)(IW)T,用拉个朗日法求解,令 L ( Y ) = t r ( Y M Y T + λ ( Y Y T − m I ) ) L(Y)=tr(YMY^T+λ(YY^T−mI)) L(Y)=tr(YMYT+λ(YYTmI))将上式对 Y Y Y求偏导为零得 2 M Y T + 2 λ Y T = 0 2MY^T+2λY^T=0 2MYT+2λYT=0 M Y T = − λ Y T , MY^T=-\lambda Y^T, MYT=λYT,那么,求出矩阵M最小的d个特征值所对应的d个特征向量,我们就可得到最终的 Y = ( y 1 , y 2 , . . . y d ) T Y=(y_1,y_2,...y_d)^T Y=(y1,y2,...yd)T。一般的,由于M的最小特征值为0不能反应数据特征,此时对应的特征向量为全1。我们通常选择M的第2个到第d+1个最小的特征值对应的特征向量 M = ( y 2 , y 3 , . . . y d + 1 ) M=(y_2,y_3,...y_{d+1}) M=(y2,y3,...yd+1)来得到最终的Y。

总的来说,LLE算法的具体步骤如下:

  1. 寻找每个样本点的k个近邻点;
  2. 由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;
  3. 由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值

6、度量学习

在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。那么,为什么不直接尝试"学习"出一个合适的距离度量呢?这就是度量学习的基本动机。
欲对度量学习进行学习,必须有一个便于学习的距离度量表达形式。之前提到的距离度量表达式都是固定的,不能调节的,因此我们先来做一个推广:对两个d维样本 x i x_i xi x j x_j xj,它们之间的平方欧氏距离可写为 d i s t e d 2 ( x i , x j ) = ∣ ∣ x i − x j ∣ ∣ 2 2 = d i s t i j , 1 2 + d i s t i j , 2 2 + … … + d i s t i j , d 2 dist^2_{ed}(x_i,x_j)=||x_i-x_j||^2_2=dist^2_{ij,1}+dist^2_{ij,2}+……+dist^2_{ij,d} disted2(xi,xj)=xixj22=distij,12+distij,22++distij,d2其中 d i s t i j , k 2 dist^2_{ij,k} distij,k2表示 x i x_i xi x j x_j xj在第k维上的距离,若假定不同属性的重要性不同,则可引入属性权重 w w w,令 W = d i a g ( w ) , ( W ) i i = w i W=diag(w),(W)_{ii}=w_i W=diag(w),(W)ii=wi,则
d i s t e d 2 ( x i , x j ) = ∣ ∣ x i − x j ∣ ∣ 2 2 = w 1 d i s t i j , 1 2 + w 2 d i s t i j , 2 2 + … … + w d d i s t i j , d 2 = ( x i − x j ) T W ( x i − x j ) dist^2_{ed}(x_i,x_j)=||x_i-x_j||^2_2=w_1dist^2_{ij,1}+w_2dist^2_{ij,2}+……+w_ddist^2_{ij,d}=(x_i-x_j)^TW(x_i-x_j) disted2(xi,xj)=xixj22=w1distij,12+w2distij,22++wddistij,d2=(xixj)TW(xixj)在此,我们假设 W W W中非对角线均为零,即属性之间无关,单大多数情况下,属性之间存在一定的关系,为此,将 W W W替换为半正定对称矩阵 M M M,得到马氏距离 d i s t m a h 2 ( x i , x j ) = ( x i − x j ) T M ( x i − x j ) = ∣ ∣ x i − x j ∣ ∣ M 2 dist_{mah}^2(x_i,x_j)=(x_i-x_j)^TM(x_i-x_j)=||x_i-x_j||_M^2 distmah2(xi,xj)=(xixj)TM(xixj)=xixjM2要注意, M M M必须是半正定对称矩阵,即必有正交基 P P P使得 M M M能写为 M = P P T M=PP^T M=PPT。度量学习就是对 M M M进行学习,对 M M M进行学习要设置一个目标,假设我们希望提高近邻分类器的性能,则可将 M M M嵌入到近邻分类器的评价指标中去,通过优化该性能指标相应地求出 M M M。下面以近邻成分分析为例进行讨论。
近邻分类器在进行判别时常使用多数投票法,假设采用概率投票法,任意样本 x j x_j xj对样本 x i x_i xi产生影响的概率为 P i j = e − ∣ ∣ x i − x j ∣ ∣ M 2 ∑ l e − ∣ ∣ x i − x l ∣ ∣ M 2 P_{ij}=\frac{e^{-||x_i-x_j||_M^2}}{\sum_le^{-||x_i-x_l||_M^2}} Pij=lexixlM2exixjM2显然,随着 x i x_i xi x j x_j xj之间距离的增大, p i j p_{ij} pij会逐渐减小。若以留一法正确率的最大化为目标,则可计算 x i x_i xi的留一法正确率,即它被自身之外的所有样本正确分类的概率为 p i = ∑ j ∈ Ω i p i j p_i=\sum_{j\in \Omega_i}p_{ij} pi=jΩipij其中 Ω i \Omega_i Ωi表示与 x i x_i xi属于相同类别的样本的下标集合,于是,整个样本集上的留一法正确率为 ∑ i = 1 m p i = ∑ i = 1 m ∑ j ∈ Ω i p i j = ∑ i = 1 m ∑ j ∈ Ω i e − ∣ ∣ x i − x j ∣ ∣ M 2 ∑ l e − ∣ ∣ x i − x l ∣ ∣ M 2 \sum_{i=1}^mp_i=\sum_{i=1}^m\sum_{j\in \Omega_i}p_{ij}=\sum_{i=1}^m\sum_{j\in \Omega_i}\frac{e^{-||x_i-x_j||_M^2}}{\sum_le^{-||x_i-x_l||_M^2}} i=1mpi=i=1mjΩipij=i=1mjΩilexixlM2exixjM2很明显,我们要让他尽可能地大,即找到距离度量矩阵 M M M使得上式最大,因为 M = P P T M=PP^T M=PPT,因此我们的优化目标为 m i n P   1 − ∑ i = 1 m ∑ j ∈ Ω i e − ∣ ∣ P T x i − P T x j ∣ ∣ 2 2 ∑ l e − ∣ ∣ P T x i − P T x l ∣ ∣ 2 2 \underset{P}{min}\ 1-\sum_{i=1}^m\sum_{j\in \Omega_i}\frac{e^{-||P^Tx_i-P^Tx_j||_2^2}}{\sum_le^{-||P^Tx_i-P^Tx_l||_2^2}} Pmin 1i=1mjΩilePTxiPTxl22ePTxiPTxj22除了将错误率这样的监督学习目标作为度量学习的优化目标,还可在度量学习中引入领域知识。设定集合 A , B A,B A,B,将相似的样本放在集合 A A A中,不相似的样本放在 B B B中,我们希望相似样本之间的距离尽可能小,不相似样本之间的距离尽可能大。那么,我们的目标可写为: m i n M   ∑ ( x i , x j ) ∈ A ∣ ∣ x i − x j ∣ ∣ M 2 s . t .   ∑ ( x i , x k ) ∈ C ∣ ∣ x i − x k ∣ ∣ M ≥ 1 \underset{M}{min}\ \sum_{(x_i,x_j)\in A}||x_i-x_j||_M^2\\ s.t.\ \sum_{(x_i,x_k)\in C}||x_i-x_k||_M\geq1 Mmin (xi,xj)AxixjM2s.t. (xi,xk)CxixkM1即在不相似样本的距离不小于1的前提下寻找使相似样本间的距离最小的半正定矩阵 M M M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值