您的位置:首页 > 其它

周志华《机器学习》同步学习笔记 ——第十章降维与度量学习

2019-08-09 22:57 337 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u014157256/article/details/99002891

周志华《机器学习》同步学习笔记 ——第十章降维与度量学习

  • 10.6 度量学习
  • 10.1 k近邻学习

    k近邻学习即kNNk-Nearest Neighbor)是一种常用的监督学习方法:给定某个测试样本,基于某种距离度量在训练集中找出与其距离最近的k个带有真实标记的训练样本,然后给基于这k个邻居的真实标记来进行预测——分类任务采用投票法,回归任务则采用平均法。
    虽然是一种监督学习方法,但是它却没有显式的训练过程,而是当有新样本需要预测时,才来计算出最近的k个邻居。
    因此kNN是一种“懒惰学习”方法:在训练阶段只把样本保存起来,训练时间开销为0。
    对应有“急切学习”:=在训练阶段就对样本进行学习处理

    由K近邻的示意图可看出近邻数k以及距离计算方式是重要的影响因素。
    如果取K=1,它变成为“最近邻分类器”(1NN),在二分类问题上,它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。

    10.2 低纬嵌入

    k近邻学习的前提是进行了“密度采样”:采样密度足够大。现实问题中若为了满足这个条件,需要非常多的样本。其中也会涉及到距离计算,而高纬空间也会给计算带来麻烦。这就是维数灾难
    为此,需要进行降维。同时需要原始空间中样本之间的距离在低纬空间得以保持,可以用多维缩放MDS)方法。
    假定m个样本在原始空间中任意两两样本之间的距离矩阵为D∈R(m∗m)D∈R(m∗m)D∈R(m∗m) 我们的目标便是获得样本在低维空间中的表示Z∈R(d’∗m,d’<d)Z∈R(d’∗m,d’<d)Z∈R(d’∗m,d’<d),且任意两个样本在低维空间中的欧式距离等于原始空间中的距离,即∣∣zi−zj∣∣=Distij∣∣z_i−z_j∣∣=Dist_{ij}∣∣zi​−zj​∣∣=Distij​ 因此接下来我们要做的就是根据已有的距离矩阵D来求解出降维后的坐标矩阵Z。

    令降维后的样本坐标矩阵Z被中心化:将每个样本向量减去整个样本集的均值向量,则所有样本向量求和得到一个零向量
    易知:矩阵B的每一列以及每一列求和均为0,因为提取公因子后都有一项为所有样本向量的和向量。
    那么可得:

    由此可通过降维前后保持不变的距离矩阵DDD求取内积矩阵BBB ,即bij=−12(distij2−disti⋅2−dist⋅j2−dist⋅⋅2)b_{ij} = -\frac{1}{2}(dist_{ij}^{2}-dist_{i\cdot }^{2}-dist_{\cdot j }^{2}-dist_{\cdot\cdot }^{2})bij​=−21​(distij2​−disti⋅2​−dist⋅j2​−dist⋅⋅2​)
    ),再逐一地计算每个bijb_{ij}bij​,就得到了降维后低维空间中的内积矩阵B(B=Z’∗Z)B(B=Z’∗Z)B(B=Z’∗Z),只需对BBB进行特征值分解便可以得到ZZZ
    流程:

    10.3 主成分分析

    主成分分析PCA)直接通过一个线性变换,将原始空间中的样本投影到新的低维空间中:采用一组新的基来表示样本点,其中每一个基向量都是原来基向量的线性组合
    这样做实质就是将样本投射到d′(d′&lt;d)d&#x27;(d&#x27;&lt;d)d′(d′<d)个基向量确定的超平面上(舍弃了一些维度)。要求这个超平面有下面两个性质:

    最近重构性:样本点到超平面的距离足够近,即尽可能在超平面附近;
    最大可分性:样本点在超平面上的投影尽可能地分散开来,即投影后的坐标具有区分性。

    从上面两个出发点来寻找目标函数会得到相同的优化问题:

    根据最大重构性

    用拉格朗日乘子法求解:

    XXT\mathbf{XX^{T}}XXT是X中心化后的协方差矩阵
    对协方差矩阵进行特征值分解即可求解出W
    流程:

    相关博客:https://www.geek-share.com/detail/2514132260.html

    10.4 核化线性降维

    对于不是线性分布的样本数据点,为了用超平面来近视表示,引入了核函数:先将样本映射到高维空间,再在高维空间中使用线性降维
    核主成成分分析(KPCA)是一种常用方法。

    若核函数形式已知,即先将数据映射到高维特征空间,再在高维空间中运用PCA。

    但一般情况下并不知道核函数的具体映射规则,这时候

    但是KPCA在计算降维后的坐标表示时,需要与所有样本点计算核函数值并求和,因此该算法的计算开销十分大。

    10.5 流形学习

    流形学习manifold learning是一种借助拓扑流形概念的降维方法,流形是指在局部与欧式空间同胚的空间,即在局部与欧式空间具有相同的性质,能用欧氏距离计算样本之间的距离。这样即使高维空间的分布十分复杂,但是在局部上依然满足欧式空间的性质。
    等度量映射Isomap试图在降维前后保持邻域内样本之间的距离
    局部线性嵌入LLE则是保持邻域内样本之间的线性关系

    10.5.1 等度量映射

    高维空间中的直线距离具有误导性,因为有时高维空间中的直线距离在低维空间中是不可达的。因此要利用流形在局部上与欧式空间同胚的性质,可以使用近邻距离来逼近测地线距离:对于一个样本点,它与近邻内的样本点之间是可达的,且距离使用欧式距离计算。
    这样高维空间中两个样本之间的距离就转为最短路径问题。
    可采用Dijkstra算法Floyd算法计算最短距离,得到高维空间中任意两点之间的距离后便可以使用MDS算法来其计算低维空间中的坐标。
    Isomap算法流程:

    近邻图的构建,常用的有两种方法:

    1. 指定近邻点个数,比如欧氏距离最近的k个点为近邻点
    2. 指定距离阈值,小于距离阈值的点认为是近邻点。

    若邻域范围指定过大,则会造成“短路问题”,即本身距离很远却成了近邻
    若邻域范围指定过小,则会造成“断路问题”,即有些样本点无法可达了

    10.5.2 局部线性嵌入

    局部线性嵌入(LLE)试图去保持邻域内的线性关系.假定样本xi的坐标可以通过它的邻域样本线性表出:

    希望在低纬空间保持这个关系
    LLE分为两步,先根据近邻关系计算出所有样本的邻域重构系数 ω\omegaω

    接着根据邻域重构系数不变,去求解低纬坐标

    优化问题:

    利用矩阵MMM的特征值分解进行求解
    流程:

    10.6 度量学习

    之前的降维方法都是将原空间映射到合适的低纬空间再进行学习。度量学习则是直接“学习”一个合适的距离度量。
    首先要定义一个合适的距离度量形式

    可以加入属性权重:

    以上属性间是互相独立无关,若属性间有相关性,可以用马氏距离:

    矩阵M也称为“度量矩阵”,为保证距离度量的非负性与对称性,M必须为(半)正定对称矩阵(M=PPT\mathbf{M=PP^{T}}M=PPT),这样就为度量学习定义好了距离度量的形式。
    对M进行学习需要设置目标,假定需要提高某种分类器的性能,可以将M嵌入到分类器的评价指标中去,通过优化这一性能指标来求得M。
    比如对于近邻成分分析(NCA) —>P239,优化目标即为

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: