什么是无监督学习?

顾名思义,无监督学习就是不受监督的学习。同监督学习建立在人类标注数据的基础上不同,无监督学习不需要人类进行数据标注,而是通过模型不断地自我认知、自我巩固,最后进行自我归纳来实现其学习过程。虽然目前无监督学习的使用不如监督学习广泛,但这种独特的方法论为机器学习的未来发展方向给出了很多启发和可能性,正在引起越来越多的关注。2015年,深度学习“三巨头”——YannLeCun、Yoshua Bengio、Geoffrey Hinton首次合作在Nature上撰文,在对深度学习未来展望写道:“无监督学习对于重新点燃深度学习的热潮起到了促进作用,我们期望无监督学习在长期内越来越重要,使我们能够通过观察发现世界的内在结构,而不是被告知每一个客观事物的名称。”
同监督学习相比,无监督学习具有很多明显优势,其中最重要的一点是不再需要大量的标注数据。如今,以深度学习为代表的机器学习模型往往需要在大型监督型数据集上进行训练,即每个样本都有一个对应的标签。比如,目前在图像分类任务当中被普遍使用的ImageNet数据集有一百多万张人为标记的图像,共分为1000类。而近期谷歌公司更是表示要着手建立10亿级别的数据集。很显然,要创建如此规模的数据集需要花费大量的人力、物力和财力,同时也需要消耗大量的时间。正因为无监督学习的重要意义,Yann LeCun有一个非常著名的比喻:“假设机器学习是一个蛋糕,强化学习是蛋糕上的一粒樱桃,监督学习是外面的一层糖衣,那么无监督学习才是蛋糕的糕体。”
我们可以用一个简单的例子来理解无监督学习。设想我们有一批照片,其中包含着不同颜色的几何形状。但是机器学习模型只能看到一张张照片,这些照片没有任何标记,也就是计算机并不知道几何形状的颜色和外形。我们通过将数据输入到无监督学习的模型中去,算法可以尝试着理解图中的内容,并将相似的物体聚在一起。在理想情况下,机器学习模型(无监督学习)可以将不同形状、不同颜色的几何形状聚集到不同的类别中去,而特征提取和标签都是模型自己完成的
实际上,无监督学习更接近我们人类的学习方式。比如,一个婴儿在开始接触世界的时候,父母会拿着一张照片或者一只小猫告诉他这是“猫”。但是接下来在遇到不同的猫的照片或者猫的时候,父母并不会一直告诉他这是“猫”。婴儿会不断地自我发现、学习、调整自己对“猫”的认识,从而最终理解并认识什么是“猫”。相比之下,目前的监督学习算法则要求我们一次次反复地告诉机器学习模型设么是“猫”,也许要高达数万甚至数十万次。很显然,无监督学习的模式更加接近我们的学习方式。关于无监督学习的更多内容可以参考Christopher M. Bishop的《模式识别与机器学习》

一、聚类

聚类是无监督学习中最重要的一类算法。在聚类算法中,训练样本的标记信息是未知的,给定一个由样本点组成的数据集,数据聚类的目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,将样本点划分成若干类,使得属于同一类的样本点非常相似,而属于不同类的样本点不相似。需要说明的是,这些概念对聚类算法事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。聚类既能作为一个单独过程用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程,为进一步的数据分析提供基础。数据聚类在各科学领域的数据分析中扮演者重要角色,如计算机科学、医学、社会科学和经济学等。
简单来说,聚类是将样本集分为若干互不相交的子集,即样本簇。聚类算法的目标是使同一簇的样本尽可能彼此相似,即具有较高的类内相似度(intra-cluster similarity);同时不同簇的样本尽可能不同,即簇间的相似度(inter-cluster similarity)低。自机器学习诞生以来,研究者针对不同的问题提出了多种聚类方法,其中最为广泛使用的是K-均值算法
K-均值算法无论是思想还是实现都比较简单。对于给定样本集合,K-均值算法的目标是使得聚类簇内的平方误差最小化,即:

其中,K是认为指定的簇的数量,μi是簇Ci的均值向量,X是对应的样本特征向量。直观来看,这个误差刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。K-均值算法的求解通常采用贪心策略,通过迭代方法实现。算法首先随机选择K个向量作为初始均值向量,然后进行迭代过程,根据均值向量将样本划分到距离最近的均值向量所在的簇中,划分完成后更新均值向量直到迭代完成。
K-均值算法时间复杂度近于线性,适合挖掘大规模数据集。但是,由于损失函数是非凸函数,意味着不能保证取得的最小值是全局最小值。在通常的实际应用中,K-Means达到的局部最优已经满足需求。如果局部最优无法满足性能需要,简单的方法是通过不同的初始值来实现。
需要指出的是,K-Means算法对参数的选择比较敏感,也就是说不同的初始位置或者类别数量的选择往往会导致完全不同的结果。

如图7.7所示,当指定K-Means算法的簇的数量K=2后,如果选取不同的初始位置,实际上我们会得到不同的聚类结果。而在图7.8中可以看到,当簇的数量K=4,我们同样会得到不同的聚类结果。对比图7.7和图7.8会发现,当设置不同的聚类参数K时,机器学习算法也会得到不同的结果。而很多情况下,我们无法事先预知样本的分布,最优参数的选择通常也非常困难,这就意味着算法得到的结果可能和我们的预期会有很大不同,这时候往往需要通过设置不同的模型参数和初始位置来实现,从而给模型学习带来很大的不确定性。

二、自编码器

自编码器是利用神经网络实现无监督学习的一种典型方式,包括编码器和解码器两个典型部分。输入数据经过隐层的编码和解码到达输出层时,使输出的结果尽量与输入数据保持一致。经过训练后,自编码器能尝试将输入复制到输出。如图7.9所示,我们通过编码器将输入的样本映射到一个特征空间上得到样本的隐藏特征表达,进而通过解码器将该特征向量进行解码。这样做的好处是隐层能够抓住输入数据的特点,使其特征保持不变。但是,如果只是简单的复制,这个过程实际上没有任何的应用价值。在实际过程中,我们需要设计相应的约束和损失函数来决定数据的哪些部分需要被优先复制,从而学习到数据当中的有用特征。

目前,自编码器的应用主要有两个方面。
一是数据去噪,即通过自编码器将原图像当中的噪声去除。该方法通过引入合适的损失函数,使得模型可以学习到在受损的输入情况下依然可以获得良好特征表达的能力,进而恢复对应的无噪声输入。
二是数据降维,即通过对隐特征加上适当的维度和稀疏性约束,使得自编码器可以学习到低维的数据投影。例如,假设输入层有100个神经元、隐层只有50个神经元、输出层有100个神经元,通过自编码器算法,我们只用隐含层的50个神经元就找到了100个输入层数据的特点,能够保证输出数据和输入数据大体一致,从而实现降维目标。
目前,自编码器已被成功应用于降维和信息检索等任务当中。

机器学习(3)——无监督学习相关推荐

  1. 【机器学习】无监督学习

    [机器学习]无监督学习 https://mp.weixin.qq.com/s/NV84o6Jd_z8evjq05n2jzA 作者:水奈樾  人工智能爱好者 博客专栏:http://www.cnblog ...

  2. 机器学习算法--无监督学习--聚类

    机器学习算法–无监督学习–聚类 一.原型聚类 特点:需要预先指定簇的个数K 1.K-Means Python实现K-Means算法: Python实现K-Means算法 原理:从数据集中选择K个样本作 ...

  3. 机器学习之无监督学习——聚类

    机器学习之无监督学习--聚类 无监督学习 一.基于划分的聚类方法 1.基于划分的方法 简介 A.概念 B.分组 C.分组与样本 对应关系 D.硬聚类 与 软聚类 二.基于层次的聚类方法 1.基于层次的 ...

  4. 机器学习之无监督学习-K均值聚类算法

    机器学习之无监督学习-K均值聚类算法 对于无监督学习,有两类重要的应用,一个是聚类,一个是降维.我们今天主要学习聚类中的K均值聚类. 我们先看看下图,图a为原始的数据点,我们想要对图a的数据点进行分类 ...

  5. Python 机器学习实战 —— 无监督学习(下)

    前言 在上篇< Python 机器学习实战 -- 无监督学习(上)>介绍了数据集变换中最常见的 PCA 主成分分析.NMF 非负矩阵分解等无监督模型,举例说明使用使用非监督模型对多维度特征 ...

  6. Python 机器学习实战 —— 无监督学习(上)

    ​​​ 前言 在上篇<Python 机器学习实战 -- 监督学习>介绍了 支持向量机.k近邻.朴素贝叶斯分类 .决策树.决策树集成等多种模型,这篇文章将为大家介绍一下无监督学习的使用. 无 ...

  7. 吴恩达机器学习笔记-无监督学习

    机器学习-无监督学习 一.什么是无监督学习 二.聚类算法(无监督学习) 1.聚类算法的应用 2.K-Means算法 算法流程--图例 算法流程--文字描述 K-means分离不佳簇问题 K-means ...

  8. 【机器学习应用】机器学习之无监督学习

    一.什么是无监督学习 所谓无监督学习,指的并不是现实中没人看管的学习方式,而是指利用无标签的数据学习数据的分布或者数据之间的关系.这个定义的关键在于理解什么是标签,理解无监督学习不如先看一下有监督学习 ...

  9. 机器学习应用——无监督学习(实例:31省市居民家庭消费调查学生上网时间分布聚类鸢尾花数据人脸数据特征提取)

    前言 机器学习应用博客中,将核心介绍三大类学习,即:无监督学习.监督学习.强化学习. 本篇将简要介绍: 1.无监督学习概念(最常应用场景:聚类(clustering)和降维(Dimension Red ...

  10. encoder decoder模型_机器学习11 -- 无监督学习之Auto-Encoder

    1 什么是Auto-Encoder 自编码器Auto-Encoder是无监督学习的一种方式,可以用来做降维.特征提取等.它包括两部分 Encoder:对原始样本进行编码 Decoder:对经过编码后的 ...

最新文章

  1. slot没有毁灭的问题_解析flink之perjob模式下yn参数不生效问题
  2. jquery的each()详细介绍
  3. angular创建组件命令
  4. 画图软件怎么做性能测试,软件性能测试能力提升解决方案.pdf
  5. 新的log4j2.xml
  6. 学会学习比学习什么更重要
  7. mongodb之索引使用小结
  8. Webpack 实现 Tree shaking 的前世今生
  9. Android Adapter中的getView缓存失效
  10. 今天,一起吐槽容器镜像中那些让人一言难尽的事情
  11. 一键清理系统.bat
  12. 余世维+金正昆+陈安之+曾仕强+张锦贵等资料集
  13. 空气质量模型:操作指南与案例研究(模型概述)
  14. SpringBoot sha 加密
  15. 《艺技回忆录》 ——观《达芬奇的人生密码》有感
  16. scratch 编程 + 小学数学
  17. 《别做正常的傻瓜》的一些读书心得
  18. 字节跳动全链路压测(Rhino)的实践
  19. 面试时,如何正确表现自己的实力?
  20. 浪漫表白c语言程序玫瑰,c语言玫瑰告白代码

热门文章

  1. 深度学习中的图像增强
  2. Android9中cache分区作用,清除cache分区是什么意思?
  3. 微软官方安装U盘启动盘制作方法教程
  4. Arduino蓝牙遥控小车
  5. iframe vue 宽度_vue 如何自适应调整嵌入的 iframe 的大小,让用户完全感觉不出有 iframe 这个东西?...
  6. 智慧城市背景下的“多规合一”标准探究
  7. iOS 一一 触摸事件和手势
  8. Terracotta学习文档
  9. C程序设计语言第二版·新版,C程序设计语言(第2版·新版) PDF扫描版[19MB]
  10. redis 配置文件( IP、端口、密码等信息)