版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/liyoushui01/article/details/80565286

学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来 ———by BryantLJ¶
学习深度学习也需要了解深度学习的经历过程,能够更好的帮助我们理解深度学习的变更和趋势。
深度学习经过3次浪潮,起起伏伏,目前处于第三次浪潮中,也是风口上的猪。其历史时间轴偷图如下:
那么是什么原因让深度学习起起落落呢?
我们将通过几个关键节点给出答案,同时认识深度学习的变更和历史趋势。
第一次兴起--神经网络启蒙
1943年由神经科学家麦卡洛克(W.S.McCilloch) 和数学家皮兹(W.Pitts)在《数学生物物理学公告》上发表论文《神经活动中内在思想的逻辑演算》(A Logical Calculus of the Ideas Immanent in Nervous Activity)。建立了神经网络和数学模型,称为MCP模型。所谓MCP模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型,也就诞生了所谓的“模拟大脑”,人工神经网络的大门由此开启。MCP当时是希望能够用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法)。如下图所示
该模型建立了深度学习的基本思想,在后面的课程中我们将不断遇到。
1958年计算机科学家罗森布拉特( Rosenblatt)提出了两层神经元组成的神经网络,称之为“感知器”(Perceptrons)。第一次将MCP用于机器学习(machine learning)分类(classification)。“感知器”算法算法使用MCP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1962年,该方法被证明为能够收敛,理论与实践效果引起第一次神经网络的浪潮。

第一次低谷---成也萧何败也萧何

1969年,美国数学家及人工智能先驱 Marvin Minsky 在其著作中证明了感知器本质上是一种线性模型(linear model),只能处理线性分类问题,就连最简单的XOR(亦或)问题都无法正确分类。这等于直接宣判了感知器的死刑,神经网络的研究也陷入了将近20年的停滞。
第二次兴起--BP网络与激活函数

1986年由神经网络之父 Geoffrey Hinton 在1986年发明了适用于多层感知器(MLP)的BP(Backpropagation)算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。注:Sigmoid 函数是一个在生物学中常见的S型的函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。

第二次低谷--屋漏偏逢连夜雨

1991年BP算法被指出存在梯度消失问题,也就是说在误差梯度后项传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该问题直接阻碍了深度学习的进一步发展。
此外90年代中期,支持向量机算法诞生(SVM算法)等各种浅层机器学习模型被提出,SVM也是一种有监督的学习模型,应用于模式识别,分类以及回归分析等。支持向量机以统计学为基础,和神经网络有明显的差异,支持向量机等算法的提出再次阻碍了深度学习的发展。
第三次兴起--待到秋来九月八,我花开后百花杀。冲天香阵透长安,满城尽带黄金甲。
发展期 2006年 - 2012年
2006年,加拿大多伦多大学教授、机器学习领域泰斗、神经网络之父—— Geoffrey Hinton 和他的学生 Ruslan Salakhutdinov 在顶尖学术刊物《科学》上发表了一篇文章,该文章提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调。斯坦福大学、纽约大学、加拿大蒙特利尔大学等成为研究深度学习的重镇,至此开启了深度学习在学术界和工业界的浪潮。
2011年,ReLU激活函数被提出,该激活函数能够有效的抑制梯度消失问题。2011年以来,微软首次将DL应用在语音识别上,取得了重大突破。微软研究院和Google的语音识别研究人员先后采用DNN技术降低语音识别错误率20%~30%,是语音识别领域十多年来最大的突破性进展。2012年,DNN技术在图像识别领域取得惊人的效果,在ImageNet评测上将错误率从26%降低到15%。
在这一年,DNN还被应用于制药公司的DrugeActivity预测问题,并获得世界最好成绩。
爆发期 2012 - 2017
2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其通过构建的CNN网络AlexNet一举夺得冠军,且碾压第二名(SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。
三步曲简单介绍至此,你可能有了一些认识但是还是不禁问一声深度学习到底是什么鬼?有什么用?

这里先用一些概念来说明(虽然很烦概念但是还要提一提),再借用一个别人有趣的例子来说明。

《Deep Learning》(深度学习)一书中说,深度学习是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。具有强大的能力和灵活性,它将大千世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽象概括到高级抽象表示)。(PS:学习深度学习的小伙伴如果没有学过机器学习记得回头恶补哦)
用下图来说明深度学习与机器学习及人工智能的关系。
从图中可以看出,人工智能是一个大方向,而机器学习是实现人工智能的一种方法,深度学习则是机器学习的一个分支。
所以,深度学习就是目前实现人工智能的一条路,只是目前这条路表现最好所以被大家热捧。
这里简单从百科上搬几个概念,能够帮助我们理解深度学习的用处。
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
    它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
    个人更喜欢的说法是:机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
深度学习(Deep Learning,DL)是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
        深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
        同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。
估计按照上面的说法可能你还不能够生动形象的明白深度学习是个什么样子,当然如果你已经学习过了不说
我找了网上一个很有意思的例子(PS:摘自到底什么是深度学习?-猎奇古今),感觉可以让你生动形象明白深度学习是什么?在干啥?

比如你需要挑选芒果,你并不知道什么样的芒果最好吃,所以你就尝遍了所有的芒果,然后自己总结出个大深黄色的比较好吃,以后再去买的时候,就可以直接挑选这种。

那什么是机器学习呢,就是你让机器“尝”一遍所有芒果,当然,也假设它知道哪些好吃,让机器去总结一套规律(个大深黄色),这就是机器学习。

具体操作,就是你描述给机器每一个芒果的特征(颜色,大小,软硬……),描述给机器其输出(味道如何,是否好吃),剩下的就等机器去学习出一套规则。

那机器是怎么学习到这个规则(个大深黄色的好吃)的呢?

没错,是通过机器学习算法。而神经网络,恰好就是一种机器学习算法。

近些年来,由于深度学习概念的兴起,神经网络又成为了机器学习领域最热门的研究方法。

神经网络就像是一个刚开始学习认东西的小孩子,而大人是作为一个监督者,来告诉他所看到的东西是什么,至于如果判定这是狗还是猫,还是其他的动物的方法,则由小孩自行去学习。

第一天,他看见一只京巴狗,你告诉他这是狗;

第二天,他看见一只波斯猫,他开心地说,这是狗,但你纠正他,这是猫;

第三天,他看见一只蝴蝶犬,他又迷惑了,你告诉他这是狗;

直到有一天,他可以分清任何一只猫或者狗。

本人应该从历史中的一点收获:
1. 人工神经网络,这是打开深度学习大门的基石
2. 有一种算法叫BP算法,很牛逼的样子
3. 原来还有一种问题叫梯度消失,是否已经解决了,我们遇到了该怎么办呢?据说还有一种叫梯度爆炸,会不会有生命危险啊
4. 激活函数是个好东西,线性不再是局限,看来要了解下激活函数
最后列一下深度学习技术,听说学完了就可以打通任督二脉,成为深度学习高手。
线性代数、概率和信息论
欠拟合、过拟合、正则化
最大似然估计和贝叶斯统计
随机梯度下降
监督学习和无监督学习
深度前馈网络、代价函数和反向传播
正则化、稀疏编码和dropout
自适应学习算法
卷积神经网络
循环神经网络
递归神经网络
深度神经网络和深度堆叠网络
LSTM长短时记忆
主成分分析
正则自动编码器
表征学习
蒙特卡洛
受限波兹曼机
深度置信网络
softmax回归、决策树和聚类算法
KNN和SVM
生成对抗网络和有向生成网络
机器视觉和图像识别
自然语言处理
语音识别和机器翻译
有限马尔科夫
动态规划
梯度策略算法
增强学习(Q-learning)

深度学习-从历史认识深度学习相关推荐

  1. 【深度学习基础1】深度学习发展历史

    一.深度学习发展历史 1. 网状理论(Reticular Theory) 早在 18 世纪初,科学家就提出了"所有生物组织都是由细胞组成"的假设.然而,神经组织一直是个例外,因为人 ...

  2. 深度学习之路---从历史认识深度学习

    学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来 ---by BryantLJ¶ 学习深度学习也需要了解深度学习的经历过程,能够更好的帮助我们理解深度学习的变更和趋势. 深度学习经 ...

  3. 强化学习(八) - 深度Q学习(Deep Q-learning, DQL,DQN)原理及相关实例

    深度Q学习原理及相关实例 8. 深度Q学习 8.1 经验回放 8.2 目标网络 8.3 相关算法 8.4 训练算法 8.5 深度Q学习实例 8.5.1 主程序 程序注释 8.5.2 DQN模型构建程序 ...

  4. 基于多任务学习和负反馈的深度召回模型

    简介:召回结果的好坏对整个推荐结果有着至关重要的影响,最近的一系列实践和研究表明,基于行为序列的深度学习推荐模型搭配高性能的近似检索算法可以实现既准又快的召回性能:与此同时,用户在天猫精灵上还可以进行 ...

  5. 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder

    Dropout(续) 除了Dropout之外,还有DropConnect.两者原理上类似,后者只隐藏神经元之间的连接. 总的来说,Dropout类似于机器学习中的L1.L2规则化等增加稀疏性的算法,也 ...

  6. DeepLearningAI 学习笔记 1.1 深度学习概论

    1.1 深度学习概论 视频:第一周 深度学习概论 整理:飞龙 什么是神经网络? "深度学习"指的是训练神经网络,有时候规模很大,那么神经网络究竟是什么呢?在这个视频中,我会讲些直观 ...

  7. 《神经网络与深度学习》邱希鹏 学习笔记 (1)

    <神经网络与深度学习>邱希鹏 学习笔记 (1) 完成进度 第一章 绪论 深度学习与神经网络 人工智能 图灵测试 达特茅斯 *(Dartmouth)* 会议 人工智能的研究领域 人工智能发展 ...

  8. 什么是深度学习?怎么学好深度学习?

    [深度学习]是一种强大的多层架构,可以用于模式识别.信号检测以及分类或预测等多个领域. 深度学习在过去十年获得了极高的关注,这归功于计算能力的不断发展和训练模型不断涌现出更有效的新方法,也源于可使用的 ...

  9. Python深度学习(一)深度学习基础

    翻译自Deep Learning With Python(2018) 第一章 深度学习基础:https://www.jianshu.com/p/6c08f4ceab4c 第二章 深度学习的数学构建模块 ...

最新文章

  1. Xamarin.Forms项目无法添加服务引用
  2. hibernate操作mysql中文乱码
  3. Linux vi格式化文件命令
  4. 学好数学建模,走哪买菜都不怕!
  5. 吴恩达作业9:卷积神经网络实现手势数字的识别(基于tensorflow)
  6. 无辜程序员被新女同事算计,老板到底安得什么心 ?
  7. ubuntu14.10 linux-header更新,Ubuntu 14.04 怎样升级到 Ubuntu 14.10
  8. ORACLE 数据同步时,批量进行新增和更新操作的SQL写法
  9. python练习题及答案-python编程练习题和答案.doc
  10. SparkSQL统一数据的加载与落地
  11. 非阻塞connect的作用及代码示例
  12. java中servlet的请求范围_java – 如何设置servlet中并发请求数的限制?
  13. c语言回顾之指针数组和数组指针
  14. oracle11g数据库登录01017,【数据库管理】ORA-01017错误及部分的常见典型案例-Go语言中文社区...
  15. 虚拟机 ms-dos系统下下载masm611详细步骤(带图)
  16. 在分页后web报表的最后一页补足空行的方法
  17. git The requested URL returned error: 429 问题解决
  18. win10的局域网如何设为专用网络
  19. 用AdGuard Home搭建一个内部的DNS服务器,开启局域网内无广告和追踪的浏览体验
  20. 与设备无关的位图一、DIB 文件格式

热门文章

  1. Xshell安装rz/sz命令
  2. metahuman 简介
  3. Python: 打包发布到PyPi及踩坑经历
  4. 条形码/二维码的生成并打印
  5. ts打包代码详解 (ffmpeg)
  6. 全球地名中英文对照表(C)
  7. 写论文三大助手:看外文文献、下载文档、插入文献
  8. nus 计算机博士申请,新加坡博士留学|新加坡国立大学(NUS)博士申请条件
  9. 关系模型中关系的完整性约束【校订版】
  10. AnyChat SDK V7.3新版本发布!