人工智能( AI)算法在不同领域每周都会产生新的应用,并从中得到令人惊讶的结果。我们所见证的是这一领域整个发展历史上的最快发展阶段,而这些重大突破主要归功于深度学习。
深度学习包括一系列基于神经网络概念的算法,并扩展到包含在多个深层上传播的大量节点。
尽管神经网络的概念,即所谓的人工神经网络( ANN),可追溯到 20世纪 40年代末,但由于需要强大的计算能力和缺乏算法训练所需的大量数据,在发展初期很难得到真正应用。目前,并行使用图形处理器( GPU)来执行密集计算操作的能力为深度学习的应用扫清了障碍。
在此背景下,推出了《TensorFlow深度学习(原书第2版)》,扩展和修订了第 1版的部分内容,介绍了深度学习的核心概念,并采用了最新版本的 TensorFlow。
TensorFlow是 Google于 2011年发布的用于数学、机器学习和深度学习功能的开源框架。随后, TensorFlow在学术、科研和工业领域得到了广泛应用。在本书编写时,最稳定的 TensorFlow版本是 1.6,这是以统一的 API发布的,因此在 TensorFlow发展路线图中是一个重要且稳定的版本。本书还讨论并兼容了本书撰写阶段所提供的预发行版本 1.7。
TensorFlow提供了实现和研究 cuttingedge架构所需的灵活性,同时允许用户关注其模型结构,而并非数学细节。
在此,将通过实际的模型构建、数据采集、转换等学习深度学习编程技术。
祝您阅读愉快!
《TensorFlow深度学习(原书第2版)》读者
本书主要针对不具有复杂数值计算背景但又对深度学习感兴趣的开发人员、数据分析师和深度学习初学者。本书主要是为初学者提供一个获得深度学习实践经验的快速指南。
《TensorFlow深度学习(原书第2版)》主要内容
第 1章,深度学习入门。该章涵盖了后续章节将提到的所有概念;介绍了机器学习和深度学习的基础知识;分析了深度学习架构,该架构在深度(即在模式识别的多步处理过程中,数据通过的节点层数)上与常见的单隐层神经网络有所不同。另外,还通过一张总结了所有神经网络的图表来分析了这些架构,其中大多数深度学习算法都源于这些网络。该章最后分析了主要的深度学习框架。
第 2章,TensorFlow初探。该章根据一个实际问题详细阐述了 TensorFlow的主要特性,然后详细讨论了 TensorFlow的安装与配置。接着,在开始使用 TensorFlow之前,分析了计算、数据和编程模型。在该章最后部分,讨论了一个用于预测分析的线性回归模型实现示例。
第 3章,基于 TensorFlow的前馈神经网络。该章介绍了深度置信网络( DBN)和多层感知器( MLP)等不同前馈神经网络( FFNN)结构的理论背景。然后,讲述了如何训练和分析模型评估所需的性能指标,以及如何调节 FFNN的超参数以获得更好的优化性能。另外,还讨论了 MLP和 DBN的两个应用示例,如何为银行营销数据集的预测分析构建鲁棒而精确的预测模型。
第 4章,卷积神经网络( CNN)。该章介绍了 CNN,这是基于深度学习的图像分类器的基本模块。在此将着重考虑最重要的 CNN架构,如 LeNet、AlexNet、VGG和 Inception,并提供了实际案例,特别是针对 AlexNet和 VGG。接着,研究了迁移学习和风格学习技术。在该章结束时开发了一个 CNN通过一系列面部图像来训练网络,以对其情绪进行分类。
第 5章,优化 TensorFlow自编码器。该章为优化自编码器进行数据去噪和降维提供了良好的理论依据。然后,研究如何实现自编码器,逐步实现更鲁棒的自编码器,例如去噪自编码器和卷积自编码器。最后,分析了利用自编码器进行欺诈分析的实际案例。
第 6章,循环神经网络( RNN)。该章为 RNN提供了一些理论背景。分析了一些用于图像分类、电影情感分析和 NLP的产品垃圾邮件预测模型实现示例。最后,学习了如何对时间序列数据开发预测模型。
第 7章,异构和分布式计算。该章介绍了在 GPU板卡和分布式系统上执行 TensorFlow模型的基本知识。另外,还将通过应用示例来学习基本概念。
第 8章,TensorFlow高级编程。该章对以下 TensorFlow基本库进行了概述: tf.estimator、TFLearn、Pretty Tensor和 Keras。对于每个库,都通过应用程序进行了主要功能描述。
第 9章,基于因子分解机的推荐系统。该章提供了几个关于如何开发预测分析推荐系统的示例,以及推荐系统的一些理论背景。然后,分析了采用协同过滤和 K均值开发电影推荐引擎的示例。考虑到经典方法的局限性,该章分析了如何利用神经因子分解机来开发更精确且更鲁棒的推荐系统。
第10章,强化学习。该章涵盖了强化学习的基本概念。在此将学习目前最主流的强化学习算法之一—Q-Learning算法。此外,还将介绍 OpenAI Gym框架,这是一个 Tensor-Flow兼容的工具包,用于开发和比较强化学习算法。最后,通过一个深度 Q-Learning算法来解决 Cart-Pole问题。
充分利用本书
. 假设读者已具有一种语言的基本编程水平,以及基本熟悉计算机科学技术和方法,包括计算机硬件和算法的基本认识。具有一定的初等线性代数和微积分的数学能力。
. 软件:Python 3.5.0、Pip、pandas、numpy、TensorFlow、Matplotlib 2.1.1、IPython、 Scipy 0.19.0、sklearn、seaborn、tffm等。
. 步骤:在 Ubuntu的终端上执行以下命令:
$ sudo pip3 install pandas numpy tensor.ow sklearn seaborn tffm
不过,在具体章节中也提供了安装指南。
示例代码下载
您可以在 http://www.packtpub.com上根据账号下载《TensorFlow深度学习(原书第2版)》的示例代码。如果想要购买英文原书,可以访问http://www.packtpub.com/support并注册,将直接通过电子邮件发送给您。
下载代码文件步骤如下:
1)在 http://www.packtpub.com网站上登录或注册。
2)选择SUPPORT选项。
3)单击Code Downloads & Errata。
4)在 Search框中输入书名,并按屏幕上的提示操作。下载完成后,请用以下最新版本来解压文件夹:
. Windows操作系统: WinRAR / 7-Zip。
. Mac操作系统: Zipeg / iZip / UnRarX。
. Linux操作系统: 7-Zip / PeaZip。
《TensorFlow深度学习(原书第2版)》的代码包还在 GitHub网址(https://github.com/PacktPublishing/Deep-Learning-with-TensorFlow-Second-Edition)上托管。
下载本书彩图
我们还提供了《TensorFlow深度学习(原书第2版)》中图片的彩色PDF文件。可从 https://www.packtpub.com/sites/de-fault/.les/downloads/DeepLearningwithTensorFlowSecondEdition_ColorImages.pdf下载该文件。
深度学习包括一系列基于神经网络概念的算法,是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。其最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。由于需要强大的计算能力和缺乏算法训练所需的大量数据,神经网络在发展初期很难得到真正应用。目前,并行使用图形处理器( GPU)来执行密集计算操作的能力为深度学习的应用扫清了障碍。学习如何使用 TensorFlow构建深度学习应用是目前 AI(人工智能)领域十分热门的技术,也是创建 AI应用所需的必要技能。
《TensorFlow深度学习(原书第2版)》是在第 1版的基础上扩展和修订了部分内容,介绍了深度学习的核心概念,并采用了最新版本的 TensorFlow。
TensorFlow是 Google于 2011年发布的用于数学、机器学习和深度学习功能的开源框架。随后, TensorFlow在学术、科研和工业领域得到了广泛应用。本书基于 TensorFlow 1.6版本,还讨论并兼容了 TensorFlow 1.7版本。
《TensorFlow深度学习(原书第2版)》深入讲解了如何使用 TensorFlow 构建深度学习应用,从实践的角度讲解深度学习知识。
《TensorFlow深度学习(原书第2版)》主要内容包括:
1)深度学习入门。介绍了机器学习和深度学习的基础知识;分析了深度学习架构。另外,还通过图表总结了所有神经网络架构,其中大多数深度学习算法都来源于这些网络。
2)TensorFlow初探。介绍了 TensorFlow的主要特性,以及 TensorFlow的安装与配置。通过示例进行 TensorFlow计算、数据和编程模型的学习。
3)基于TensorFlow的前馈神经网络( FFNN)。介绍了深度置信网络( DBN)和多层感知器( MLP)等不同 FFNN结构的理论背景;讲述了如何训练和分析模型评估所需的性能指标,以及如何调节 FFNN的超参数以获得更好的优化性能;另外,还讨论了 MLP和 DBN的两个应用示例。
4)基于深度学习的图像分类器的基本模块,介绍了卷积神经网络( CNN)。以 CNN体系结构为例,通过案例讲述 LeNet、AlexNet、VGG和 Inception等结构;研究了迁移学习和风格学习技术。
5)优化TensorFlow自编码器。为优化自编码器进行数据去噪和降维提供了良好的理论依据;研究如何实现自编码器并进一步完善;最后,分析了利用自编码器进行欺诈分析的实际案例。
6)循环神经网络(RNN)。为 RNN提供了一些理论背景;分析了一些用于图像分类、电影情感分析和 NLP的产品垃圾邮件预测模型的示例;最后,学习了如何对时间序列数据开发预测模型。
7)异构和分布式计算。介绍了在 GPU板卡和分布式系统上执行 TensorFlow模型的基本知识。
8)TensorFlow高级编程。对以下 TensorFlow基本库进行了概述: tf.estimator、TFLea-rn、Pretty Tensor和 Keras。对于每个库,都通过应用程序进行了主要功能描述。
9)基于因子分解机的推荐系统。提供了几个关于如何开发预测分析推荐系统的示例,以及推荐系统的一些理论背景;分析了采用协同过滤和 K均值开发电影推荐引擎的示例;最后分析了如何利用神经因子分解机来开发更精确且更鲁棒的推荐系统。
10)强化学习。涵盖了强化学习的基本概念以及 Q-Learning算法。此外,介绍了 Ope-nAI Gym框架。最后,通过一个深度 Q-Learning算法来解决 Cart-Pole问题。
《TensorFlow深度学习(原书第2版)》作者在数值计算、并行计算和科学可视化领域已有十多年的研究经验。对 C、 C++、Java、Scala、R和 Python中的算法理解和数据结构有着坚实的基础。已发表多篇有关生物信息学、语义网络、大数据、机器学习以及利用 Spark、Kafka、Docker、Zeppelin、 Hadoop和 MapReduce实现深度学习的研究论文和技术报告。还精通(深度)机器学习库,如 Spark ML、Keras、Scikit-learn、TensorFlow、DeepLearning4j、MXNet和 H2O。《TensorFlow深度学习(原书第2版)》取材合理,既讨论了许多实际技术问题,也简要介绍了一些问题的理论基础。全书条理清晰,适合作为计算机及其相关专业高年级本科生的教材或教学参考书,或作为有关研究生的基础课程教材或参考书,也适合其他热爱计算机科学技术、不具有复杂数值计算背景但又对深度学习感兴趣的开发人员、数据分析师和深度学习初学者阅读学习。《TensorFlow深度学习(原书第2版)》主要是为初学者提供一个获得深度学习实践经验的快速指南。
通过《TensorFlow深度学习(原书第2版)》,可掌握如何通过 TensorFlow 构建深度学习应用,通过构建若干深度学习模型以及优化过程获得实践经验,还能够在浏览器、云端和移动设备上实际运用 TensorFlow模型。
《TensorFlow深度学习(原书第2版)》第 1-6章主要由连晓峰翻译,第 7~10章主要由谭励翻译,最后由连晓峰校对。赵宇琦、刘栋、张淑行、王焜、董旭、王子天、田恒屹、罗广征、朱斌、张斌、洪兆瑞、吴京鸿、郭其豪、王俊杰、陈慧敏、贾伟、谢雨露等人参与了部分翻译和整理工作,为本书的顺利完成付出了辛勤劳动。
由于译者的水平有限,《TensorFlow深度学习(原书第2版)》中不当或错误之处恳请各位业内专家和广大读者不吝赐教。
译者