第一章 深度学习基础

好的图表比文字传达的信息量多

图1-1帮助理清了人工智能、机器学习和深度学习之间的关系。

图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同。两种范式引出了两种不同的教学方法,一种是手把手的教知识和规则,这种情况对于封闭型稍简单的情境会比较有效;当面临复杂问题,比如语音识别、图像识别等问题时就有些捉襟见肘了。而机器学习的编程范式则是秉承了”授人以鱼不如授人以渔”的思想,让机器去探究发现规则,而不是直接给出规则。很显然机器学习的范式使得人工智能更灵活,更通用。

基于符号主义人工智能的专家系统在19世纪80年代达到高峰,随后机器学习登上舞台并成为最受欢迎和成功的方法。

深度学习是一种机器学习方法,先来看“学习”过程。机器学习模型将输入数据变换为有意义的输出,这是一个从已知的输入和输出示例中进行“学习”的过程。因此,机器学习和深度学习的核心问题在于有意义地变换数据,即在于学习输入数据的有用表示——这种表示可以让数据更接近预期输出。“深度”是指一系列连续的表示层,深度学习是机器学习的一个分支领域,它是从数据中学习表示的一种新方法,强调从连续的层中进行学习,这些层对应于越来越有意义的表示。在深度学习中,这些分层表示几乎总是通过叫作神经网络的模型来学习得到的。可见神经网络是深度学习方法中用到的一种逐层堆叠的结构。

从图1-6可以看出深度神经网络将数字图像转换成与原始图像差别越来越大的表示,而其中关于最终结果的信息却越来越丰富。信息穿过连续的过滤器,和期望输出结果越来越接近。

深度学习从数据中进行学习时有两个基本特征:第一,通过渐进的、逐层的方式形成越来 越复杂的表示;第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上 下两层的需要。总之,这两个特征使得深度学习比先前的机器学习方法更加成功。

要想在如今的应用机器学习中取得成功,你应该熟悉这两种技术:梯度提升机,用于浅层 学习问题;深度学习,用于感知问题。

三种技术力量推动着机器学习的进步:

  • 硬件

2016 年,Google 在其年度 I/O 大会上展示了张量处理器(TPU)项目,它是一种新的芯片 设计,其开发目的完全是为了运行深度神经网络。据报道,它的速度比最好的 GPU 还要快 10 倍, 而且能效更高。

摩尔定律(英语:Moore's law)是由英特尔(Intel)创始人之一戈登·摩尔提出的。其内容为:集成电路上可容纳的晶体管数目,约每隔兩年便会增加一倍;经常被引用的“18个月”,是由英特尔首席执行官大衛·豪斯(David House)提出:预计18个月会将芯片的性能提高一倍(即更多的晶体管使其更快),是一種以倍數增長的觀測。[1]

半导体行业大致按照摩尔定律发展了半个多世纪,对二十世纪后半叶的世界经济增长做出了贡献,并驱动了一系列科技创新、社会改革、生产效率的提高和经济增长。个人电脑、因特网、智能手机等技术改善和创新都离不开摩尔定律的延续。

  • 数据集和基准

人工智能有时被称为新的工业革命。如果深度学习是这场革命的蒸汽机,那么数据就是煤炭, 即驱动智能机器的原材料,没有煤炭一切皆不可能。就数据而言,除了过去 20 年里存储硬件的 指数级增长(遵循摩尔定律),最大的变革来自于互联网的兴起,它使得收集与分发用于机器学 习的超大型数据集变得可行。

如果有一个数据集是深度学习兴起的催化剂的话,那么一定是 ImageNet 数据集。它包含 140 万张图像,这些图像已经被人工划分为 1000 个图像类别(每张图像对应 1 个类别)。但 ImageNet 的特殊之处不仅在于其数量之大,还在于与它相关的年度竞赛 a。

  • 算法上的改进

除了硬件和数据之外,直到 20 世纪前十年的末期,我们仍没有可靠的方法来训练非常深 的神经网络。因此,神经网络仍然很浅,仅使用一两个表示层,无法超越更为精确的浅层方法, 比如 SVM 和随机森林。关键问题在于通过多层叠加的梯度传播。随着层数的增加,用于训练神 经网络的反馈信号会逐渐消失。

这一情况在 2009—2010 年左右发生了变化,当时出现了几个很简单但很重要的算法改进, 可以实现更好的梯度传播。

  • 更好的神经层激活函数(activation function)。
  • 更好的权重初始化方案(weight-initialization scheme),一开始使用逐层预训练的方法, 6

不过这种方法很快就被放弃了。

  • 更好的优化方案(optimization scheme),比如 RMSProp 和 Adam。 只有这些改进可以训练 10 层以上的模型时,深度学习才开始大放异彩。

最后,在 2014 年、2015 年和 2016 年,人们发现了更先进的有助于梯度传播的方法,比如

批标准化、残差连接和深度可分离卷积。今天,我们可以从头开始训练上千层的模型。

深度学习的大众化

Keras 等用 户友好型库则使深度学习变得像操纵乐高积木一样简单。Keras 在 2015 年初发布,并且很快就 成为大量创业公司、研究生和研究人员转向该领域的首选深度学习解决方案。

深度学习有几个重要的性质,证明了它确实是人工智能的革命,并且能长盛不衰。20 年后 我们可能不再使用神经网络,但我们那时所使用的工具都是直接来自于现代深度学习及其核心 概念。这些重要的性质可大致分为以下三类。

  • 简单。深度学习不需要特征工程,它将复杂的、不稳定的、工程量很大的流程替换为简 单的、端到端的可训练模型,这些模型通常只用到五六种不同的张量运算。
  • 可扩展。深度学习非常适合在 GPU 或 TPU 上并行计算,因此可以充分利用摩尔定律。此外, 深度学习模型通过对小批量数据进行迭代来训练,因此可以在任意大小的数据集上进行 训练。(唯一的瓶颈是可用的并行计算能力,而由于摩尔定律,这一限制会越来越小。)
  • 多功能与可复用。与之前的许多机器学习方法不同,深度学习模型无须从头开始就可以 在附加数据上进行训练,因此可用于连续在线学习,这对于大型生产模型而言是非常重 要的特性。此外,训练好的深度学习模型可用于其他用途,因此是可以重复使用的。举 个例子,可以将一个对图像分类进行训练的深度学习模型应用于视频处理流程。这样我 们可以将以前的工作重新投入到日益复杂和强大的模型中。这也使得深度学习可以适用 于较小的数据集。

转载于:https://www.cnblogs.com/jennyzhangeducation/p/11278447.html

Deep learning with python notebooks 笔记 第一章 深度学习基础相关推荐

  1. 《机器学习系列教程》第三章 深度学习基础

    @[第三章 深度学习基础] 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 为了描述神经网络,我们先从最简单的神经网络说起. 感知机 简单的感知机如下图所示: [外链图片转存失败( ...

  2. Deep Learning with Python 读书笔记6.26 I 什么是深度学习

    我感觉这样记录,对于我来说挺好的.因为我看两端对齐的语句容易走神,这样记录阅读的话,就很少出现之前的情况. 我写的初衷,也是自己来看,所以感觉写的不好的,请保留下意见,谢谢. 里面的每一个字我都看过, ...

  3. 流畅的python读书笔记-第一章Python 数据模型

    第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collectionsCard = collections.namedtuple ...

  4. 【读点论文】Deep Learning Face Representation by Joint Identification-Verification,深度学习应用在优化问题上,deepid2

    Deep Learning Face Representation by Joint Identification-Verification 人脸识别的关键挑战是开发有效的特征表示,以减少个体内的差异 ...

  5. 【Pytorch学习笔记】3.深度学习基础

    文章目录 13.梯度 14.激活函数 15.感知机 16.链式法则 17.反向传播 18.2D函数优化实例 19.Logistic Regression 20.交叉熵 21.多分类 22.全连接层 2 ...

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

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

  7. [论文翻译]Deep Learning 翻译及阅读笔记

    论文题目:Deep Learning 论文来源:Deep Learning_2015_Nature 翻译人:BDML@CQUT实验室 Deep Learning Yann LeCun∗ Yoshua ...

  8. 第三章_深度学习基础

    文章目录 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 3.1.2神经网络有哪些常用模型结构? 3.1.3如何选择深度学习开发平台? 3.1.4为什么使用深层表示? 3.1.5为 ...

  9. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

最新文章

  1. 一些能说到点子上的课程
  2. 如何关闭华为自动杀进程_手机自动扣费该如何删除,教你正确关闭,我们要知道!...
  3. [Linux] Linux指令汇总(持续更新中...)
  4. 马云放弃阿里巴巴所有权?华硕裁员上百人;扎克伯格账号被黑 | 极客头条
  5. Python 模块安装失败
  6. UML类图关系全面剖析
  7. ansible 小试身手
  8. no such file to load -- bundler/setup
  9. 用PLSQL解决世界最难数独(不到1毫秒)
  10. gridview动态添加行
  11. [Luogu P3704] [BZOJ 4816] [SDOI2017]数字表格
  12. 《缠中说禅108课》108:何谓底部?从月线看中期走势演化
  13. python 虚拟串口通信
  14. 深度学习公开语音识别数据集下载 | 论文下载|音频数据集|corpus ——简记
  15. java类中获取tomcat下的webap路径方法
  16. android Retrofit下载图片
  17. UTC时间转换为当前时区时间
  18. 实验室安全工作实施的保证
  19. 修改IE为默认浏览器
  20. 虚拟机jupyter浏览器无法访问解决办法

热门文章

  1. 黄章diss小米9:贱人贱己贱行业 之后秒删
  2. Android 音频开发(二) 采集一帧音频数据
  3. linux kernel 下的hash 和链表 应用
  4. fmea软件_新版FMEA易错点梳理(一):范围界定和过程流程图-SGS
  5. python四分位数_Python解释数学系列——分位数Quantile
  6. libjpeg学习4:libjpeg-turbo之YUV
  7. Linux移植随笔:git的使用
  8. 95-38-050-Buffer-UnpooledHeapByteBuf
  9. 【Flink】介绍Flink中状态一致性的保证
  10. 95-36-032-ChannelHandler-SimpleChannelInboundHandler