前言

人工智能(AI)前景无量已经成为业界共识,国内外很多企业都聚集了各种资源大力发展人工智能。人工智能并不是一个新生的名词,在数十年的发展历程中,像“深度学习”这样在学术界和工业界皆具颠覆性的技术可谓十年难遇。作为国内人工智能领域的领头羊,百度在AI领域早已深耕多年,特别是在深度学习领域建树颇丰。百度通过应用深度学习技术,使其在语音、视觉、文本、无人驾驶等各领域都处于领先位置。百度着力打造大AI生态,倾其全力推动中国AI产业大力发展。2016年,百度开源了其内部使用的深度学习框架PaddlePaddle。

深度学习算法十分强大,但深入理解和灵活运用深度学习算法并不是一件容易的事情,尤其是复杂的数学模型和计算过程让不少同学刚入门就放弃了。现在市面上有不少科普型的书,主要作用是从宏观上描述深度学习的发展和用途,没有对细节的描述,只起到了提振读者信心的作用。同时,也不乏学界大牛的全而难的“大部头”著作,但是其中帮助初学者入门深度学习的内容并不多。本书针对此现状立足于PaddlePaddle框架,从算法到应用由浅入深地带领读者一步一步进入AI技术世界。

本书从实战的角度出发,旨在帮助读者掌握满足工业需求的实际技能。在真实工业开发中框架是必不可少的,现在市面上框架很多且各具特色,其中PaddlePaddle因为其具有上手容易、运行效率高、支持私有云等优势,受到越来越多的公司和个人的青睐。虽然开发者对PaddlePaddle表现出了浓厚的兴趣,可惜的是市面上还没有一本关于PaddlePaddle的书。为了让更多的开发者享受到深度学习带来的福利,于是由百度发起,特邀北航参与,两家精诚合作联袂打造了本书。

本书采用由简入繁的原则撰写而成。我们希望本书能成为一名能带领读者领略PaddlePaddle精妙的精神导游。从较为简单的线性回归、逻辑回归到较为复杂的RNN数字识别、个性化推荐、云上部署等,本书结合若干实例,系统地介绍了PaddlePaddle的使用特点。教会读者如何使用框架就像教会了读者一套外功拳法。然而本书不仅关注框架本身的细节用法,还非常注重基础知识和理论,目的是教会读者内功心法。书中既详细描述了神经网络的各个细节,也深入讲解了算法性能优化的思路和技巧,旨在帮助读者深入理解深度学习的精髓。

本书共分为10章,每一章都包含理论介绍和对应的代码实现。除了第1章讲述主要的数学基础外,其余各章都有PaddlePaddle的代码实现。

第1章介绍数学基础和Python库的使用。

第2章回顾神经网络的发展历程和机器学习的基本概念,使用线性回归作为PaddlePaddle的入门示例。

第3章以逻辑回归为主线介绍单个神经元的工作原理,分别使用numpy库和PaddlePaddle实现逻辑回归模型的猫脸分类。

第4章开始正式介绍神经网络。以双层的网络为例深入讲解BP算法的计算过程,分别用numpy库和PaddlePaddle实现“花”的点集分类问题。

第5章介绍深度神经网络的相关知识,总结神经网络的核心算法运算过程。然后使用深度网络再次分别使用numpy库和PaddlePaddle实现猫脸分类。

第6章以图像分类为切入点深入讲解卷积神经网络的相关细节,同时介绍几种经典的网络模型。接着介绍用PaddlePaddle实现基于MNIST数据集的手写数字的识别。

第7章介绍个性化推荐系统的算法,包括基于传统机器学习的推荐方法和基于深度学习的推荐方法,其中重点介绍深度学习的融合推荐系统。同时介绍使用PaddlePaddle在ml-1m 数据集上完成推荐系统的具体实现。

第8章以个性化推荐系统为例,详细讲解PaddlePaddle Cloud的使用方法,介绍在云上如何创建、配置集群,如何提交单节点任务等,并实现基于PaddlePaddle Cloud搭建分布式深度学习推荐网络模型。

第9章介绍PaddlePaddle的又一个应用场景,即广告点击通过率预估(CTR),重点介绍CTR的基本过程和常见模型,然后基于Kaggle数据集网站的Avazu数据集,使用PaddlePaddle实现训练和预测的整个过程。

第10章系统介绍算法优化的思路和方法。从深度学习系统的实践流程开始,介绍评估和调优策略等重要概念和思想,并结合实例给出调优的具体效果。

本书适合的读者主要包含:

❑ 对PaddlePaddle框架感兴趣的开发者;

❑ 希望学习深度学习的在校大学生和在职的程序员;

❑ 从事深度学习教学工作的一线教师;

❑ 希望深入理解深度学习的产品经理。

阅读本书最好具备以下要求:至少具有高中以上的数学基础,具有基本的编程能力(拥有Python编程经验更好)。如果读者具有机器学习的相关经验,那么学习起来会更加轻松。