作者:orangeprince
链接:https://www.zhihu.com/question/27689129/answer/39117725
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

关于这个问题,我觉得需要澄清几个概念:
1. 浅层(shallow)的监督学习(supervised learning)
代表性方法:Logistic Regression,Adaboost, Decision Tree等。
这一类方法的输入是data的原始特征,输出是data的label,不存在任何的中间层。

2.浅层无监督学习(unsupervised learning)
代表性方法:Kmeans, PCA, Sparse Coding, RBMs等。
这一类方法的输入是data的原始特征,输出是新的data表达,也不存在中间层。但是由于这类方法的输出并不是针对某些特定的标签或者场景,所以得到的数据表达可以继续被用在其他的监督或者无监督学习的任务中。所以这些方法也可以被分为特征学习(feature learning)或者表达学习(representation learning)的方法。

3.深层无监督学习
代表性方法:Deep Boltzmann Machines, Deep Autoencodes等。
这一类方法可以大概看成是多个浅层无监督学习方法的叠加。所以方法最终的输出同样是data新的特征表达。与此同时,模型中每一层的输出,同样也可以看做是data的特征表达。

4.深度监督学习
代表性法方法:DBN,DNN,CNN等
这些方法的输入是数据的原始特征,最后的输出数据的label。但是与浅层的监督学习方法不同,虽然也是监督模型,但这类方法也会生成很多data的中间层表达或者特征。因此这些中间层的学习或提取也可以看成是一个特特征学习或者表达学习的过程,这是有深度学习的特殊情况决定的。

因此可以总结如下:无监督学习和深度学习的方法都可以看做是特征学习或者表达学习的方法,但是浅层的监督学习不能算是。

那么应该怎么区分无监督学习和深度学习的方法呢,这个似乎没有特别明确的定义,或者也很难去教条的定义。但是非要较真的话,但是从深度学习这个名称来看,首先模型的层数应该达到一定的数量才能算作是深度学习的方法。如果最基本的浅层学习方法看做一个二层的模型,那么kernel SVM和经典的BP网络就可以看成是三层的模型。我想它们还算不了深度学习的方法,至少模型的层数应该超过三层吧。当然,如果仅仅是这样,那么人工去构造多层特征也能算做深度学习了。既然我们讨论的问题都是机器学习范畴,还应该满足特征应该是逐层自动学习而得到的。至于是不是表达学习,我觉得到不用过于强调,因为前面已经讨论过,只要是深度学习,就天生具有表达学习的特性。

下面来看w2v和glove这两个模型吧。算法细节就不讨论了,从我一开始读论文就觉得这两个模型跟深度学习关系不大,反倒更像是两种特殊的矩阵分解算法。从word到vector,并不存在任何的中间表达层,而是直接一步到位得到的。从这个意义上来说,这两个方法并不能称作是深度学习。否则,SVD++,Factorization Machines 这些方法也都能算作是deep learning了。反倒是最近一些利用RNN和CNN的多层神经网络对文本进行学习的方法是真正的deep learning方法。

那为什么很多人都把他们和deep learning扯到一起呢?我觉得有几个原因:
1. word2vec是之前神经网络语言模型的简化。而那个神经网络语言模型看起来似乎更像是一个“深度”的学习模型,不过仔细分析算法本身,最核心的特征学习其实只有两层。更何况word2vec又对这个模型做了很大的简化。

2. word2vec是一个特征学习的方法,然后直接把特征学习等同到深度学习。这个前面已经多次讨论过,深度学习方法应该是特征学习方法的一个子集。就像说人类是能直立行走的动物,但是直立行走的动物未必就一定是人类。

3. deep learning这个概念最近很火,可以借机炒作一把。

其实到底什么叫deep learning并不是那么重要,无非是一个名字的问题。大家理解算法本身才是最重要的。但是另外一方面,只有名正才能言顺,才能避免个人带来一些理解上的偏差。记得以前我曾经面试过一个学生,在他的简历里面曾经提到自己曾经从事了deep learning的研究工作。最后我发现,他所谓的deep learning,就是用kmeans对特征进行聚类和汇总,然后再进行分类。在他理解,这个方法属于特征或者表达学习的范畴,所以也属于deep learning的范畴。但我想他所做的工作和真正的deep learning还是有很大的差别。而类似这种归类方式,对于其他人,特别是一些对深度学习领域不太熟悉的人,还是会带来很大的误导。

解释为什么word2vec也被称作deep learning的更多相关文章

  1. Word2Vec之Deep Learning in NLP (一)词向量和语言模型

    转自licstar,真心觉得不错,可惜自己有些东西没有看懂 这篇博客是我看了半年的论文后,自己对 Deep Learning 在 NLP 领域中应用的理解和总结,在此分享.其中必然有局限性,欢迎各种交 ...

  2. (Stanford CS224d) Deep Learning and NLP课程笔记(二):word2vec

    本节课将开始学习Deep NLP的基础--词向量模型. 背景 word vector是一种在计算机中表达word meaning的方式.在Webster词典中,关于meaning有三种定义: the ...

  3. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  4. 机器学习(Machine Learning)&深度学习(Deep Learning)资料汇总 (上)

    转载:http://dataunion.org/8463.html?utm_source=tuicool&utm_medium=referral <Brief History of Ma ...

  5. 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

  6. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  7. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

  8. 【转载】Deep Learning(深度学习)学习笔记整理

    http://blog.csdn.net/zouxy09/article/details/8775360 一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫 ...

  9. Deep Learning and Shallow Learning

    Deep Learning and Shallow Learning 由于 Deep Learning 现在如火如荼的势头,在各种领域逐渐占据 state-of-the-art 的地位,上个学期在一门 ...

随机推荐

  1. [Swift通天遁地]六、智能布局-(5)给视图添加Align(对齐)和Fill(填充的约束以及Label的约束

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. .net C# 格式化时间

    1.HtmlEncode="False" 2.DataFormatString="{0:d}" C#格式化日期时间 DateTime dt = DateTime ...

  3. ACM_黑色星期五

    黑色星期五 Time Limit: 2000/1000ms (Java/Others) Problem Description: 13号又是星期五是一个不寻常的日子吗?13号在星期五比在其他日少吗?为 ...

  4. 【转】Linux GCC常用命令

    转自:http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html 1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Comp ...

  5. 开始玩qt,使用代码修改设计模式生成的菜单

    之前制作菜单时,不是纯代码便是用设计模式 直接图形化完成. 今天我就是想用代码修改已经存在的菜单项,如果是用代码生成的可以直接调用指针完成: 但通过设计模式完成的没有暴露指针给我,至少我没发现. 在几 ...

  6. sql server 数据分析优化实战(一)——SQL语句优化

    前言 在我们进行数据分析的时候,首要的目标是根据业务逻辑,通过编写SQL代码得到我们想要的结果,这是毋庸置疑的.一般情况下,由于我们分析的数据量比较少,体会不出SQL语句各种写法的性能优劣,对SQL代 ...

  7. jQuery——类的添加与删除

    添加类:addClass 删除类:removeClass 判断类是否存在:hasClass <!DOCTYPE html> <html lang="en"> ...

  8. Android studio在使用过程中的问题总汇!

    使用android studio也有一段时间了,汇总了一下这段时间内遇到一些常见问题,希望能够帮助到大家! 一.字体大小问题 在android studio的使用过程中没有发现类似于Eclipse中的 ...

  9. Python 之beautifulSoup4解析库

    一.节点选择器 from bs4 import BeautifulSoup if __name__ == '__main__': html = ''' <div> <ul> & ...

  10. Centos7搭建ansible运维自动化工具

    1)设置主机名和hosts文件 2)配置阿里云repo源 Wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Ce ...