前言

前言

深度神经网络(DNN),也称为深度学习,是人工智能领域的重要分支,是目前许多AI应用的基础。自从深度学习在语音识别和图像识别任务中展现出其突破性的成果后,使用深度学习的应用数量呈爆炸式增加。这些深度学习方法被大量应用在身份识别、无人驾驶汽车、癌症检测、游戏AI等方面。甚至在许多领域中,人工的深度神经网络的准确度已经超过人类。

深度学习作为人工智能领域目前最受青睐的分支,在给我们展现一幅美如画的未来的同时,它本身也在不断进步。深度学习就像一个刚刚学会走路的婴儿一样,大家都怀着惊奇的目光关注着他,不知道这个婴儿长大会给世界带来什么,是福音还是灾难,是天使还是恶魔。

很多朋友问我,我想学习深度神经网络,是不是对数学基础的要求很高,是不是应该先复习一下数学的基础知识?

深度学习的数学原理其实并不复杂,只是一些设计思想确实比较巧妙。对于入门深度学习的数学要求,其实只要知道如何对函数求导,在矩阵相乘的时候,知道是哪一行乘以那一列就可以了。深度学习的入门门槛甚至比传统机器学习算法的入门门槛还要低。

谷歌开源的TensorFlow框架是目前最活跃的深度学习框架,在众多开源框架中,几乎形成了一家独大的局面。使用TensorFlow的人越多,社区就越活跃,遇到问题就越容易解决,相关的开源项目也会越多。

本书以TensorFlow框架作为使用工具,从简单的加法运算操作开始,介绍TensorFlow的基本使用方法,然后实现了一个最简单只有两个参数的模型,接着实现了图像识别、语音识别、自然语言处理等一些高级应用,所有应用和例子都有对应代码的完整实现。

此外,本书还花了很大篇幅介绍深度神经网络的原理和推导过程,还有卷积神经网络和循环神经网络的原理和推导过程。书中的内容由浅入深,既有原理的介绍,又有实战操作。对于完全没有深度学习基础的读者,本书不仅可以帮助快速上手项目,也可以助你迅速掌握理论基础。

本书目的

我们希望读者通过阅读本书,对深度学习的基本原理有深入了解,并且可以利用TensorFlow实现一个完整的项目。

读者对象

阅读本书的读者要求具备以下基础。

  • 数学基础:知道函数如何求导、两个二维矩阵相乘是如何计算的以及数学表达式\Sigma等简单符号的含义。
  • 编程基础:知道数组、矩阵的概念,能够读懂最基本的Python程序。

本书内容

本书的前3章是TensorFlow的基础,第4章介绍了深度学习的基础。需要说明的是,在第3章的一些示例中,涉及深度学习的训练流程方面的知识,在遇到相关知识的时候,读者可以先阅读第4章的部分章节。第5章介绍了卷积神经网络基础,第6章介绍了循环神经网络,第7章介绍了分布式训练方法。

以下是各章介绍。

第1章主要介绍了TensorFlow的特点以及目前流行的其他深度学习框架。

第2章主要介绍了TensorFlow在Linux、Windows等平台上的安装,以及与GPU相关的CUDA和cuDNN驱动安装。

第3章主要介绍了TensorFlow程序的基本结构、运行逻辑、保存和读取模型等基本操作,以及如何读取不同格式的数据、共享变量的使用等基础知识。

第4章介绍了深度学习的基本概念,包括神经网络前向计算、损失函数、反向传播计算和优化函数等,这一章主要是让没有接触过深度学习的读者从理论上入门,知道神经网络的数学原理以及推导规则。

第5章介绍了卷积神经网络,内容涉及前向计算和反向传播推导,如何用TensorFlow实现一个卷积神经网络,最后结合一个简单的例子介绍数据在卷积神经网络中的每一层是如何计算的。

第6章介绍了循环神经网络,内容涉及各种循环神经网络的变种和特点,以及如何用RNN实现简单的语音识别任务和自然语言处理中的中文分词任务。

第7章介绍在大规模应用的场景下,如何实现分布式的深度学习训练。

最后,由衷地感谢王军花老师从头到尾认真负责的态度,让这本书更精彩。

本书中的所有示例代码1都放在本书的GitHub项目里,详见https://github.com/thewintersun/tensorflowbook

1本书源代码也可在图灵社区(iTuring.cn)本书主页上免费注册下载。

目录