如何正确理解深度学习(Deep Learning)的概念
现在深度学习在机器学习领域是一个很热的概念,不过经过各种媒体的转载播报,这个概念也逐渐变得有些神话的感觉:例如,人们可能认为,深度学习是一种能够模拟出人脑的神经结构的机器学习方式,从而能够让计算机具有人一样的智慧;而这样一种技术在将来无疑是前景无限的。那么深度学习本质上又是一种什么样的技术呢?
深度学习是什么
深度学习是机器学习领域中对模式(声音、图像等等)进行建模的一种方法,它也是一种基于统计的概率模型。在对各种模式进行建模之后,便可以对各种模式进行识别了,例如待建模的模式是声音的话,那么这种识别便可以理解为语音识别。而类比来理解,如果说将机器学习算法类比为排序算法,那么深度学习算法便是众多排序算法当中的一种(例如冒泡排序),这种算法在某些应用场景中,会具有一定的优势。
深度学习的“深度”体现在哪里
论及深度学习中的“深度”一词,人们从感性上可能会认为,深度学习相对于传统的机器学习算法,能够做更多的事情,是一种更为“高深”的算法。而事实可能并非我们想象的那样,因为从算法输入输出的角度考虑,深度学习算法与传统的有监督机器学习算法的输入输出都是类似的,无论是最简单的Logistic Regression,还是到后来的SVM、boosting等算法,它们能够做的事情都是类似的。正如无论使用什么样的排序算法,它们的输入和预期的输出都是类似的,区别在于各种算法在不同环境下的性能不同。
那么深度学习的“深度”本质上又指的是什么呢?深度学习的学名又叫深层神经网络(Deep Neural Networks ),是从很久以前的人工神经网络(Artificial Neural Networks)模型发展而来。这种模型一般采用计算机科学中的图模型来直观的表达,而深度学习的“深度”便指的是图模型的层数以及每一层的节点数量,相对于之前的神经网络而言,有了很大程度的提升。
深度学习也有许多种不同的实现形式,根据解决问题、应用领域甚至论文作者取名创意的不同,它也有不同的名字:例如卷积神经网络(Convolutional Neural Networks)、深度置信网络(Deep Belief Networks)、受限玻尔兹曼机(Restricted Boltzmann Machines)、深度玻尔兹曼机(Deep Boltzmann Machines)、递归自动编码器(Recursive Autoencoders)、深度表达(Deep Representation)等等。不过究其本质来讲,都是类似的深度神经网络模型。
既然深度学习这样一种神经网络模型在以前就出现过了,为什么在经历过一次没落之后,到现在又重新进入人们的视线当中了呢?这是因为在十几年前的硬件条件下,对高层次多节点神经网络的建模,时间复杂度(可能以年为单位)几乎是无法接受的。在很多应用当中,实际用到的是一些深度较浅的网络,虽然这种模型在这些应用当中,取得了非常好的效果(甚至是the state of art),但由于这种时间上的不可接受性,限制了其在实际应用的推广。而到了现在,计算机硬件的水平与之前已经不能同日而语,因此神经网络这样一种模型便又进入了人们的视线当中。
“ 2012年6月,《纽约时报》披露了Google Brain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”(DNN,Deep Neural Networks) ”
从Google Brain这个项目中我们可以看到,神经网络这种模型对于计算量的要求是极其巨大的,为了保证算法实时性,需要使用大量的CPU来进行并行计算。
当然,深度学习现在备受关注的另外一个原因,当然是因为在某些场景下,这种算法模式识别的精度,超过了绝大多数目前已有的算法。而在最近,深度学习的提出者修改了其实现代码的Bug之后,这种模型识别精度又有了很大的提升。这些因素共同引起了深层神经网络模型,或者说深度学习这样一个概念的新的热潮。
深度学习的优点
为了进行某种模式的识别,通常的做法首先是以某种方式,提取这个模式中的特征。这个特征的提取方式有时候是人工设计或指定的,有时候是在给定相对较多数据的前提下,由计算机自己总结出来的。深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计特征造成的不完备性。而目前以深度学习为核心的某些机器学习应用,在满足特定条件的应用场景下,已经达到了超越现有算法的识别或分类性能。
深度学习的缺点
深度学习虽然能够自动的学习模式的特征,并可以达到很好的识别精度,但这种算法工作的前提是,使用者能够提供“相当大”量级的数据。也就是说在只能提供有限数据量的应用场景下,深度学习算法便不能够对数据的规律进行无偏差的估计了,因此在识别效果上可能不如一些已有的简单算法。另外,由于深度学习中,图模型的复杂化导致了这个算法的时间复杂度急剧提升,为了保证算法的实时性,需要更高的并行编程技巧以及更好更多的硬件支持。所以,目前也只有一些经济实力比较强大的科研机构或企业,才能够用深度学习算法,来做一些比较前沿而又实用的应用。
本文转载自:Excalibur的专栏
如何正确理解深度学习(Deep Learning)的概念的更多相关文章
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习——深度学习(Deep Learning)
Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得. Key W ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
- (转)机器学习——深度学习(Deep Learning)
from:http://blog.csdn.net/abcjennifer/article/details/7826917 Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
机器学习(Machine Learning)&深度学习(Deep Learning)资料 機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008 ...
- (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- 【重磅干货整理】机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
[重磅干货整理]机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总 .
- 转:浅谈深度学习(Deep Learning)的基本思想和方法
浅谈深度学习(Deep Learning)的基本思想和方法 参考:http://blog.csdn.net/xianlingmao/article/details/8478562 深度学习(Deep ...
- (转)深度学习(Deep Learning, DL)的相关资料总结
from:http://blog.sciencenet.cn/blog-830496-679604.html 深度学习(Deep Learning,DL)的相关资料总结 有人认为DL是人工智能的一场革 ...
随机推荐
- oracle数据操纵语言(DML)data manipulation language(续集)
SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...
- xe5 android tts(Text To Speech)
xe5 android tts(Text To Speech) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转 ...
- Unhandled Error in Silverlight Application “Syncfusion.Silverlight.Olap.Gauge.OlapGauge”的类型初始值设定项引发异常
Silverlight 在运行时,如果出现如下错误: 检查生成的xap文件,解压出来,看是否里面包含该DLL:Syncfusion.Silverlight.Olap.Gauge.OlapGauge
- React Native(ios)项目中logo,启动屏设置
由于logo和启动屏尺寸多,react native(ios)中没有命令可以自动生成各种的尺寸,所以可以使用以下办法:在ionic项目中生成(使用命令:ionic resources)后,再粘贴到re ...
- Umbraco(3) - CSS & Javascript(翻译文档)
原文地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/umbraco3css-javascript/ CSS & Jav ...
- JavaScript--浏览器对象模型BOM(17)
// BOM也叫做浏览器对象模型,它提供了很多对象,用于访问浏览器的功能;这些功能与任何网页内容无关; // BOM缺少规范,每个浏览器提供商都按照自己的想法去扩展它,那么浏览器共有对象就成了事实的标 ...
- Part 82 to 85 Talking about Generic queue, stack collection class
Part 82 Generic queue collection class Part 83 Generic stack collection class Part 84 Real tim ...
- 【原创】Tomcat集群环境下对session进行外部缓存的方法(2)
Session对象的持久化比较麻烦,虽然有序列化,但是并不确定Session对象中保存的其他信息是否可以序列化,这可能是网上很多解决方案摒弃此种做法的原因,网上的很多做法都是将Session中的att ...
- 对App数据库元素进行简单的设计
假如对<豆瓣>进行简单的数据库元素设计; 分析页面: 简单的豆瓣一共有以下页面{ 活动页面 活动详情页面 电影页面 电影详情页面 影院页面(一般不用到数据库,不及于数据库考虑) 我的{ 活 ...
- UI4_UIToolBar
// // AppDelegate.m // UI4_UIToolBar // // Created by zhangxueming on 15/7/6. // Copyright (c) 2015年 ...