0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习算法的无监督学习的详细介绍

lviY_AI_shequ 来源:未知 作者:易水寒 2018-05-01 17:43 次阅读

‍‍‍‍Content:

9.1 Supervised Learning and Unsupervised Learning

9.2 K-means algorithm

9.3 Optimization objective

9.4 Random Initialization

9.5 Choosing the Number of Clusters

9.1 Supervised Learning and Unsupervised Learning

我们已经学习了许多机器学习算法,包括线性回归,Logistic回归,神经网络以及支持向量机。这些算法都有一个共同点,即给出的训练样本自身带有标记。比如,使用线性回归预测房价时,我们所使用的每一个训练样本是一个或多个变量(如面积,楼层等)以及自身带有的标记即房价。而使用Logistic回归,神经网络和支持向量机处理分类问题时,也是利用训练样本自身带有标记即种类,例如进行垃圾邮件分类时是利用已有的垃圾邮件(标记为1)和非垃圾邮件(标记为0),进行数字识别时,变量是每个像素点的值,而标记是数字本身的值。我们把使用带有标记的训练样本进行学习的算法称为监督学习(Supervised Learning)。监督学习的训练样本可以统一成如下形式,其中x为变量,y为标记。

显然,现实生活中不是所有数据都带有标记(或者说标记是未知的)。所以我们需要对无标记的训练样本进行学习,来揭示数据的内在性质及规律。我们把这种学习称为无监督学习(Unsupervised Learning)。所以,无监督学习的训练样本如下形式,它仅包含特征量。

图9-1形象的表示了监督学习与无监督学习的区别。图(1)表示给带标记的样本进行分类,分界线两边为不同的类(一类为圈,另一类为叉);图(2)是基于变量x1和x2对无标记的样本(表面上看起来都是圈)进行聚类(Clustering)。

机器学习算法的无监督学习的详细介绍

图9-1 一个监督学习与无监督学习的区别实例

无监督学习也有很多应用,一个聚类的例子是:对于收集到的论文,根据每个论文的特征量如词频,句子长,页数等进行分组。聚类还有许多其它应用,如图9-2所示。一个非聚类的例子是鸡尾酒会算法,即从带有噪音的数据中找到有效数据(信息),例如在嘈杂的鸡尾酒会你仍然可以注意到有人叫你。所以鸡尾酒会算法可以用于语音识别(详见wikipedia)。

quora上有更多关于监督学习与无监督学习之间的区别的讨论。

机器学习算法的无监督学习的详细介绍

图9-2 一些聚类的应用

9.2 K-means algorithm

聚类的基本思想是将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个"簇"(cluster)。划分后,每个簇可能有对应的概念(性质),比如根据页数,句长等特征量给论文做簇数为2的聚类,可能得到一个大部分是包含硕士毕业论文的簇,另一个大部分是包含学士毕业论文的簇。

K均值(K-means)算法是一个广泛使用的用于簇划分的算法。下面说明K均值算法的步骤:

随机初始化K个样本(点),称之为簇中心(cluster centroids);

簇分配: 对于所有的样本,将其分配给离它最近的簇中心;

移动簇中心:对于每一个簇,计算属于该簇的所有样本的平均值,移动簇中心到平均值处;

重复步骤2和3,直到找到我们想要的簇(即优化目标,详解下节9.3)

图9-3演示了以特征量个数和簇数K均为2的情况。

机器学习算法的无监督学习的详细介绍

图9-3 K均值算法的演示

通过上述描述,下面我们形式化K均值算法。

输入:

K (number of clusters)

Training set

算法:

Randomly initialize K cluster centroids

Repeat {

for i = 1 to m

for k = 1 to K

}

上述算法中,第一个循环对应了簇分配的步骤:我们构造向量c,使得c(i)的值等于x(i)所属簇的索引,即离x(i)最近簇中心的索引。用数学的方式表示如下:

第二个循环对应移动簇中心的步骤,即移动簇中心到该簇的平均值处。更数学的方式表示如下:

其中

如果有一个簇中心没有分配到一个样本,我们既可以重新初始化这个簇中心,也可以直接将其去除。

经过若干次迭代后,该算法将会收敛,也就是继续迭代不会再影响簇的情况。

在某些应用中,样本可能比较连续,看起来没有明显的簇划分,但是我们还是可以用K均值算法将样本分为K个子集供参考。例如根据人的身高和体重划分T恤的大小码,如图9-4所示。

图9-4K-means for non-separated clusters

9.3 Optimization objective

重新描述在K均值算法中使用的变量:

使用这些变量,定义我们的cost function如下:

所以我们的优化目标就是

结合9.2节所描述的算法,可以发现:

在簇分配步骤中,我们的目标是通过改变

在移动簇中心步骤中,我们的目标通过改变

注意,在K均值算法中,cost function不可能能增加,它应该总是下降的(区别于梯度下降法)。

9.4 Random Initialization

下面介绍一种值得推荐的初始化簇中心的方法。

确保K < m,也就是确保簇的数量应该小于样本数;

随机选择K个训练样本;

令K个簇中心

K均值算法可能陷入局部最优。为了减少这种情况的发生,我们可以基于随机初始化,多次运行K均值算法。所以,算法变成如下形式(以运行100次为例:效率与准确性的tradeoff)

For i = 1 to 100 {

Randomly initialize K-means.

Run K-means. Get

Compute cost function (distortion)

}

Pick clustering that gave lowest cost

9.5 Choosing the Number of Clusters

选择K的取值通常是主观的,不明确的。也就是没有一种方式确保K的某个取值一定优于其他取值。但是,有一些方法可供参考。

The elbow method: 画出代价J关于簇数K的函数图,J值应该随着K的增加而减小,然后趋于平缓,选择当J开始趋于平衡时的K的取值。如图9-5的(1)所示。

但是,通常这条曲线是渐变的,没有很显然的"肘部"。如图9-5的(2)所示。

机器学习算法的无监督学习的详细介绍

图9-5 代价J关于簇数K的曲线图

注意:随着K的增加J应该总是减少的,否则,一种出错情况可能是K均值陷入了一个糟糕的局部最优。

一些其他的方法参见wikipedia。

当然,我们有时应该根据后续目的( later/downstream purpose )来确定K的取值。还是以根据人的身高和体重划分T恤的大小码为例,若我们想将T恤大小划分为S/M/L这3种类型,那么K的取值应为3;若想要划分为XS/S/M/L/XL这5种类型,那么K的取值应为5。如图9-6所示。

机器学习算法的无监督学习的详细介绍

图9-6 划分T恤size的两种不同情况

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:Stanford机器学习笔记-9. 聚类(Clustering)

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于transformer和自监督学习的路面异常检测方法分享

    铺设异常检测可以帮助减少数据存储、传输、标记和处理的压力。本论文描述了一种基于Transformer和自监督学习的新方法,有助于定位异常区域。
    的头像 发表于 12-06 14:57 808次阅读
    基于transformer和自<b class='flag-5'>监督学习</b>的路面异常检测方法分享

    全面总结机器学习中的优化算法

    几乎所有的机器学习算法最后都归结为求一个目标函数的极值,即最优化问题,例如对于有监督学习,我们要找到一个最佳的映射函数f (x),使得对训练样本的损失函数最小化(最小化经验风险或结构风
    发表于 11-02 10:18 271次阅读
    全面总结<b class='flag-5'>机器</b><b class='flag-5'>学习</b>中的优化<b class='flag-5'>算法</b>

    深度学习的由来 深度学习的经典算法有哪些

    深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的
    发表于 10-09 10:23 364次阅读
    深度<b class='flag-5'>学习</b>的由来 深度<b class='flag-5'>学习</b>的经典<b class='flag-5'>算法</b>有哪些

    机器学习模型类型分类

     机器学习按照模型类型分为监督学习模型、无监督学习模型两大类。 1. 有监督学习监督学习通常
    的头像 发表于 09-05 11:45 1350次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型类型分类

    适用于任意数据模态的自监督学习数据增强技术

    本文提出了一种适用于任意数据模态的自监督学习数据增强技术。   自监督学习算法在自然语言处理、计算机视觉等领域取得了重大进展。这些自监督学习算法
    的头像 发表于 09-04 10:07 786次阅读
    适用于任意数据模态的自<b class='flag-5'>监督学习</b>数据增强技术

    机器学习有哪些算法机器学习分类算法有哪些?机器学习预判有哪些算法

    有许多不同的类型和应用。根据机器学习的任务类型,可以将其分为几种不同的算法类型。本文将介绍机器学习
    的头像 发表于 08-17 16:30 1400次阅读

    机器学习算法入门 机器学习算法介绍 机器学习算法对比

    机器学习算法入门 机器学习算法介绍
    的头像 发表于 08-17 16:27 630次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器
    的头像 发表于 08-17 16:11 1087次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    是解决具体问题的一系列步骤,机器学习算法被设计用于从大量的数据中自动学习并不断改进自身的性能。本文将为大家介绍
    的头像 发表于 08-17 16:11 727次阅读

    机器学习算法的5种基本算子

    自主决策的方法和插件,其中包含了一系列常用的基本算子。在本文中,我们将会介绍机器学习算法的五种基本算子。 一、 求值算子 求值算子是常用的机器
    的头像 发表于 08-17 16:11 1342次阅读

    机器学习和深度学习的区别

    的区别。 1. 机器学习 机器学习是指通过数据使机器能够自动地学习和改进性能的
    的头像 发表于 08-17 16:11 3389次阅读

    深度学习框架和深度学习算法教程

    了基于神经网络的机器学习方法。 深度学习算法可以分为两大类:监督学习和无监督学习
    的头像 发表于 08-17 16:11 723次阅读

    从浅层到深层神经网络:概览深度学习优化算法

    优化算法一直以来是机器学习能根据数据学到知识的核心技术。而好的优化算法可以大大提高学习速度,加快算法
    的头像 发表于 06-15 11:20 433次阅读
    从浅层到深层神经网络:概览深度<b class='flag-5'>学习</b>优化<b class='flag-5'>算法</b>

    精通机器学习之MATLAB分步实施指南

    本电子书建立在使用 MATLAB 进行机器学习 的基础上,后者回顾了机 器学习基础知识,并介绍监督和无
    发表于 05-29 09:14 0次下载

    机器学习步骤详解,一文了解全过程

    调整,使其生成正确的输出。在其他情况下,则实行无监督学习,由系统负责梳理数据来发现以前未知的模式。大多数机器学习模型都是遵循这两种范式(监督学习与无
    的头像 发表于 05-16 09:55 4177次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>步骤详解,一文了解全过程