查看原文
其他

什么是无监督学习?

点击上方“MLNLP”,选择“星标”公众号

重磅干货,第一时间送达

来自 | 知乎

地址 | https://www.zhihu.com/question/23194489

编辑 | 机器学习算法与自然语言处理

本文仅作学术分享,若侵权,请联系后台删文处理


什么是无监督学习?


最好举出常见的 有监督学习 和 无监督学习 的算法



王丰



https://www.zhihu.com/question/23194489/answer/25028661


这个问题可以回答得很简单:是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。

但根据知乎惯例,答案还是要继续扩展的。


首先看什么是学习(learning)?一个成语就可概括:举一反三。此处以高考为例,高考的题目在上考场前我们未必做过,但在高中三年我们做过很多很多题目,懂解题方法,因此考场上面对陌生问题也可以算出答案。机器学习的思路也类似:我们能不能利用一些训练数据(已经做过的题),使机器能够利用它们(解题方法)分析未知数据(高考的题目)?


最简单也最普遍的一类机器学习算法就是分类(classification)。对于分类,输入的训练数据有特征(feature),有标签(label)。所谓的学习,其本质就是找到特征和标签间的关系(mapping)。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签。


在上述的分类过程中,如果所有训练数据都有标签,则为有监督学习(supervised learning)。如果数据没有标签,显然就是无监督学习(unsupervised learning)了,也即聚类(clustering)。


目前分类算法的效果还是不错的,但相对来讲,聚类算法就有些惨不忍睹了。确实,无监督学习本身的特点使其难以得到如分类一样近乎完美的结果。这也正如我们在高中做题,答案(标签)是非常重要的,假设两个完全相同的人进入高中,一个正常学习,另一人做的所有题目都没有答案,那么想必第一个人高考会发挥更好,第二个人会发疯。


这时各位可能要问,既然分类如此之好,聚类如此之不靠谱,那为何我们还可以容忍聚类的存在?因为在实际应用中,标签的获取常常需要极大的人工工作量,有时甚至非常困难。例如在自然语言处理(NLP)中,Penn Chinese Treebank在2年里只完成了4000句话的标签……




这时有人可能会想,难道有监督学习和无监督学习就是非黑即白的关系吗?有没有灰呢?Good idea。灰是存在的。二者的中间带就是半监督学习(semi-supervised learning)。对于半监督学习,其训练数据的一部分是有标签的,另一部分没有标签,而没标签数据的数量常常极大于有标签数据数量(这也是符合现实情况的)。隐藏在半监督学习下的基本规律在于:数据的分布必然不是完全随机的,通过一些有标签数据的局部特征,以及更多没标签数据的整体分布,就可以得到可以接受甚至是非常好的分类结果。(此处大量忽略细节)


因此,learning家族的整体构造是这样的:
有监督学习(分类,回归)

半监督学习(分类,回归),transductive learning(分类,回归)

半监督聚类(有标签数据的标签不是确定的,类似于:肯定不是xxx,很可能是yyy)

无监督学习(聚类)


参考文献:
[1] 各种教材
[2] Semi-Supervised Learning Tutorial, http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf‎





溪亭日暮


新工科联盟人工智能协同育人工委会 副秘书长

https://www.zhihu.com/question/23194489/answer/915228538


“监督”的意思,可以“简单粗暴”地理解为“是否有标注的数据”。这里尝试从科普的角度来解释,无监督学习产生的原理和它与有监督学习的区别何在(技术大牛请忽略此文)。

一、“无监督学习”不是告诉计算机怎么做,而是让机器自己【去学习】怎样做。

妈妈给小朋友看一张狗狗的图片A,当他再看到狗狗图片B时,小朋友通常会兴奋地伸出食指喊:“这也是一只狗!”。而如果将A图片输入一台智能机器,告诉机器这是一只狗,那么在输入B时,机器很可能认不出来了(手动摊手)。



这个残酷的现实告诉我们:机器无法像人脑一样快速认知“狗”的概念,即使我们让机器看过狗狗A,它也没有办法推论出狗狗B也是“狗”——因为机器没有“人类智慧”。


为什么小朋友不到一秒中就能准确识别出不同类型的狗,但机器却不能呢?因为人的大脑极其复杂,我们只能将其抽象成某些算法,比如:神经网络、贝叶斯、决策树和聚类算法等等。


所以,让机器具备人工智能的前提,需要我们用一定量的数据集对机器进行“训练”。


如果机器能够根据一些狗狗的图片(训练数据),推演识别出各种类型和状态(包括卡通狗狗)的狗狗的能力,我们就说这台机器被赋予了“智慧”,也就是具备了人工智能。



这个学习的过程,在人工智能术语里称为机器学习。机器学习种类包含:监督学习(supervised Learning)、半监督学习(Semi-supervised learning)、增强学习(reinforcement learning)、无监督学习(unsupervisedlearning)。


二、无监督学习常用法——聚类:把相似的东西聚在一起,而我们并不关心这一类是什么


是否有“标注”的数据,是区分几种不同学习的关键因素之一。无监督学习即没有标注的训练数据集,需要根据样本间的统计规律对样本集进行分析,常见任务如聚类等。


所以,无监督学习常常被用于数据挖掘,用于在大量无标签数据中发现些什么。它的训练数据是无标签的,训练目标是能对观察值进行分类或者区分等。例如无监督学习应该能在不给任何额外提示的情况下,仅依据一定数量的“狗”的图片特征,将“狗”的图片从大量的各种各样的图片中将区分出来。



常用的无监督学习算法主要有三种:聚类、离散点检测和降维,包括主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法和局部切空间排列方法等。从原理上来说,PCA等数据降维算法同样适用于深度学习,但是这些数据降维方法复杂度较高,所以现在深度学习中采用的无监督学习方法通常采用较为简单的算法和直观的评价标准。比如无监督学习中最常用的方法——聚类。


聚类,就是将观察值聚成一个一个的组,每一个组都含有一个或者几个特征。


可以想象,恰当地提取特征是无监督最为关键的环节。在狗的识别中,我们来尝试提取狗的特征:皮毛、四肢、耳朵、眼睛、胡须、牙齿、舌头等等。通过对特征相同的动物的聚类,可以将狗或者犬科动物聚成一类。在学习之前,机器不知道这群毛茸茸的东西是什么,只知道,这团东西属于一类,大象不在这个类(鼻子不符合),飞机也不在这个类(有翅膀)。特征有效性直接决定着算法有效性。如果我们拿体重来聚类,而忽略体态特征,恐怕就很难区分出兔子和狗了。


聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。在无监督学习中,我们的数据没有附带任何标签,拿到的数据就是下图这样的:



如上图所见,有一系列点,却没有标签。又比如像下图这样的:



上面两张图的数据,看起来可以分成2个或3个分开的点集(称为簇),如果一个算法,能够找到上面两张图圈出的这些点集,就被称为聚类算法。


也就是说,在无监督学习中,我们需要将一系列无标签的训练数据,输入到一个算法中,然后我们告诉这个算法,快去为我们找找这个数据的内在结构给定数据。这时就需要某种算法帮助我们寻找一种结构。


聚类算法一般有五种方法,最主要的是划分方法和层次方法两种。划分聚类算法通过优化评价函数把数据集分割为K个部分,它需要K作为输入参数。典型的分割聚类算法有K-means算法,、K-medoids算法、CLARANS算法。


层次聚类由不同层次的分割聚类组成,层次之间的分割具有嵌套的关系。它不需要输入参数,这是它优于分割聚类算法的一个明显的优点,其缺点是终止条件必须具体指定。典型的分层聚类算法有BIRCH算法、DBSCAN算法和CURE算法等。


三、无监督学习与监督学习的区别 :

监督学习(supervised learning),是从给定的有标注的训练数据集中学习出一个函数(模型参数),当新的数据到来时可以根据这个函数预测结果。常见任务包括分类回归

1.分类



2. 回归



由上可以看到,监督学习的训练集要求包括输入输出,也可以说是特征和目标。


训练集中的目标是由人标注的。监督学习是最常见的分类(注意和聚类区分)问题,是通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。


最后,归纳一下无监督学习和有监督学习两者的区别:


1.  对训练集与测试样本的使用方式不同。监督学习目的在训练集中找规律,然后对测试样本运用这种规律。而无监督学习没有训练集,只有一组数据,在该组数据集内寻找规律。


2.  训练样本是否有标签。有监督学习的识别的结果表现在:给待识别数据加上了标签,因此训练样本集必须由带标签的样本组成。而无监督学习方法只有要分析的数据集的本身,预先没有什么标签。如果发现数据集呈现某种聚集性,则可按自然的聚集性分类,但不予以某种预先分类标签对上号为目的。


3.  无监督学习方法在寻找数据集中的规律性,这种规律性并不一定要达到划分数据集的目的,也就是说不一定要“分类”。比如,一组颜色各异的积木,它可以按形状为维度来分类,也可以按颜色为维度来分类。(这一点比监督学习方法的用途要广。如分析一堆数据的主分量,或分析数据集有什么特点都可以归于无监督学习方法的范畴) ,而有监督学习则是通过已经有的有标签的数据集去训练得到一个最优模型。


Object classification: 目标分类Feature 1: 特征1Feature 2: 特征2


如上图,无监督学习不需要考虑颜色或形状就可以立即识别出两个类。事实上,圆点(以及三角形)确定了一个集合,不管集合内的点之间的分离程度如何,圆点所代表的集合很容易与三角形代表的集合分离开来。这就像是当理想的样本是海洋时,仅仅考虑岛屿之间的相互位置和内部联系就可以将海洋分成几个区域。


今天 ,无监督学习是人工智能领域非常重要的方法,Facebook人工智能团队首席科学家Yann LeCun认为,无监督学习是AI技术的未来,用模拟器将会提高无监督学习的效率。而谷歌首席科学家,谷歌大脑技术负责人Vincent Vanhoucke则说,半监督学习革命已经来了。





量子位


https://www.zhihu.com/question/23194489/answer/656338834


推荐一篇来自DeepMind的解读:



在过去十年中,机器学习在图像识别、自动驾驶汽车和围棋等领域取得了前所未有的进步。这些成功在很大程度上是靠监督学习和强化学习来实现的。

这两种方法都要求由人设计训练信号并传递给计算机。在监督学习的情况下,这些是“目标”(例如图像的正确标签); 在强化学习的情况下,它们是成功行为的“奖励”(例如在Atari游戏中获得高分)。因此,机器学习的极限是由人类训练师决定的。


但是学习知识还应该有其他的策略,就像让幼儿学习,不仅有指导(监督学习)和鼓励(强化学习),还应该有自由探索世界(无监督学习)。如果要让AI脱离人类发展成出通用智能,必须要让它掌握无监督学习的技能。

DeepMind今天在官方博客中对无监督学习的原理、近年来取得的成果、发展前景进行了综述。


无监督学习关键的特点是,传递给算法的数据在内部结构中非常丰富,而用于训练的目标和奖励非常稀少。无监督学习算法学到的大部分内容必须包括理解数据本身,而不是将这种理解应用于特定任务。


解码视觉元素


2012年是深度学习的里程碑,AlexNet席卷了ImageNet图像分类竞赛,但是更引人注目的是藏在AlexNet之下的事情。


研究人员在分析AlexNet时发现,它通过为输入构建复杂的内部表示来解释图像,低层次的特征,如纹理和边缘在底层中表示,然后将它们组合在一起形成高级概念,例如更高层次中的轮子和狗。





这与我们的大脑中处理信息的方式非常相似,其中初级感官处理区域中的简单边缘和纹理,然后组装成复杂对象。因此复杂场景的表示可以由“视觉基元”所构建,这种方式与单词构成句子大致相同。


在没有人类明确的指导的情况下,研究人员发现AlexNet的层可以通过基本的“视觉词汇”来解决任务。


迁移学习


AlexNet还可以被迁移到训练之外的视觉任务中,例如识别整个场景而不是单个图像。





人类就非常擅长这种学习方法,我们能迅速调整自己的经验,以适应新的技能和理解收集到的信息。例如,经过专业训练的钢琴家可以相对轻松地掌握弹奏爵士钢琴的方法。


理论上,构成世界正确内部表征的智能体应该能够做同样的事情。


但是AlexNet等分类器所学到的表示仍具有局限性,特别是网络只用单一类别标记图像训练时,那些推断标签时用不上的信息 ,无论它在其他任务中用处多大,都可能被网络所忽略。如果标签总是指向前景,则表示可能无法获取图像的背景。


一种可能的解决方案是提供更全面的训练信号,比如描述图像的详细内容,不单单把图像描述成“狗”,而是“柯基犬在阳光明媚的公园里叼飞盘”。


但是,这些信息很难大规模提供,而且这样做仍然有可能不足以捕获完成任务所需的全部信息。


无监督学习的基本前提是学习丰富、可广泛转移表示的最佳方式,这种方式可以学习关于数据的全部内容。


如果你觉得转移的概念看起来过于抽象,那么请想象一个学习简笔画的孩子。她发现了人体形态的特征。通过增加具体细节,她可以为她的所有同学绘制肖像,加上眼镜、红色T恤的同桌等等。


她发展出这项技能不是为了完成一项特定任务或获得奖励,而是为了反映她描绘周围世界的基本要求。


生成模型和GAN


无监督学习的最简单目标是训练算法生成自己的数据实例,但是模型不应该简单地重现之前训练的数据,否则就是简单的记忆行为。


它必须是建立一个从数据中的基础类模型。不是生成特定的马或彩虹照片,而是生成马和彩虹的图片集;不是来自特定发言者的特定话语,而是说出话语的一般分布。


生成模型的指导原则是,能够构建一个令人信服的数据示例是理解它的最有力证据。正如物理学家理查德·费曼所说:“我不能创造的东西,我就不能了解”(What I cannot create, I do not understand.)。


对于图像来说,迄今为止最成功的生成模型是生成对抗网络(GAN)。它由两个网络组成:一个生成器和一个鉴别器,分别负责伪造图片和识别真假。





生成器产生图像的目的是诱使鉴别者相信它们是真实的,同时,鉴别者会因为发现假图片而获得奖励。


GAN开始生成的图像是杂乱的和随机的,在许多次迭代中被细化,形成更加逼真的图像,甚至无法与真实照片区别开来。最近英伟达的GauGAN还能根据用户草图生成图片。


通过预测创建内容


无监督学习中另一个值得注意的成员是自回归模型,它把数据分成一系列小片段,每个片段依次被预测。这些模型可以通过连续猜测接下来会发生什么来作为输入,并能够再次生成猜测数据。


在语言模型中,每个单词都是从它之前的单词预测出来的。它能够支持在电子邮件和消息应用程序中弹出的文本预测内容。


最近OpenAI公布的GPT-2模型还能能够生成以假乱真的文字段落。





通过控制用于调节输出预测的输入序列,自回归模型也能用于将一个序列转换为另一个序列。例如将文本转换为逼真的手写体、自然的语音,还能将一种语言翻译成另一种语言。


自回归模型以预测特定顺序数据的方式来理解数据。通过预测任何其他数据的任何部分,可以构建更一般的无监督学习算法。


例如从句子中删除一个单词,并试图从剩余的内容中预测它。通过学习进行大量局部预测,系统被迫从整体上理解数据。


生成模型的出现让人们产生了一种担忧,就是它们可能被滥用。虽然通过照片、视频和音频编辑操纵证据历史已久,但生成模型让恶意编辑媒体内容变得更加容易。一个知名的“deepfakes”范例是奥巴马演讲视频片段。





令人鼓舞的是,人们已经做出了面对这些挑战的努力,包括利用统计技术帮助检测伪造内容和验证真实内容、提高公众意识、以及围绕限制生成模型使用范围展开讨论。


生成模型本身也能用在检测伪造内容和异常数据。例如,检测虚假语音或识别支付异常,保护客户免受欺诈。研究人员需要研究生成模型,以便更好地理解它们并降低风险。


实现通用智能


生成模型本身很吸引人,DeepMind的主要兴趣是用它作为通用智能的踏脚石。赋予智能体生成数据的能力是一种赋予其想象力的方式,从而能够规划和推理未来。


DeepMind的研究表明,即使没有明确的生成数据,学习预测环境的不同方面可以丰富智能体的世界模型,从而提高其解决问题的能力。



推荐阅读:


基于多任务自监督学习的文本顺滑研究

【PyTorch】优化器 torch.optim.Optimizer

基于Transformers+CNN/LSTM/GRU的文本分类

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存