图解深度学习与神经网络:从张量到TensorFlow实现pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:图解深度学习与神经网络:从张量到TensorFlow实现pdf/doc/txt格式电子书下载
推荐语:290张图+110个可执行的TensorFlow示例程序+算法示例,神经网络深度学习人工智能参考书,源代码文件供下载
作者:张平著
出版社:电子工业出版社
出版时间:2018-09-01
书籍编号:30457430
ISBN:9787121347450
正文语种:中文
字数:163219
版次:1
所属分类:互联网+-人工智能
版权信息
书名:图解深度学习与神经网络:从张量到TensorFlow实现
作者:张平
ISBN:9787121347450
版权所有 · 侵权必究
前言
2016年是人工智能进入大众视野的一年,从AlphaGo到无人驾驶,从量子计算机到马斯克的太空计划,每一个焦点事件的背后都与人工智能有着很大的联系。2016年至今,短短两年的时间,人工智能在与人类生活息息相关的医疗健康、金融、零售、娱乐等方面,发挥出了巨大的潜能。
从应用领域来看,人工智能可应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、语音识别、自动程序设计、智能控制、机器翻译、智能对话机器人等领域。掀起这股人工智能热潮最重要的技术之一就是深度学习(Deep Learning)技术。
本书的整体架构
本书由14章组成。第1章和第2章主要介绍TensorFlow的安装和基础使用知识。第3章主要介绍高等代数中的梯度和求解最优化问题的梯度下降法。第4章介绍如何使用第1章~第3章中讲的知识解决机器学习中比较简单的回归问题,便于读者学习后续章节中全连接神经网络和卷积神经网络的知识。第5章和第6章主要介绍全连接神经网络,包括全连接神经网络的计算步骤,如何利用全连接神经网络构建分类模型,以及全连接神经网络的梯度反向传播算法,等等。第7章主要介绍一维离散卷积。第8章主要介绍二维离散卷积。第9章主要介绍池化操作。第10章主要介绍经典的卷积神经网络。第11章~第13章主要介绍卷积神经网络的梯度反向传播。第14章介绍搭建神经网络的主要函数。本书中的每一章都会涉及大量的技术细节描述,便于读者掌握深度学习背后的基础知识及技术细节。
本书特色
众所周知,掌握机器学习理论的数学门槛比较高,而大量优秀的机器学习、深度学习开源框架在工程实现上帮助我们越过了这些数学细节,所以很多深度学习的相关书籍是以讲解项目为主要目标。本书试图从另一个角度引导入门者直接面对深度学习背后的数学基础,并进行了以下两点尝试:
(1)不同书籍对同一个数学公式的符号表达可能不同,这给入门者带来了比较大的困扰。本书试图通过简单的示例和图例的形式展示复杂抽象的数学公式背后的计算原理,通过示例更好地理解复杂抽象的公式。
(2)作者采用手动计算和利用程序代码进行处理这两种方式讲解示例,两种方式的结果可以相互验证,帮助入门者更好地理解开源框架中的函数接口。
作者认为,想在人工智能路上走得更远,内功扎实是致胜关键。希望本书可以帮助入门者夯实基础。
本书面向的读者
本书的目标读者是想学习神经网络和深度学习的初学者。同时,本书的示例代码基于TensorFlow的Python API,所以需要读者具备基本的Python编程基础。
致谢
感谢我的父母、姐姐一家人一直以来对我生活和工作的支持。
感谢TensorFlow开源库的所有贡献者。
感谢电子工业出版社博文视点的郑柳洁老师,在本书写作的过程中,不厌其烦地解答我遇到的各种问题,感谢她一直以来的支持和肯定。
我们期待您的反馈
限于篇幅,加之作者水平有限,书中疏漏和错误之处在所难免,恳请读者批评并指正,我们视读者的满意为己任,视读者的反馈意见为无价之宝,如果您发现了错误或者对书中内容有任何建议,都可以将其发送至电子邮箱wxcdzhangping@126.com,也可以登录博文视点官网,在本书页面上留言。本书中所有样例的代码,均可从博文视点官网下载。
作者:张平
1 深度学习及TensorFlow简介
1.1 深度学习
2016年是人工智能元年,随后各行各业开始全面拥抱人工智能,掀起这股热潮最重要的技术之一就是深度学习(Deep Learning)技术,它是机器学习研究中一个全新的领域。简单说,“深度学习”就是多层的神经网络,“深度”某种意义上指人工神经网络的层数,旨在模拟人的思维过程和智能行为,如学习、推理、思考、规划等,让机器的行为看起来像人所表现出的智能行为一样,甚至有可能超过人的智能。让机器人像人类一样听懂语言,就是现在的语音识别要达到的效果;让机器人像人类一样看懂文字,就是现在的自然语言处理、机器翻译、聊天机器人等要达到的效果;让机器人像人类一样看懂图片,就是现在的计算机视觉识别要达到的效果;让机器人像人类一样进行运动控制,就是现在的自动驾驶、自主行动的机器人等要达到的效果。
深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,提供了一种直接从数据出发(输入端),经过网络结构模型得到最终结果(输出端)的端到端(endto-end)的新模式,带动了人工智能的崛起,传统的人工智能算法是依赖人工总结的规律进行编程来解决问题的,但是深度学习有所不同,它不需要人为提取解决问题的特征或者规律,它能从输入的大量数据中自发地总结出规律,自适应地调整自身结构,从而举一反三,泛化至从未见过的案例中。用一句话来概括,深度学习最重要的特点就是能自动地从数据中学习。
神经网络背后的数学理论大概出现在20世纪60年代,至今也差不多研究了半个世纪。回望过去,有三大壁垒阻碍了它的发展和应用:数据量和规模量小、计算机运算能力差、缺乏有效且快速的训练网络的算法。如今,我们正处于信息爆炸的大数据时代,各种数据从无穷无尽的渠道不断涌入,对于深度学习算法,获取足够多的数据,就有机会产生更好的结果。与此同时,计算机的性能也在持续提升,以前计算机的运算核心CPU专为顺序串行计算设计,而主流的神经网络算法类似人脑神经,不仅结构是并行的,而且处理过程也是并行且同时的,所以大规模并行处理是神经网络计算的重要特征,CPU无法快速应对算法的复杂度带来的巨大并行运算量,但是得益于计算机游戏的图形处理单元(GPU)的快速发展,为深度学习提供了必需的计算能力,帮助拉开了深度学习迅猛发展的序幕。
常用的深度学习的三种学习模式为:
(1)用有标注的大数据做深度监督学习。
(2)用无标注的(更)大数据做非监督学习。
(3)以奖励反馈为本的深度增强学习,本书主要介绍的是第一种学习模式。
1.2 TensorFlow简介及安装
TensorFlow是从谷歌内部使用的第一代深度学习工具DistBelief的经验和教训总结来的,于2015年11月作为一个新的项目向公众开源,伴随着2016年人工智能浪潮的到来,迅速成为计算机视觉、语音识别、机器翻译、自然语言处理等各个领域使用的深度学习工具。
TensorFlow的安装不复杂,作者以在Ubuntu系统环境下,基于Anaconda 3的安装为例进行介绍。Anaconda 3集成了Python科学计算、计算机视觉等方面的第三方库,并组织好了各个库之间的依赖关系,安装方便、快捷。首先进入官方网站,根据自己的系统和需求下载相应的版本,作者以下载Linux下基于Python 3.6的版本为例进行介绍,如图1-1所示。
图1-1 下载Anaconda3-5.1
单击“Download”按钮,下载文件Anaconda3-5.1.0-Linux-x86_64.sh(注意:不同的版本文件名称不同),然后在终端输入以下命令,开始安装:
bash Anaconda3-5.1.0-Linux-x86_64.sh
默认安装在根目录/anaconda3文件夹下,安装过程中会提示需要添加到系统环境变量,如图1-2所示,选择“yes”选项,否则,安装完成后,还需要手动添加。
图1-2 Anaconda3的安装过程
安装成功后,界面如图1-3所示。
图1-3 Anaconda3安装成功
通过网址https://github.com/tensorflow/tensorflow,下载对应的TensorFlow安装版本,如图1-4所示。
图1-4 TensorFlow的各个安装版本
以下载Linux CPU-only Python 3.6(build history)为例,下载文件tf_nightly-1.head-cp36cp36m-linux_x86_64.whl(注意:不同版本文件名称不同),然后在终端输入以下命令:
pip install tf_nightly-1.head-cp36-cp36m-linux_x86_64.whl
开始安装TensorFlow,安装的过程中会自动下载各种依赖包,过程如图1-5所示。
图1-5 TensorFlow的安装过程
安装成功后,界面如图1-6所示。
图1-6 成功安装TensorFlow
安装完成后,在终端输入以下命令,如图1-7所示。
图1-7 打开Spyder编译器
打开Spyder编译器,显示界面如图1-8所示。
图1-8 Spyder界面
然后在界面右侧的命令行窗口中输入以下代码,用来打印安装的TensorFlow的版本号:
import tensorflow as tf
print(tf.__version__)
打印结果为:
1.5.0
代表安装的TensorFlow版本为1.5,如图1-9所示。
图1-9 打印TensorFlow的版本号
安装TensorFlow其他版本的操作类似,本书不再赘述(注意:安装方法随着版本不断变化。如果读者发现按照书上的步骤安装报错,请登录TensorFlow官网,找到相应的版本安装步骤对照操作即可)。在成功搭建TensorFlow的开发环境后,第2章将介绍TensorFlow的Python API的核心数据结构及其基础函数,为后续章节利用TensorFlow学习深度学习打下基础。
2 基本的数据结构及运算
本章我们主要介绍TensorFlow中常用的数据结构,以及其对应的运算及函数接口,这些内容是后续章节利用TensorFlow搭建神经网络的基础。我们先从基本的数据结构讲起。
2.1 张量
Tensor是TensorFlow中最基础、最重要的数据结构,常翻译为张量,是管理数据的一种形式。
2.1.1 张量的定义
所谓张量,可以理解为n维数组或者矩阵,TensorFlow提供函数:
constant(value, dtype=None, shape=None, name="Const", verify_shape=False)
来构造张量。接下来,作者依次介绍零维、一维、二维、三维、四维张量构造的示例。
1.零维张量
可以将零维张量理解为标量或者常数。如图2-1所示,用Tensor可将常数3表示为如下形式。
图2-1 零维张量
2.一维张量
可以将一维张量理解为向量。图2-2所示为长度是4的向量,可利用Tensor表示为如下形式。
图2-2 一维张量
3.二维张量
可以将二维张量理解为高等数学中的矩阵。以图2-3所示的3行4列的矩阵为例,利用Tensor可以表示为如下形式。
图2-3 二维张量
4.三维张量
可以将三维张量理解为三维数组。图2-4所示为3行4列2深度的三维张量。
三维张量可以理解为多个二维张量在深度方向的组合。对于二维张量,从图2-3中可知,在(0,0)处的值为−1;对于三维张量,如图2-4所示,在(0,0)处的值可以理解为一个向量[−1,−11],这样在利用函数constant构造三维张量时会更容易理解。
图2-4 三维张量
5.四维张量
可以将四维张量理解为多个三维张量。如图2-5所示,将2个三维张量视为一个整体,就是1个四维张量。
图2-5 四维张量
理解了张量,我们将打印张量作为学习TensorFlow的第一步。以函数print打印一个长度为3的一维张量为例,它的示例代码如下:
import tensorflow as tf
#"一维张量"
t=tf.constant([1,2,3],tf.float32,name=\'t\')
print(t)
打印结果如下:
Tensor("t:0", shape=(3,), dtype=float32)
从打印结果可以看出,并没有打印出张量的值,只是打印了张量的一些信息,如该张量的尺寸(或者称为形状)shape=(3,),张量的数据类型dtype=float32。关于张量的尺寸,后面的章节中会详细描述,下面介绍如何打印张量中的值。
2.1.2 Tensor与Numpy的ndarray转换
在介绍如何打印张量的值之前,作者先简
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询