前言
我们正处在一个日新月异、飞速变革的时代,层出不穷的新技术每天都在冲击和改变我们的生活。人工智能无疑是其中最受关注、也是影响最深远的技术领域。它为计算机插上了翅膀,演变出许多从前根本无法想象的新技术、新应用。AlphaGo Zero——一台没有任何先验知识的人工智能机器,可以在几天内通过自我博弈成长为世界第一的围棋大师,超越人类几千年积累的经验;风格迁移应用能够自动将用户的照片转变为著名的绘画艺术风格;机器可以在零点几秒内完成翻译,把一种语言译成另一种语言。此外,有关人脸识别、自动驾驶等新技术的应用也都纷纷开始落地。在过去的几年内,人工智能技术不仅在学术上取得了巨大的突破,也开始走向寻常百姓家,真正为人们的生活提供便利。
本书主要为读者介绍这次人工智能浪潮最重要的组成部分——深度学习技术,使用的编程框架是Google公司的TensorFlow。借助于Google公司巨大的影响力,TensorFlow一经发布就引起了广泛的关注。目前(截至2017年年底), TensorFlow在Github上已经有了8万4000多个Star,是所有深度学习框架中最多的。
本书的主要特点如下:
· 以实践、应用导向。深度学习需要深厚的数理基础,对于初学者来说有一定难度。本书希望从实践出发,用具体的例子来引导读者学习深度学习技术和TensorFlow编程技巧。我们主要从实用性和趣味性两个方面考量,选择了21个实践项目,其中既有MNIST图像识别入门项目,也有目标检测、人脸识别、时间序列预测实用性项目,还有一些诸如Deep Dream趣味性项目。读者可以在实践中找到乐趣,逐渐进步,让学习深度学习和TensorFlow的过程不再那么痛苦。
· 清晰而有深度的介绍。在编写过程中,尽量用简单的语言描述算法的原理,做到清晰而有条理。此外,深度学习是一门还在快速发展的新技术,限于篇幅,很多内容不能完全展开,在大部分章节的末尾列出了“拓展阅读”材料,有兴趣的读者可以参考进一步学习。
· 基于TensorFlow 1.4及以上版本。TensorFlow的发展非常迅速,本书代码全部基于TensorFlow 1.4及以上版本(包括1.4.0、1.4.1和1.5.0),并介绍了TensorFlow的一些新特性,如Time Series模块(1.3版本添加)、新的MultiRNNCell函数(1.2版本更改)等。本书的代码会在如下GitHub地址上提供,并会随新的TensorFlow版本的发布而同步更新:https://github.com/hzy46/Deep-Learning-21-Examples。
本书代码推荐的运行环境为:Ubuntu 14.04, Python 2.7、TensorFlow 1.4.0。请尽量使用类UNIX系统和Python 2运行本书的代码。