基本信息
- 出版社 : 机械工业出版社; 第1版 (2018年9月28日)
- 出版日期 : 2018年9月1日
- 品牌 : 北京华章图文信息有限公司
- 语言 : 简体中文
- 文件大小 : 26475 KB
- 纸书页数 : 599页
- 吴茂贵 (作者)
- 下载格式:azw3、epub、mobi
内容简介
在机器学习、深度学习中有很多抽象的概念、复杂的算法、深奥的理论,如Numpy的广播机制、神经网络中的共享参数、动量优化法、梯度消失或爆炸等,这些内容如果只用文字来描述,可能很难达到茅塞顿开的效果,但如果用一些图形来展现,再加上适当的文字说明,往往能取得非常好的效果,正所谓一张好图胜过千言万语。
前言
前言
为什么写这本书
人工智能新时代学什么?我们知道,Python是人工智能的首选语言,深度学习是人工智能的核心,而TensorFlow是深度学习框架中的No.1。所以我们在本书中将这三者有机结合,希望借此把这些目前应用最广、最有前景的工具和算法分享给大家。
人工智能新时代如何学?市面上介绍这些工具和深度学习理论的书籍已有很多,而且不乏经典大作,如讲机器学习理论和算法的有周志华老师的《机器学习》;介绍深度学习理论和算法的有伊恩·古德费洛等编著的《深度学习》;介绍TensorFlow实战的有黄文坚、唐源编著的《TensorFlow实战》、山姆·亚伯拉罕等编著的《面向机器智能的TensorFlow实践》等。这些都是非常经典的大作,如果你对机器学习、深度学习、人工智能感兴趣的话,这些书均值得一读。
本书在某些方面或许无法和它们相比,但我觉得也会有不少让你感到满意,甚至惊喜的地方。本书的特点具体包括以下几个方面。
1.内容选择:提供全栈式的解决方案
深度学习涉及范围比较广,既有对基础、原理的一些要求,也有对代码实现的要求。如何在较短时间内快速提高深度学习的水平?如何尽快把所学运用到实践中?这方面虽然没有捷径可言,但却有方法可循。本书基于这些考量,希望能给你提供一站式解决方案。具体内容包括:机器学习与深度学习的三大基石(线性代数、概率与信息论及数值分析);机器学习与深度学习的基本理论和原理;机器学习与深度学习的常用开发工具(Python、TensorFlow、Keras等),此外还有TensorFlow的高级封装及多个综合性实战项目等。
2.层次安排:找准易撕口、快速实现由点到面的突破
我们打开塑料袋时,一般从易撕口开始,这样即使再牢固的袋子也很容易打开。面对深度学习这个“牢固袋子”,我们也可采用类似方法,找准易撕口。如果没有,就创造一个易撕口,通过这个易撕口,实现点到面的快速扩展。本书在介绍很多抽象、深奥的算法时采用了这种方法。我们知道BP算法、循环神经网络是深度学习中的两块硬骨头,所以在介绍BP算法时,先介绍单个神经如何实现BP算法这个易撕口,再延伸到一般情况;在介绍循环神经网络时,我们也以一个简单实例为易撕口,再延伸到一般情况。希望通过这种方式,能帮助你把难题化易、把大事化小、把不可能转换为可能。
3.表达形式:让图说话,一张好图胜过千言万语
在机器学习、深度学习中有很多抽象的概念、复杂的算法、深奥的理论,如Numpy的广播机制、神经网络中的共享参数、动量优化法、梯度消失或爆炸等,这些内容如果只用文字来描述,可能很难达到茅塞顿开的效果,但如果用一些图形来展现,再加上适当的文字说明,往往能取得非常好的效果,正所谓一张好图胜过千言万语。
除了以上谈到的三个方面,为了帮助大家更好理解、更快掌握机器学习、深度学习这些人工智能的核心内容,本书还包含了其他方法。我们希望通过这些方法或方式带给你不一样的理解和体验,使抽象数学不抽象、深度学习不深奥、复杂算法不复杂,这或许就是我们写这本书的主要目的。
至于人工智能(AI)的重要性,想必不用多说了。如果说2016年前属于摆事实论证的阶段,那么2016年后已进入事实胜于雄辩的阶段了,而2018年后应该属于撸起袖子加油干的阶段。目前各行各业都忙于AI+,给人“忽如一夜春风来,千树万树梨花开”的感觉!
本书特色
要说特色的话,就是上面谈到的几点,概括来说就是:把理论原理与代码实现相结合;找准切入点,从简单到一般,把复杂问题简单化;图文并茂使抽象问题直观化;实例说明使抽象问题具体化。希望通过阅读本书,能给你带来新的视角、新的理解。
读者对象
·对机器学习、深度学习感兴趣的广大在校学生、在职人员。
·对Python、TensorFlow感兴趣,并希望进一步提升的在校学生、在职人员。
如何阅读本书
本书共22章,按照“基础→应用→扩展”的顺序展开,分为三个部分。
第一部分(第1~5章)为Python和应用数学基础部分:第1章介绍Python和TensorFlow的基石Numpy;第2章介绍深度学习框架的鼻祖Theano;第3~5章介绍机器学习、深度学习算法应用数学基础,包括线性代数、概率与信息论、概率图等内容。
第二部分(第6~20章)为深度学习理论与应用部分:第6章为机器学习基础,也是深度学习基础,其中包含很多机器学习的经典理论和算法;第7章为深度学习理论及方法;第8~10章介绍TensorFlow基于CPU、GPU版本的安装及使用,TensorFlow基础,TensorFlow的一些新API,如Dataset API、Estimator API等(基于TensorFlow1.6版本);第11~15章为深度学习中神经网络方面的模型及TensorFlow实战案例;第16章介绍TensorFlow的高级封装,如Keras、Estimator、TFLearn等内容;第17~20章为TensorFlow综合实战案例,包括图像识别、自然语言处理等内容。
第三部分(第21~22章)为扩展部分:介绍强化学习、生成式对抗网络等内容。
勘误和支持
书中代码和数据的下载地址为//www.feiguyunai.com。由于笔者水平有限,加之编写时间仓促,书中难免出现错误或不准确的地方,恳请读者批评指正。你可以通过QQ(1715408972)给我们反馈,也可以加入QQ交流群(763746291)进行交流,非常感谢你的支持和帮助。
致谢
在本书编写过程中,得到很多同事、朋友、老师和同学的支持!感谢张粤磊、张魁、刘未昕等负责后台环境的搭建和维护工作。感谢博世的王红星、上海理工管理学院的郁明敏,在百忙中挤出时间帮忙审稿;感谢上海交大慧谷的程国旗老师、东方易通的杨易老师、容大培训的童金浩老师、赣南师大的许景飞老师等对我们的支持和帮助!
感谢机械工业出版社的杨福川老师、李艺老师给予本书的大力支持和帮助。
最后,感谢我的爱人赵成娟,在繁忙的教学之余帮助审稿,提出不少改进意见或建议。
吴茂贵
精彩书摘
NumPy是Python的基础,更是数据科学的通用语言,而且与TensorFlow关系密切,所以我们把它列为第一章。
NumPy为何如此重要?实际上Python本身含有列表(list)和数组(array),但对于大数据来说,这些结构有很多不足。因列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],都需要有3个指针和3个整数对象。对于数值运算来说,这种结构显然比较浪费内存和CPU计算时间。至于array对象,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。
NumPy(Numerical Python的简称)的诞生弥补了这些不足,它提供了两种基本的对象:ndarray(N-dimensional array object)和ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
NumPy的主要特点:
·ndarray,快速,节省空间的多维数组,提供数组化的算术运算和高级的广播功能。
·使用标准数学函数对整个数组的数据进行快速运算,而不需要编写循环。
·读取/写入磁盘上的阵列数据和操作存储器映像文件的工具。
·线性代数,随机数生成,以及傅里叶变换的能力。
·集成C、C++、Fortran代码的工具。
在使用NumPy之前,需要先导入该模块:
import numpy as np
本章主要内容如下:
·如何生成NumPy的ndarray的几种方式。
·如何存取元素。
·如何操作矩阵。
·如何合并或拆分数据。
·简介NumPy的通用函数。
·简介NumPy的广播机制。
NumPy封装了一个新的数据类型ndarray,一个多维数组对象,该对象封装了许多常用的数学运算函数,方便我们进行数据处理以及数据分析,那么如何生成ndarray呢?这里我们介绍生成ndarray的几种方式,如从已有数据中创建;利用random创建;创建特殊多维数组;使用arange函数等。