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

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) DR(mm) 我们的目标便是获得样本在低维空间中的表示 Z ∈ R ( d ’ ∗ m , d ’ < d ) Z∈R(d’∗m,d’<d) ZR(dm,dd),且任意两个样本在低维空间中的欧式距离等于原始空间中的距离,即 ∣ ∣ z i − z j ∣ ∣ = D i s t i j ∣∣z_i−z_j∣∣=Dist_{ij} zizj=Distij 因此接下来我们要做的就是根据已有的距离矩阵D来求解出降维后的坐标矩阵Z。
在这里插入图片描述
令降维后的样本坐标矩阵Z被中心化:将每个样本向量减去整个样本集的均值向量,则所有样本向量求和得到一个零向量
易知:矩阵B的每一列以及每一列求和均为0,因为提取公因子后都有一项为所有样本向量的和向量。
那么可得:
在这里插入图片描述
由此可通过降维前后保持不变的距离矩阵 D D D求取内积矩阵 B B B ,即 b i j = − 1 2 ( d i s t i j 2 − d i s t i ⋅ 2 − d i s t ⋅ j 2 − d i s t ⋅ ⋅ 2 ) b_{ij} = -\frac{1}{2}(dist_{ij}^{2}-dist_{i\cdot }^{2}-dist_{\cdot j }^{2}-dist_{\cdot\cdot }^{2}) bij=21(distij2disti2distj2dist2)
),再逐一地计算每个 b i j b_{ij} bij,就得到了降维后低维空间中的内积矩阵 B ( B = Z ’ ∗ Z ) B(B=Z’∗Z) B(B=ZZ),只需对 B B B进行特征值分解便可以得到 Z Z Z
流程:
在这里插入图片描述

10.3 主成分分析

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

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

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

根据最大重构性
在这里插入图片描述
用拉格朗日乘子法求解:
在这里插入图片描述
X X T \mathbf{XX^{T}} XXT是X中心化后的协方差矩阵
对协方差矩阵进行特征值分解即可求解出W
流程:
在这里插入图片描述
相关博客:https://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.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 ω
在这里插入图片描述
接着根据邻域重构系数不变,去求解低纬坐标
在这里插入图片描述
优化问题:
在这里插入图片描述
利用矩阵 M M M的特征值分解进行求解
流程:
在这里插入图片描述

10.6 度量学习

之前的降维方法都是将原空间映射到合适的低纬空间再进行学习。度量学习则是直接“学习”一个合适的距离度量。
首先要定义一个合适的距离度量形式
在这里插入图片描述
可以加入属性权重:
在这里插入图片描述
以上属性间是互相独立无关,若属性间有相关性,可以用马氏距离:
在这里插入图片描述
矩阵M也称为“度量矩阵”,为保证距离度量的非负性与对称性,M必须为(半)正定对称矩阵 M = P P T \mathbf{M=PP^{T}} M=PPT),这样就为度量学习定义好了距离度量的形式。
对M进行学习需要设置目标,假定需要提高某种分类器的性能,可以将M嵌入到分类器的评价指标中去,通过优化这一性能指标来求得M。
比如对于近邻成分分析(NCA) —>P239,优化目标即为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值