什么监督学习,无监督学习与深度学习?它们之间有什么区别和联系? 原创
“ 监督学习,无监督学习与神经网络既有联系,又有区别”
在学习机器学习的过程中,监督学习,无监督学习和深度学习是我们经常碰到几个名词。但很多人弄明白它们之间的关系,也不知道它们都能解决什么问题。
01、什么是监督学习,无监督学习和深度学习?
机器学习是实现人工智能的一种方式,今天只从机器学习的角度来讨论监督学习,无监督学习和深度学习的关系。
简单来说,机器学习从学习方式来说,分为监督学习,无监督学习,半监督学习和强化学习。
深度学习也属于机器学习,只不过其是通过模仿人类神经元构造的神经网络模型,因为神经网络模型可以具有多层神经网络,因此又叫深度学习。
所以说,监督学习和无监督学习是两种不同的学习方法,而深度学习是一种实现机器学习的方式。
举例来说,监督学习相当于有老师教,老师会告诉你怎么学,什么是对的,什么是错的。而无监督学习相当于自学,没人告诉你应该怎么学,学成什么样。而深度学习就相当于是看书学习,还是看视频学习,还是讨论学习。
因此,深度学习即可以是监督学习,也可以是无监督学习;同样,监督学习和无监督学习即可以是深度学习,也可以不是深度学习。
什么是监督学习和无监督学习?
监督学习和无监督学习最直接的体现就是数据标注和学习目标的区别。
监督学习的特点是其训练数据需要进行标注,比如你想训练一个识别猫狗的模型;你就要告诉模型,哪些照片是猫,哪些照片是狗。比如,把猫的照片放到一个文件夹,狗的照片放一个文件夹,然后文件夹的名字就是猫和狗。
这样,文件夹的名字就是数据的标注/标签;而里面的照片就是训练数据。这就是监督学习,你要告诉它数据的标注是什么,然后模型就可以根据标签去提取照片特征,然后就知道了什么是猫,什么是狗。
无监督的特点就是不需要给数据标注,让它自己进行识别。比如,你弄了一堆猫狗的照片混合在一起,交给模型;这时模型会根据自己的算法去给照片进行分类。
这时,模型可能会把这些照片分成一类或多种类别,虽然模型也不知道这些类别是什么。比如,模型发现它们身上都有毛,并且都是四肢着地,这时就可能把它们归为有毛的一类。
模型也可能会发现,虽然它们身上都有毛并且四肢着地,但其中一种动物的嘴巴是长的,另一个是扁的。这时就可能会把它们分为两类。
所以,无监督学习的目标和监督学习不同;监督学习是有具体的学习目标,知道需要认出狗和猫。而无监督学习它不知道什么是猫,也不知道什么是狗,只知道根据数据的特点,做出自己的判断。
因此,监督学习和无监督学习的应用场景也不同。举个生活中的例子,比如你是班长,老师突然丢给你一堆学生的资料,然后让你按照性别把资料给分开,这就是监督学习。
而同样的老师丢给你一堆学生资料,然后让你整理一下,也没告诉你按什么标准整理。这时,你只能按照自己的经验,按性别分为一类,按住址分为一类,按照成绩,是否逃课等等标准进行分类,这种行为也叫做聚类。这时就需要用到无监督学习。
基于神经网络的监督学习代码如下:
上面两个例子很好的说明了监督学习和无监督学习的区别,一个目标明确知道自己该干什么,一个目标不明确,也不知道该干什么,只能根据自己的经验尽可能的把它弄好。
可能有人会有疑问,无监督学习这种情况也没有明确目标,那做的有什么意义呢?也不知道有没有用,不是在浪费时间吗?
例来说,互联网中每天都会产生巨大的数据量,这些数据中到底隐藏着什么东西,我们没人知道。而如果我们进行人工处理,这需要多大的工作量,哪怕是使用大数据技术去处理,这也只能根据我们人类的经验去对这些数据进行分门别类。
但如果交给无监督学习模型,它就会根据自己的算法,用它自己的方式去处理这些数据,这时就有可能会在我们人类想象不到的角度发现问题。就类似于小孩子,虽然他们的行为不受控制,并且出乎意料,但有时也会给我们带来意想不到的惊喜和惊吓。
至于深度学习,如果把监督学习和神经网络结合就可以训练出一个具有明确目标的神经网络模型;而如果把无监督学习和神经网络结合,那么就会训练出一个处理未知数据能力的模型。
02、监督学习和无监督学习常见的方法
监督学习
监督学习常见的方法有以下几种:
- 分类
- 回归
- 序列标注
分类常见算法有以下几种:
- 支持向量机
- K邻近算法
- 决策树
- 随机深林
- 神经网络
回归类常见算法有:
- 线性回归
- 多项式回归
- 支持向量回归
- 神经网络
序列标注算法有:
- 马可夫模型
- 条件随机场
- 循环网络
无监督学习
而无监督学习方法主要有:
- 聚类
- 降维
- 异常检测
- 生成模型
聚类常见算法有:
- k均值聚类(k-Means Clustering)
- 层次聚类(Hierarchical Clustering)
- DBSCAN
降维常见算法有:
- 主成分分析(Principal Component Analysis, PCA)
- t分布邻域嵌入(t-Distributed Stochastic Neighbor Embedding, t-SNE)
- 自编码器(Autoencoder)的编码部分
异常检测常见算法有:
- 基于统计方法如均值和标准差
- 基于距离的方法如k近邻算法
- 基于密度的方法如LOF(Local Outlier Factor)
生成模型常见算法有:
- 生成模型主要是无监督学习使用神经网络模型实现。
- 自编码器
- 变分自编码器(Variational Autoencoder, VAE)
- 生成对抗网络(Generative)
目前来看,无监督学习的主要难点在于损失的计算;因为无监督学习没用标注也就导致其没有一个标准的判断条件,直接导致你无法判断模型训练的到底效果怎么样,只能在实际数据中去评估测试,所以无监督学习目前还有很大的缺陷。
不过无监督学习在生成模型方面有巨大的市场潜力,比如在艺术处理,声音合成和图片/视频生成等领域。
本文转载自公众号AI探索时代 作者:DFires
原文链接:https://mp.weixin.qq.com/s/W2qZN7yIy5Pzazt0LQw4mw