学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来 ———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之间。

S(x)=1(1+e−x)S(x)=1(1+e−x)声量

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

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. 算法学习之路和程序员(技术)学习必读书籍

    原文链接:http://lucida.me/blog/on-learning-algorithms/ 转 算法学习之路和程序员(技术)学习必读书籍 2015年05月26日 09:46:56 阅读数:1 ...

  2. 我的fNIRS学习之路第“零”期 — fNIRS学习资料汇总

    关注"心仪脑"查看更多脑科学知识的分享. 关键词:资料汇总.fNIRS 写在前边 功能性近红外光谱技术(functional Near-infrared spectroscopy, ...

  3. 我的python学习之路_我的Python学习之路

    简单算来,接触Python有些时日了.想要做个简单的总结,算是为想要入门Python的童鞋做一个简单的介绍吧. 什么是Python Python,是一种面向对象.直译式的计算机程序语言.它包含了一组功 ...

  4. openCV学习之路(2-1)---深度解析imread函数

    代码如下: #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/ ...

  5. openCV学习之路(2-3)---深度解析imshow函数

    代码如下: #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/ ...

  6. C++学习之路——Chapter 2:开始学习C++

    第二章 开始学习C++ 这章比较基础,没有太多没学过的,我把书上的内容一页页过了一遍,将有些小细节记录下来. 1.main函数会被启动代码调用,启动代码是程序和操作系统之间的桥梁. 2.int mai ...

  7. Koffee设计模式学习之路(一) —— 模式学习总结思路

    这篇博客没有相关技术细节,仅作为自己对设计模式这个东西的一点感悟和以后设计模式系列博客的一个写作思路. 作为非科班出身,误打误撞进入编程的人,在上研究生期间对于程序的唯一要求就是:能用.彼时,不知道有 ...

  8. 零基础AI人工智能的学习之路-从0到1-浅谈

    文章目录 0.背景 0.1. 知己 0.2. 知彼 1.if转行,这些文章可以参考学习 2.学习之路 2.1 个人学习之路 2.2 推荐的学习之路 3.推荐学习利器 3.1 Kagge 3.2 菜鸟教 ...

  9. 我的python爬虫学习之路

      很早之前就想学一下爬虫,但是一直没学成,这次终于趁着做完毕设的这段时间,把基于python的爬虫学了一下,现在记录一下我的学习之路,以供想学习爬虫的新手参考.   虽然在写爬虫程序之前没有用过py ...

最新文章

  1. 如何向非技术人员解释“稀疏傅里叶变换”算法?
  2. cocos2dx在eclipse环境下集成ucsdk
  3. STL Algorithms 之 unique
  4. msvc/gcc:中用#pragma指令关闭特定警告(warning)
  5. js如何判断一个对象是不是Array
  6. 不同的二叉搜索树—leetcode96
  7. HALCON示例程序board.hdev检测电路板焊锡有无程序剖析
  8. SimpleAdapter类使用方法
  9. 《跟我一起写Makefile》读书笔记(2)
  10. dj鲜生-29-登陆后欢迎信息的显示
  11. Mac底下java和jre路径
  12. codeforce474D_组合
  13. android中播放gif动画之三
  14. vmware windows linux udp通信,windows 下 udp socket
  15. 聊聊我的 ACL2020 论文
  16. java中什么是实例化
  17. Chrome浏览器安装失败
  18. 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
  19. 大屏联屏发布系统解决方案
  20. 使用深度学习进行图像去噪

热门文章

  1. 您的高品质生活还差一个不卡顿的网络
  2. 驾校管理系统的设计与实现/驾校信息管理系统
  3. 三星固态硬盘PRO 和 EVO的区别
  4. Google面试题:人和自行车匹配
  5. 条令考试小程序作弊_如何在应用程序安全方面作弊
  6. 碎碎念01|自己的兴趣点在哪里|拒绝叶公好龙
  7. 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
  8. 给字母头上加波浪线LaTeX 语法
  9. PX4模块设计之三十八:Navigator模块
  10. 【微信小程序】简易音乐播放器,进度条拖拉、音乐的播放与暂停