Deep learning with python notebooks 笔记 第一章 深度学习基础
第一章 深度学习基础
好的图表比文字传达的信息量多
图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 上并行计算,因此可以充分利用摩尔定律。此外, 深度学习模型通过对小批量数据进行迭代来训练,因此可以在任意大小的数据集上进行 训练。(唯一的瓶颈是可用的并行计算能力,而由于摩尔定律,这一限制会越来越小。)
- 多功能与可复用。与之前的许多机器学习方法不同,深度学习模型无须从头开始就可以 在附加数据上进行训练,因此可用于连续在线学习,这对于大型生产模型而言是非常重 要的特性。此外,训练好的深度学习模型可用于其他用途,因此是可以重复使用的。举 个例子,可以将一个对图像分类进行训练的深度学习模型应用于视频处理流程。这样我 们可以将以前的工作重新投入到日益复杂和强大的模型中。这也使得深度学习可以适用 于较小的数据集。