1、 I IT 工程师宝典 神经网络与深度学习 基于 TensorFlow 框架和 Python 技术实现 包子阳 编著 Publishing House of Electronics Industry 北京BEIJING II 内 容 简 介 Python、TensorFlow、神经网络和深度学习因人工智能的流行而成为当下 IT 领域的热门关键词。本书首先介绍了 Python 及其常用库 Numpy、Matplotlib 和 Scipy 的基本使用方法;其次介绍了 TensorFlow的基本知识及使用方法;然后介绍了神经网络的基础知识以及神经网络基本应用感知机、线性回归与逻辑回归的理论与实现;最
2、后介绍了两种热门的深度神经网络卷积神经网络和循环神经网络的理论与实现。本书内容由浅入深,循序渐进,实践性强,包含丰富的仿真实例。本书适用于电子、通信、计算机、自动化、机器人和经济学等学科以及信号处理、语音识别、图像识别、模式识别、机器翻译和人机交互等领域的读者,可作为高等院校高年级本科生和研究生的学习用书,也可供相关领域的科研人员学习参考。本书实例源程序可从华信教育资源网()免费下载,或通过与本书责任编辑()联系获取。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 神经网络与深度学习:基于 TensorFlow 框架和 Python 技术
3、实现/包子阳编著.北京:电子工业出版社,2019.4(IT 工程师宝典)ISBN 978-7-121-36201-9 .神 .包 .人工神经网络研究机器学习研究 .TP183TP181 中国版本图书馆 CIP 数据核字(2019)第 057359 号 责任编辑:张来盛()印 刷:山东华立印务有限公司 装 订:山东华立印务有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980 1/16 印张:12.25 字数:280 千字 版 次:2019 年 4 月第 1 版 印 次:2019 年 4 月第 1 次印刷 定 价:49.80 元 凡所购买电
4、子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)88254467;。III 前 言 继 2016 年 3 月击败世界围棋大师李世石,AlphaGo 又于 2017 年 5 月横扫中国九段棋手柯洁,从此“人工智能”成为最火热的词汇之一,人工智能的应用遍地开花,热度持续高涨,IT 领域甚至言必称之。因此,众多有志之士欲投身到人工智能的浪潮之中,但如何快速入门成为摆在他们面前的第一道障碍。千里之行,始于足下。下面先梳理一下人工智能、机
5、器学习和深度学习的关系。人工智能是宽泛概念上的高级计算智能,机器学习是研究人工智能的一个有效手段,而深度学习是机器学习的一个分支。深度学习突破了传统机器学习算法的瓶颈,推动了人工智能领域的快速发展;而目前大多数深度学习都是通过神经网络来实现的。工欲善其事,必先利其器。神经网络和深度学习的框架和程序实现语言有很多种。其中,TensorFlow 由于其灵活性、高效性和可移植性,成为目前最流行的一种深度学习框架;Python 语言由于其简洁性、易读性和可扩展性,已成为目前最受欢迎的深度学习程序设计语言。本书基于 TensorFlow 框架和 Python 语言来实现基本神经网络算法和深度学习算法,主
6、要内容包括:第 1 章综述人工智能、机器学习和深度学习的基本知识;第 2 章、第 3 章介绍 Python 及其基础库 Numpy、Matplotlib 和 Scipy 的使用方法;第 4 章介绍 TensorFlow的基本知识和使用方法;第 5 章、第 6 章介绍神经网络的基础知识以及它的基础应用感知机、线性回归与逻辑回归的理论与实现;第 7 章、第 8 章介绍两种热门的深度神经网络 卷积神经网络和循环神经网络的理论与实现。本书旨在作为一本神经网络与深度学习的入门图书,其主要特点有:(1)系统性:首先介绍 Python、TensorFlow 的使用方法,然后介绍基本神经网络的理论及应用,最后
7、介绍深度神经网络的理论及实现,内容由浅入深、循序渐进。(2)通用性:程序实例采用通用的数值优化和 MNIST 手写字体案例,适合各学科和各领域的人员理解和学习。IV(3)实用性:注重理论联系实际,首先进行理论介绍,然后进行程序实现,通过理论介绍来初步了解算法,通过程序实现来深入理解算法。本书适于电子、通信、计算机、自动化、机器人和经济学等学科以及信号处理、语音识别、图像识别、模式识别、机器翻译和人机交互等领域的读者阅读,既可作为高等院校高年级本科生和研究生的学习用书,也可供相关领域的科研人员学习参考。为了便于读者学习和参考,书中的实例程序可在华信教育资源网(https:/ 2019 年 1 月
8、 V 目 录 第 1 章第 1 章 绪论绪论1 1.1 人工智能1 1.2 机器学习2 1.2.1 监督学习2 1.2.2 非监督学习3 1.2.3 半监督学习3 1.3 深度学习3 1.3.1 卷积神经网络4 1.3.2 循环神经网络4 1.4 实现工具5 1.4.1 Python 5 1.4.2 TensorFlow 6 第 2 章第 2 章 Python 基础基础7 2.1 Python 简介7 2.1.1 概述7 2.1.2 Python 的特点 8 2.1.3 Python 的版本 8 2.2 Python 的安装9 2.2.1 Python 官网下载安装 9 2.2.2 Anaco
9、nda 的安装11 2.3 Spyder 编辑器 13 2.3.1 Spyder 界面 13 2.3.2 Spyder 快捷键 16 2.4 Python 基础知识 16 2.4.1 基本语法 16 2.4.2 基本数据类型和运算 19 2.4.3 列表、元组和字符串 22 2.4.4 字典和集合 28 2.4.5 分支和循环 31 VI 2.4.6 函数和类 33 2.4.7 模块 36 第 3 章第 3 章 Python 基础库基础库 37 3.1 Numpy 库 37 3.1.1 创建数组 38 3.1.2 ndarray 类 40 3.1.3 数组操作 42 3.1.4 形状操作 48
10、 3.2 Matplotlib 库 51 3.2.1 快速绘图 51 3.2.2 绘制多轴图 55 3.2.3 绘制 3D 图 58 3.3 Scipy 库 60 3.3.1 scipy.io 60 3.3.2 scipy.linalg 61 3.3.3 scipy.fftpack 62 3.3.4 scipy.optimize 63 3.3.5 scipy.interpolate 64 3.3.6 scipy.stats 65 第 4 章第 4 章 TensorFlow 基础基础 67 4.1 概述 67 4.2 TensorFlow 的安装 68 4.3 TensorFlow 基本概念 7
11、0 4.3.1 Graph 和 Session 71 4.3.2 placeholder 73 4.3.3 tensor 74 4.3.4 Variable 76 4.3.5 fetch 和 feed 79 4.4 MNIST 80 4.4.1 MNIST 简介 80 4.4.2 MNIST 解析 81 VII 第 5 章第 5 章 神经网络基础神经网络基础 85 5.1 神经网络概述 85 5.1.1 神经网络常用术语 86 5.1.2 神经网络模型 88 5.1.3 神经网络的运作 89 5.1.4 神经网络算法的特点 90 5.2 神经元模型 90 5.3 激活函数 92 5.3.1 s
12、igmoid 函数 93 5.3.2 tanh 函数 94 5.3.3 ReLU 函数 94 5.3.4 softmax 函数 95 5.4 损失函数 95 5.4.1 均方差函数 96 5.4.2 交叉熵函数 96 5.5 梯度下降算法 97 5.5.1 梯度下降算法推导 97 5.5.2 梯度下降算法种类 98 5.6 BP 算法 98 5.6.1 BP 网络简介 98 5.6.2 BP 算法流程 99 5.7 仿真实例101 第 6 章第 6 章 神经网络基础应用神经网络基础应用107 6.1 感知机107 6.1.1 感知机网络结构108 6.1.2 感知机学习规则109 6.1.3
13、感知机网络训练110 6.1.4 仿真实例110 6.2 线性回归113 6.2.1 线性回归理论113 6.2.2 仿真实例115 6.3 逻辑回归119 6.3.1 逻辑回归理论119 VIII 6.3.2 仿真实例121 第 7 章第 7 章 卷积神经网络卷积神经网络127 7.1 概述127 7.2 卷积神经网络结构129 7.2.1 卷积层130 7.2.2 池化层134 7.2.3 全连接层136 7.2.4 Dropout 层 137 7.3 训练过程138 7.4 卷积神经网络经典模型138 7.4.1 LeNet-5 模型138 7.4.2 AlexNet 模型140 7.5
14、 仿真实例141 第 8 章第 8 章 循环神经网络循环神经网络149 8.1 循环神经网络概述149 8.1.1 循环神经网络结构150 8.1.2 循环神经网络前向传播151 8.1.3 循环神经网络训练算法152 8.2 长短时记忆(LSTM)网络153 8.2.1 LSTM 网络结构153 8.2.2 LSTM 前向计算154 8.2.3 LSTM 网络训练算法158 8.2.4 LSTM 网络程序实现159 8.3 循环神经网络的变种160 8.3.1 双向循环神经网络160 8.3.2 深层循环神经网络161 8.4 仿真实例162 附录 A 附录 A Python 主要函数主要函
15、数169 附录 B 附录 B TensorFlow 主要函数主要函数177 参考文献参考文献186 第 1 章 绪 论 1 第第 1 1 章章 绪绪 论论 1.1 人工智能 1956 年夏,在美国的达特茅斯学院,John McCarthy、Marvin Minsky、Claude Shannon、Allen Newel、Herbert Simon 等科学家聚在一起,共同研究和探讨有关用机器模拟智能的一系列问题,并首次提出了“人工智能”这一术语,标志着人工智能这门新兴学科的正式诞生。人工智能是计算机科学的一个分支,它试图让人们了解智能的实质,并生产出一种新的能以与人类智能相似的方式做出反应的智能
16、机器。人工智能是研究使计算机模拟人的某些思维过程和智能行为的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。该领域的研究涉及机器人、语言识别、图像识别、自然语言处理和专家系统等1。实现人工智能是人类长期以来一直追求的梦想。虽然计算机技术在过去几十年里取得了长足的发展,但是实现真正意义上的机器智能至今仍然困难重重。截至目前,还没有一台电脑能产生“自我”的意识。伴随着神经解剖学的发展,观测大脑微观结构的技术手段日益丰富,人类对大脑组织的形态、结构与活动的认识越来越深入,人脑信息处理的奥秘也正在被逐步揭示。如何借助于神经科学、脑科学与认知科学的研究成果,研究大脑信息表征、转换机理和学习规则,建立模拟大脑信息处理过程的智能计算模型,最终使机器掌握人类的认知规律,是“类脑智能”的研究目标。类脑智能是涉及计算科学、认知科学、神经科学与脑科学的交叉前沿方 神经网络与深度学习基于 TensorFlow 框架和 Python 技术实现 2 向。类脑智能的实现离不开对大脑神经系统的研究。众所周知,人脑是由几十亿个高度互连的神经元组成的复杂生物网络,也是人类分析