《速通机器学习》- 无监督学习

本文深入探讨无监督学习,重点讲解K-Means聚类算法,包括基本原理、改进方法和实际应用。同时,介绍了LDA主题模型,解释其原理和训练过程,展示了在自然语言处理中的应用价值。K-Means算法通过寻找数据的自然聚类,而LDA模型则用于推测文档的主题分布,两者均为无监督学习的重要工具。
摘要由CSDN通过智能技术生成

(由于平台稿件格式问题,公式格式不能正确写上;如若读写困难可后台私信我要完整电子版)

本书前面提到的各种模型,无论是回归还是分类,在训练阶段都有一个共同的前提条件,即需要有标注的训练样本。标注数据会告诉模型,“对这条数据,输入 x 后,我想要结果 y”。模型会根据要求,使用梯度下降法或其他求解方式,不断调整自身参数,使输出 y^' 尽可能接近标注 y。这类学习统称为有监督学习。标注 y 就是监督信号(也称为教师信号),用于告诉模型数据 x 所对应的正确类别 y。在企业中,标注数据的来源一般是人工标注,以及收集的用户反馈信息。

不过,现实很“残忍”。在互联网时代,企业每天都会产生海量的数据,人工标注的速度不可能赶上数据产生的速度。这就意味着大部分数据缺少人工标注,无法用于有监督学习。尽管我们可以通过收集日志的方法(例如收集用户点击日志或其他用户行为信息)获取有标注的训练样本,但这其实是把标注任务“外包”给了用户,用户获得的“报酬”是免费使用产品。

日志法固然好,但有局限性,例如产品刚上线时没有日志数据可用。另外,需要考虑作弊因素,即被注入的无效数据(这会导致训练样本不准确,训练出来的模型效果不好)。还有一些分类需求,用户需要的是分类结果,但不会提供标注数据,例如资讯类App需要把新闻等文章放入不同的频道以提供给不同的用户,这时就无法利用用户信息了。还有一些场景,例如图像识别、语音识别,标注数据尤其昂贵,甚至催生出一条数据产业链,诞生了不少知名公司。

面对没有标注数据可用的现状,算法工程师们只能感叹“巧妇难为无米之炊”。然而,绝望往往是滋生希望的土壤,针对大量的无标注数据,出现了一系列专门处理这类问题的模型。这些模型不需要使用标注数据(也就是说,只需要 x,不需要 y),而是利用数据自身的分布特点、相对位置来完成分类。这类模型称为无监督学习(y 可以理解成监督信号)或自组织模型。

下面我们从常用的无监督模型K-Means开始探讨无监督学习。

6.1 K-Means聚类

6.1.1 K-Means算法的基本原理

有一批无标注数据,数据点在空间中的分布,如图6-1所示。我们现在希望利用这些数据自身的分布特点自动进行聚类。在这里使用了一种朴素的思想:如果两个数据点的距离比较近,那么它们的类别就应该是一样的。同理,如果一堆数据点彼此接近,那么它们的类别也应该是一样的。于是,将这堆数据点的质心作为这个类别的代表,如图6-2所示。

图6-1

图6-2

需要注意的是:质心点在大部分情况下不是一个真实的数据点。

下面讨论一下如何使用以上朴素的思想对数据进行自动聚类。在无监督学习中,一般可以根据过往经验(拍脑袋)设置一个类别数 K(表示我们希望这堆数据中有多少个类簇)。在训练数据中随机挑选 K=3 个点作为各个类簇的质心,如图6-3所示。对剩下的数据点,分别计算它们和这3个类簇的质心之间的距离。在这里采用欧氏距离,每个点都将归入与它距离最近的类别,如图6-4所示。

图6-3

图6-4

对每个类别来说,一开始质心都是随机挑选的。现在,每个类别都有了一堆数据。对每一类数据的所有点求平均值,将平均值作为新的质心,会产生 K=3 个新的质心,如图6-5所示。

图6-5

定义损失函数 Loss=∑_(i=1)^K▒∑_(x_((j))∈cluster_i)▒〖||x_((j)),μ_i ||〗。K 为类簇数。μ_1~μ_K 表示各类簇的

质心。Loss 的含义是所有数据点 x_((j)) 到它所属类簇的质心 μ_i 的欧氏距离之和。模型训练过

程就是寻找最优的参数 μ_1~μ_K,使得 Loss 最小,而此时也能得到 x_((j)) 所属的类簇。但是,

x_((j))∈cluster_i 的出现将导致 Loss 是一个不连续函数,所以无法直接求解 ∂Loss/(∂μ_i )。不过,我们

可以使用EM算法(Expectation-Maximization Algorithm)来学习 μ_1~μ_K,步骤如下。

 根据经验和业务特点设置类簇数 K,即在所有数据中随机选择 K 个点作为质心 μ_1~μ_K。

 对数据点进行分类,使训练数据中的每个样本都归入与其距离最近的质心所代表的类

别。对于训练样本 x_((j)),其类别为 k=〖arg ( min)┬i〗⁡〖||x_((j)),μ_i ||〗,即 x_((j))∈cluster_k。

 对于类别 i(i=1,⋯,K),用第步的分类结果重新计算质心,也就是求每个类别中样本的平均值,公式如下。

μ_i=1/N_i ∑_(x_((j))∈cluster_i)▒x_((j))

N_i 为归入 cluster_i 的样本数量。

 对以下3个条件进行判断。如果其中任何一个被满足,就可以结束聚类。否则,返回第步。

没有(或最小数目)对象被重新分配给不同的聚类。

没有(或最小数目)聚类中心再发生变化。

Loss=∑_(i=1)^K▒∑_(x_((j))∈cluster_i)▒〖||x_((j)),μ_i ||〗 足够小。

聚类完成后,训练样本中的每个数据点 x_((j)) 都将有一个明确的类别 i(i=1,2,⋯,K)。质心 μ_1~μ_K 用于对非训练样本中的数据进行预测。一个数据点和哪个质心的距离最近,它就属于哪一类,即

k=〖arg min┬i〗⁡〖||x,μ_i ||〗

也就是 x∈cluster_k。

K 是一个超参数,是通过我们的经验设置的。K 越大,分类就越精细;K 越小,分类就越粗糙。上述方法称为K-Means,“K”代表设置的类别数,“Means”(均值)表示在以上第步求质心时使用的

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值