前 言
随着人工智能技术的发展,深度学习成为广受关注的领域。面向深度学习的开发框架不断涌现,但毫无疑问,TensorFlow 是其中最受欢迎的一款开源框架。
本书以培养读者的人工智能编程思维和技能为核心,以工作过程为导向,采用项目驱动的方式组织内容。具体来说,本书的编写思路和特色如下。
(1)在内容设计上,坚持由浅入深。
本书以PyCharm 和TensorFlow 1.10 为平台,介绍了深度学习的概念及其应用领域、TensorFlow 的语言基础、构建二维线性拟合模型、可视化模型、全连接网络构建手写字模型以及AlexNet 网络模型,最后讲到了模型的微调。由浅入深,层层递进,使读者一步步掌握深度学习的原理和技巧。
(2)在内容编排上,坚持以实践、应用为导向。
学习深度学习,需要有深厚的数理基础,这对初学者来说有一定的难度。本书从实践和应用出发,淡化理论,通过大量具体的例子来引导读者学习TensorFlow 编程技巧。
在实践内容的选择上,则尽可能从实用性和趣味性两方面进行考量,选择MNIST 图像识别的入门项目以及AlexNet 图像识别项目,使读者在实践中逐渐加深领悟,并最终掌握深
度学习的开发技巧。
(3)在具体知识点介绍上,尽量做到清晰而有深度。
编写过程中,尽量用简单的语言描述算法原理,做到条理清晰。
本书各章节的内容安排如下。
任务1:主要介绍人工智能的发展历程、人工智能与深度学习、人工智能与计算机视觉、人工智能与自然语言处理的关系以及TensorFlow 深度学习开发环境的搭建过程。
任务2:介绍深度学习的基本概念,使读者通过计算图、会话、数据喂入、模型的保存与恢复等理解深度学习模型。
任务3:阐述全连接神经网络模型架构、网络模型的优化方法、学习率、损失函数、向后传播等基本概念。
任务4:以MNIST 手写字模型为基础,介绍数据集的下载方法、标签转换为one-hot、图像转换为矩阵等展示;然后搭建全连接神经网络训练手写字模型;最后检验该模型的正确性。
任务5:讨论卷积神经网络模型。首先介绍传统的全连接神经网络模型的权限,以及卷积神经网络的网络结构;然后讲解卷积、池化以及特征提取、多通道、多卷积核卷积的概念;最后以LeNet-5 模型为基础,搭建手写字模型,提高网络训练的准确率。
任务6:以AlexNet 卷积神经网络模型为基础,构建物体识别模型。首先介绍CIFAR-10 数据集的特性、数据集的下载方法以及数据集图片和标签的展示;然后阐述如何通过数据增强的方式扩大数据集,从而增强模型的泛化性;最后通过构建网络模型,
识别不同种类的物体。
任务7:以TensorBoard 为基础,展示了神经网络的可视化方法。首先介绍Tensor-Board 可视化环境的搭建与配置过程;然后介绍标量、计算图、分布图等不同元素可视化的方法;最后通过可视化性别识别模型,使读者理解神经网络的训练过程。
任务8:阐述TensorFlow 最新的数据处理框架。首先介绍tf.data 数据处理框架的基本机制、迭代器的基本概念;然后讲解数据集的构建与解析过程;最后介绍数据批处理的基本机制。
本书由谷瑞、陈强、谭冠兰主笔编写。参与本书编写的人员还有罗颖、淡海英、盛雪丰、李露、王玉丽、徐迎春、茹新宇、胡海明、马千里等。
在本书的编写过程中,苏永新、谭传艺、文逸、沈杨怡等同学提供了大量帮助,为本书的编写搜集了大量案例。江苏千森信息科技有限公司提供了力所能及的帮助。正是有了他们专心细致的工作,才使得本书的内容更加丰富。在此,对他们表示深深的
感谢。
虽然在编写过程中,对书中所述内容已尽量核实、修正,并多次进行了文字校对,但因时间仓促,水平有限,书中的疏漏和错误之处在所难免,敬请广大读者批评指正。
谷 瑞
2020 年4 月