《机器学习》理论——速读学习2 常用方法(3)

《机器学习》理论——速读学习2 常用方法(3)

该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动!

time: 2021-12-24

学习目标:我需要了解神经网络除了工程化部分之外的更多内容,以便于在实际有效数据中可以获得抽象模型的能力;

  • 第9章 聚类
  • 第10章 降维与度量学习

第9章 聚类

9.1 聚类任务

无监督学习中,训练样本的标记信息未知,目标是通过对无标记训练样本的学习来揭示数据内在的性质及规律,为进一步数据分析做基础;此类问题研究最多的就包括“聚类(clustering)”;

除了聚类任务,常见的无监督学习任务还有密度估计(density estimation)、异常检测(anomaly detection)等;

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇(cluster)(就聚类算法而言,样本簇也称类);

每个簇(类)可能对应一些潜在的概念;

这些概念事先是未知的,聚类过程仅能自动形成簇结构,簇对应的概念需要由使用者自己把握;

聚类任务中可使用标记训练样本,如半监督聚类,但要注意样本的类标记和聚类产生的簇有所不同;即类标记不同于簇标记(cluster label);

聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程;如用户分类,可以先聚类,再更具每个簇定义一个类,基于这些类训练分类模型;

后续:聚类的两个基本问题 —— 性能度量 和 距离计算,以及代表性算法;

9.2 性能度量

我们已经在第二章中了解过 监督学习中的性能度量;

聚类性能度量 亦称 聚类“有效性指标”(validity index);与监督学习中的性能度量作用类似;

即,对聚类结果,我们需要通过某种性能度量来评估其好坏,且一旦明确了最终要用的性能度量,可直接将其作为聚类过程的优化目标;

什么样的聚类比较好:

  • 同簇样本尽可能彼此相似,不同簇样本尽可能不同;
  • 即,聚类结果的簇内相似度(intra-cluster similarity)高,簇间相似度(inter-cluster similarity)低;

聚类性能度量大致分两类:

  • 聚类结果与某个参考模型进行比较,称为外部指标(external index)
    • Jaccard系数(Jaccard Coefficient,简称JC)
    • FM指数(Fowlkes and Mallows Index,FMI)
    • Rand指数(Rand Index,RI)
    • 这三个性能度量结果值 均在[0,1]区间,值越大越好;
  • 聚类结果直接考察,不利用任何参考模型,称为内部指标(internal index)
    • DB指数(Davies-Bouldin Index,DBI),值越小越好
    • Dunn指数(Dunn Index,DI),值越大越好;

9.3 距离计算

对于函数dist(,)表示一个距离度量(distance measure),满足:

  • 非负性:函数值大于等于0
  • 同一性:两个样本相同时,距离为0
  • 对称性:xi到xj的距离,与xj到xi的距离相等
  • 直递性:两个样本距离小于等于 某一中间样本到这两个点各自距离之和(有点像三角形两边之和大于第三边,等于时即为线段)

给定样本xi、xj,它们各自可以表示为一组属性值的向量,距离度量函数最常用的是闵可夫斯基距离(Minkowski distance);

  • 范数p的值=2时,即为欧氏距离
  • 范数p的值=1时,即为曼哈顿距离(Manhattan distance)

连续属性(continuous attribute)亦称 数值属性(numerical attribute);离散属性(categorical attribute)亦称 列名属性(nominal attribute);在讨论距离计算时,属性上是否定义了序关系往往很重要;由此可得到有序属性(ordinal attribute)和无序属性(non-ordinal attribute)的概念;

  • 闵可夫斯基距离 可用于 有序属性;
  • 对于无序属性可采用VDM(Value Difference Metric)距离;
  • 处理混合属性可结合闵可夫斯基距离和VDM,一般令有序属性排列在无序属性之前;
  • 当样本空间中不同属性的重要性不同是,可使用加权距离(weighted distance);(通常权重值累加和为1);

通常我们是基于某种形式的距离来定义相似度度量(similarity measure),即距离越大,相似度越小;

然而用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性;对于不满足直递性的距离称为非度量距离(non-metric distance);

欧氏距离和余弦相似度:

  • 欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异;
  • 余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦相似度对绝对数值不敏感);
# 欧氏距离关注的是向量值的差异;欧氏距离越小,说明个体差别越小
dist = linalg.norm(A - B) # 欧氏距离
sim = 1.0 / (1.0 + dist) # 归一化

# 余弦相似度关注的是向量的方向的偏差程度;余弦值越大,相似度越高
num = float(A.T * B) # 假定A、B为列向量,若为行向量则 A * B.T  
denom = linalg.norm(A) * linalg.norm(B)  
cos = num / denom # 余弦值  
sim = 0.5 + 0.5 * cos # 归一化 

9.4 原型聚类

原型 指样本空间中具有代表性的点;原型聚类亦称基于原型的聚类(prototype-based clustering);

  • 此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为通用;
  • 算法对原型初始化,然后对原型进行迭代更新求解;
  • 采用不同的原型表示、求解方法,将产生不同的算法;

以下是集中著名的原型聚类算法;

k均值算法

  • k均值(k-means)算法针对聚类所得簇划分 最小化平方误差;
  • E一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值也是小,簇内样本相似度越高;
  • 最小化并不容易,最优解需要考虑样本集D的所有可能簇划分,这是一个NP难问题;
  • k均值算法采用贪心策略,通过迭代来近似求解;
    • 对均值向量初始化,假定类簇数k=3,算法开始随机选取三个样本作为初始均值向量;
    • 对当前簇划分及均值向量进行迭代更新,直到聚类结果保持不变(或小于设置的阀值,也可以设置最大迭代次数);
      • 考察样本x1,计算它与当前均值向量的距离,以决定x1被划分的簇,继续对所有样本考察一遍;
      • 这样就得到了新的簇划分;继而可以计算各个划分簇的均值向量;
      • 继续考察所有样本,与新划分簇的均值向量的距离,继续得到新的划分簇,不断重复该过程;
      • 直到触发终止条件;

学习向量量化

  • 学习向量量化(Learning Vector Quantization,LVQ)与k均值算法类似,也是视图找到一组原型向量来刻画聚类结构;
  • 与一般聚类算法不同的是,LVQ假设样本数据带有类别标记,学习过程利用样本的这些监督信息来辅助聚类;
  • 即,原型向量所代表的聚类簇标记,与样本的类标记 有交集(或是其子集);
    • 每个样本类中,随机选择有类标签的样本初始化为原型向量;
    • 每轮迭代中,找出与训练样本最近的原型向量;
      • 若两者类别一致,则更新原型向量(向训练样本靠拢,靠拢后的向量为原型向量 +(样本向量-原型向量)*学习率);
      • 若两者类别不一致,则更新原型向量(远离训练样本)
    • 最终学得的原型向量定义了一个与之相关的区域,该区域中每个样本与相应的原型向量距离不大于它与其他原型向量的距离;

SOM是基于无标记样本的聚类算法,LVQ可看做SOM基于监督信息的扩展;

对于一个样本集,如果全部都用原型向量来表示,即可实现数据的有损压缩(lossy compression),这个过程称为向量量化,LVQ由此得名;

由此形成的对样本空间的簇划分,通常称为Voronoi剖分(Voronoi tessellation);

高斯混合聚类

  • 与前两个不同,高斯混合(Mixture-of-Gaussian)聚类采用概率模型(高斯分布)来表达聚类原型
  • 簇划分则由原型对应后验概率确定,即每个高斯成分的混合系数由样本属于该成分的平均后验概率确定;
  • 基于EM算法对模型参数进行迭代更新;;

9.5 密度聚类

即基于密度的聚类(density-based clustering),此类算法假设聚类结构能通过样本分布的紧密程度确定;通常,是从样本密度的角度来考察样本之间的可连续性,并基于可连接样本不断扩展聚类以获得最终的聚类结果;

密度直达关系通常不满足对称性;密度可达关系满足直递性,但不满足对称性;密度相连关系满足对称性;

DBSCAN是一种著名的密度聚类算法,基于一组邻域(neighborhood)参数刻画样本分布的紧密程度;

  • 邻域:距离某一样本一定距离内的样本;
  • 密度直达(directly density-reachable):xi是核心对象,xj位于其邻域中,则称xj由xi直达;
  • 密度可达(density-reachable):xi、xj经过多个间接的密度直达,即为密度可达;
  • 密度相连(density-connected):xi、xj可用同一个核心对象密度可达,即为密度相连;

对于不属于任何簇的样本 一般被认为是噪声(noise)或异常(anomaly);

基于上述概念,DBSCAN将簇定义为:由密度可达关系导出的最大的密度相连样本集合;

  • DBSCAN算法先任选数据集中的一个核心对象为种子(seed),再由此触发确定相应的聚类簇;
  • 遍历数据集,根据邻域参数找出所有的核心对象,以任一核心对象为出发点,找出其密度可达的样本生成聚类簇(已被划分的核心对象,从所有的核心对象集合中删除即可),直到所有核心对象均被访问过为止(此时所有的核心对象集合为空);

层次聚类

层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构;

数据集的划分可采用自底向上的聚合策略,也可以采用自顶向下的分拆策略;

AGNES(AGglomerative NESting)是一种采用自底向上策略策略的层次聚类算法:

  • 数据集每个样本作为一个初始聚类簇;
  • 每一步找出距离最近的两个聚类簇进行合并,直到达到预设的聚类簇个数;

集合间距离计算常采用豪斯多夫距离;

聚类簇距离可以使用 最小距离(两个集合最近样本决定)、最大距离(两个集合最远样本决定)、平均距离(两个簇的所有样本共同决定),相应的AGNES算法分别被称为 单链接(single-linkage)全连接(complete-linkage)均链接(average-linkage)

聚类集成(clustering ensemble)通过对多个聚类学习器进行集成,能有效降低聚类假设与真实聚类结构不符、聚类过程中的随机因素等带来的不良影响;

异常检测(anomaly detection)常借助聚类或距离计算进行,如将远离所有簇中心的样本作为异常点,将密度极低处的样本最为异常点;(也有基于隔离性快速检测异常点的方法);

第10章 降维与度量学习

10.1 k近邻学习

k近邻(k-Nearest Neighbor,kNN)学习是一种常用的监督学习方法,工作机制是:给定测试样本,基于某种距离度量找出训练集中与其靠近的k个训练样本,然后基于这k个邻居的信息进行预测;

通常,分类任务使用投票法,即选择k个样本中出现最多的类别标记作为预测结果;回归任务中使用平均法,即将这k个样本的实值输出标记的平均值作为预测结果;还可以基于距离远近进行加权平均或加权投票,距离越近的样本权重越大;

k近邻学习有个明显之处:它似乎没有显式的训练过程;事实上,它是懒惰学习(lazy learning)的著名代表,此类学习技术在训练阶段仅仅把样本保存起来,训练时间开销为零,待收到测试样本后在进行整理;那些在训练阶段就对样本进行学习处理的方法,称为急切学习(eager learning)

显然k的取值 和 距离的计算方式,对结果有很大影响;

k=1时,即1NN,如果是对于分类问题,即最近邻分类器;给定测试样本x,若其最近邻样本为z,则最近邻分类器出错的概率就是x与z类别标记不同的概率,这个概率经推到计算,有结论:最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍(这里假设选取了合适的距离计算方式,且训练样本的采样密度足够大——即密采样,大到任意一个测试样本都可以在任意小的距离范围内找到一个训练样本);

10.2 低维嵌入

一般的密采样(dense sample)的假设很难满足,因为这需要太大量的样本;此外许多学习方法都涉及距离计算,高维空间的记录计算更不容易;

在高维情形下出现的数据样本稀疏、距离计算困难等问题,被称为“维数灾难(curse ofdimensionality)”;

缓解维数灾难的两种重要途径 分别是 降维(dimension reduction,也称维数约简)特征选择

降维,即通过某种数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更加容易;

低维嵌入:很多时候,人们观测或收集到的样本数据虽然是高维的,但是与实际学习任务相关的也许只是某个低维分布,这个低维分布就是原高维空间中的一个低维嵌入(embedding)

多维缩放(Multiple Dimensional Scaling,MDS):

  • 一种经典降维方法,可以使原始空间样本之间的距离在低维空间中得以保持;

一般来说,获得低维子空间的最简单方式就是对原始高维空间进行线性变换,即线性降维方法;

对降维效果的评估,通常是比较降维前后学习器的性能,性能有所提高则认为降维起到了作用;

10.3 主成分分析

主成分分析(Principal Component Analysis,PCA),也叫主分量分析,是最常用的降维方法(是一种无监督线性降维方法);

考虑,如何用一个超平面来表达正交属性空间中的样本点:

  • 最近重构性:样本点到这个超平面的距离都足够近;
  • 最大可分性:样本点在这个超平面上的投影能尽可能分散开(在超平面上投影后样本点的方差最大化);
  • 两种性质可以得出主成分分析的两种等价推导;

注:具体推到忽略,理解 最近重构性 和 最大可分性即可;

10.4 归纳偏好

线性降维假设从高维到低维的映射是线性的,但在现实任务中,可能需要非线性映射才能找到恰当的低维嵌入;

如从二维空间中的矩形区域采样后以S形曲面嵌入到三维空间,若直接使用线性降维则将丢失原本的低维结构;

原本样本采样的低维空间 称为本真(intrinsic)低维空间,注意要区别于降维后的低维空间;

非线性降维的一种常用方法,是基于核技巧对线性降维方法进行核化:核主成分分析(Kernelized PCA,KPCA);

10.5 流形学习

流形学习(manifold learning);

10.6 度量学习

度量学习,亦称距离度量学习(distance metric learning);

在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好;

  • 每个空间对应了在样本属性上定义的一个距离度量;
  • 合适的空间,即找到一个合适的距离度量(尝试学习到一个合适的距离度量即为度量学习);

你可能感兴趣的:(深度学习,机器学习,聚类,数据挖掘)