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,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    、GPU加速训练(可选) 双轨教学:传统视觉算法+深度学习方案全覆盖 轻量化部署:8.6M超轻OCR模型,适合嵌入式设备集成 监督学习:无需缺陷样本即可训练高精度检测模型 持续更新:
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战可(11大系列课程,共5000+分钟)

    学习模型DLL 硬件联动:支持工业相机硬触发、GPU加速训练(可选) 双轨教学:传统视觉算法+深度学习方案全覆盖 轻量化部署:8.6M超轻OCR模型,适合嵌入式设备集成
    发表于 12-03 13:50

    自动驾驶中常提的“强化学习”是个啥?

    下,就是一个智能体在环境里行动,它能观察到环境的一些信息,并做出一个动作,然后环境会给出一个反馈(奖励或惩罚),智能体的目标是把长期得到的奖励累积到最大。和监督学习不同,强化学习没有一一对应的“正确答案”给它看,而是靠与环境交互、自我探索来发现
    的头像 发表于 10-23 09:00 331次阅读
    自动驾驶中常提的“强化<b class='flag-5'>学习</b>”是个啥?

    PID控制算法学习笔记资料

    用于新手学习PID控制算法
    发表于 08-12 16:22 7次下载

    FPGA在机器学习中的具体应用

    ,越来越多地被应用于机器学习任务中。本文将探讨 FPGA 在机器学习中的应用,特别是在加速神经网络推理、优化算法和提升处理效率方面的优势。
    的头像 发表于 07-16 15:34 2638次阅读

    任正非说 AI已经确定是第四次工业革命 那么如何从容地加入进来呢?

    的基本理论。了解监督学习监督学习和强化学习的基本原理。例如,在监督学习中,理解如何通过标注数据来训练模型进行分类或回归任务,像通过大量的
    发表于 07-08 17:44

    机器学习异常检测实战:用Isolation Forest快速构建标签异常检测系统

    本文转自:DeepHubIMBA监督异常检测作为机器学习领域的重要分支,专门用于在缺乏标记数据的环境中识别异常事件。本文深入探讨异常检测技术的理论基础与实践应用,通过Isolatio
    的头像 发表于 06-24 11:40 1203次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>异常检测实战:用Isolation Forest快速构建<b class='flag-5'>无</b>标签异常检测系统

    使用MATLAB进行监督学习

    监督学习是一种根据未标注数据进行推断的机器学习方法。监督学习旨在识别数据中隐藏的模式和关系,
    的头像 发表于 05-16 14:48 1183次阅读
    使用MATLAB进行<b class='flag-5'>无</b><b class='flag-5'>监督学习</b>

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    : 一、机器人视觉:从理论到实践 第7章详细介绍了ROS2在机器视觉领域的应用,涵盖了相机标定、OpenCV集成、视觉巡线、二维码识别以及深度学习
    发表于 05-03 19:41

    请问STM32部署机器学习算法硬件至少要使用哪个系列的芯片?

    STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
    发表于 03-13 07:34

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场
    的头像 发表于 02-13 09:39 627次阅读

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件与开发
    的头像 发表于 01-25 17:05 1215次阅读
    嵌入式<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的应用特性与软件开发环境

    华为云 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    前言 由于本人最近在学习一些机器算法,AI 算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云 Flexus X 实例上安装了
    的头像 发表于 01-02 13:43 867次阅读
    华为云 Flexus X 实例部署安装 Jupyter Notebook,<b class='flag-5'>学习</b> AI,<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多
    的头像 发表于 12-30 09:16 1982次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 701次阅读