周志华《机器学习》同步学习笔记 ——第十章降维与度量学习
周志华《机器学习》同步学习笔记 ——第十章降维与度量学习
10.1 k近邻学习
k近邻学习即kNN(k-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′<d)d'(d'<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算法流程:
近邻图的构建,常用的有两种方法:
- 指定近邻点个数,比如欧氏距离最近的k个点为近邻点
- 指定距离阈值,小于距离阈值的点认为是近邻点。
若邻域范围指定过大,则会造成“短路问题”,即本身距离很远却成了近邻
若邻域范围指定过小,则会造成“断路问题”,即有些样本点无法可达了
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,优化目标即为
- 机器学习(周志华) 参考答案 第十章 降维与度量学习 10.1
- 机器学习(周志华)_第十章 降维与度量学习
- 机器学习(周志华) 参考答案 第十章 降维与度量学习 10.6
- 《机器学习》周志华西瓜书学习笔记(十):降维与度量学习
- 周志华 《机器学习》之 第十章(降维与度量学习)概念总结
- 机器学习-学习笔记 降维与度量学习
- 《机器学习》周志华-CH10 降维与度量学习
- 周志华《机器学习》 学习笔记(四) 性能度量
- 第十章(3)-异步调用中的异常与任务同步-学习笔记
- 西瓜书-answer- 第十章 降维与度量学习
- 《机器学习》阅读心得——十、降维与度量学习
- 《机器学习》-- 周志华 (第一章学习笔记)
- 周志华《Machine Learning》学习笔记(12)--降维与度量学习
- 《机器学习》周志华西瓜书学习笔记(七):贝叶斯分类器
- 『机器学习——周志华』学习笔记——第一章
- 周志华《机器学习》(西瓜书) —— 学习笔记:第6章 支持向量机
- 周志华《机器学习》——学习笔记
- 《机器学习》 -- 周志华 (第二章学习笔记)
- 周志华《机器学习》 学习笔记(三) 经验误差、过拟合与评估方法
- [机器学习]降维与度量学习