PaddlePaddle深度学习实战
书籍作者:刘祥龙 杨晴虹 谭中意 蒋晓琳 等 |
ISBN:9787111600466 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:2188 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书采用由简入繁的原则撰写而成。我们希望本书能成为一名能带领读者领略PaddlePaddle精妙的精神导游。从较为简单的线性回归、逻辑回归到较为复杂的RNN数字识别、个性化推荐、云上部署等,本书结合若干实例,系统地介绍了PaddlePaddle的使用特点。教会读者如何使用框架就像教会了读者一套外功拳法。然而本书不仅关注框架本身的细节用法,还非常注重基础知识和理论,目的是教会读者内功心法。书中既详细描述了神经网络的各个细节,也深入讲解了算法性能优化的思路和技巧,旨在帮助读者深入理解深度学习的精髓。本书共分为10章,每一章都包含理论介绍和对应的代码实现。
作者简介
刘祥龙
北航计算机学院、软件开发环境国家重点实验室副教授。主要研究视觉计算、深度学习、群体智能等,在国际上较系统地研究了多模式哈希和互补多哈希表检索方法。近年来,参与“核高基”国家重大专项、国家自然科学基金重大专项等多个国家课题。发表CVPR、ICCV、AAAI、IJCAI、IEEETIP等人工智能、计算机视觉领域国际/知名会议和期刊论文40余篇。担任SCI期刊FCS青年副主编,人工智能/多媒体会议ACMMM、AAAI和PCM等多个知名国际会议的程序委员会委员,以及IEEETIP、TNNLS、TMM等十余个国际知名期刊和会议审稿人。
杨晴虹
北航副教授,高级工程师。北航博士,美国南康涅狄格州立大学图书信息科学访问学者,美国耶鲁大学技术创新实验室数据分析专家。发表国际论文几十篇,主要研究领域有机器学习、知识挖掘、大数据分析、项目管理和科研管理等。在机器学习、深度学习、神经网络等领域有丰富的实践经验,曾主导和参与多个相关的项目并取得成功。
谭中意
百度研发工程师,负责百度开源的整体推进工作,有近20年的开发和运营经验。在百度多个部门工作过,现负责以平台化/开源的方式提升百度内部整体的研发效率,并包括组织开源技术委员会,对百度对外的开源进行整体的推动工作。中国开源推进联盟(COPU)副秘书长。
蒋晓琳
百度公司技术管理部高级工程师,之前任职于中国信息通信研究院。曾参与主导超过30余项国家/行业标准,以及多项国际标准。在人工智能、云计算、大数据等领域参与申报和管理的国家重大专项达10余个。
白浩杰
北航特聘讲师,美国佛罗里达国际大学高性能数据实验室访问学者,致力于移动对象数据库、数据可视化、机器学习、深度学习等方向的研究。径点科技有限公司高级工程师,尚硅谷IT教育前端教学总监。
编辑推荐
适读人群 :本书适合的读者主要包含:对PaddlePaddle框架感兴趣的开发者,希望学习深度学习的在校大学生和在职的程序员,从事深度学习教学工作的一线教和希望深入理解深度学习的产品经
(1)百度旗下“深度学习技术及应用国家工程实验室”、百度技术学院联合北航人工智能专家共同撰写,行业实践与学术理论兼顾
(2)李德毅院士、百度公司总裁张亚勤博士、百度公司高级副总裁/AI技术平台体系总负责人王海峰、北京航空航天大学计算机学院教授/博士生导师吕卫锋 、百度技术委员会理事长/百度技术学院院长陈尚义联袂推荐
前言
PREFACE前言人工智能(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章以个性化推荐系统为例,详细讲解PaddlePaddleCloud的使用方法,介绍在云上如何创建、配置集群,如何提交单节点任务等,并实现基于PaddlePaddleCloud搭建分布式深度学习推荐网络模型。
第9章介绍PaddlePaddle的又一个应用场景,即广告点击通过率预估(CTR),重点介绍CTR的基本过程和常见模型,然后基于Kaggle数据集网站的Avazu数据集,使用PaddlePaddle实现训练和预测的整个过程。
第10章系统介绍算法优化的思路和方法。从深度学习系统的实践流程开始,介绍评估和调优策略等重要概念和思想,并结合实例给出调优的具体效果。
本书适合的读者主要包含:
对PaddlePaddle框架感兴趣的开发者;希望学习深度学习的在校大学生和在职的程序员;从事深度学习教学工作的一线教师;希望深入理解深度学习的产品经理。
阅读本书最好具备以下要求:至少具有高中以上的数学基础,具有基本的编程能力(拥有Python编程经验更好)。如果读者具有机器学习的相关经验,那么学习起来会更加轻松。
Acknowledgement致谢本书谨献给PaddlePaddle社区的开发者和生态用户们,正是因为你们的热忱和积极贡献,才使得PaddlePaddle深度学习框架得以不断演进。
诚挚感谢百度技术委员会理事长、深度学习技术及应用国家工程实验室(DLNEL)秘书长陈尚义先生,他精心组织和策划了本书,可以说没有他的推动和支持,就没有本书的问世。
感谢百度总裁张亚勤在百忙之中为本书作序,感谢百度副总裁及DLNEL理事长和主任王海峰,因为有了他们的肯定和支持,才使得D
目录
CONTENTS
目录
序
前言
致谢
第1章数学基础与Python库1
1.1Python是进行人工智能编程的
主要语言1
1.2数学基础4
1.2.1线性代数基础4
1.2.2微积分基础8
1.3Python库的操作17
1.3.1numpy操作17
1.3.2matplotlib操作23
本章小结27
第2章深度学习概论与PaddlePaddle入门28
2.1人工智能、机器学习与深度学习29
2.1.1人工智能30
2.1.2机器学习30
2.1.3深度学习31
2.2深度学习的发展历程32
2.2.1神经网络的第一次高潮32
2.2.2神经网络的第一次寒冬33
2.2.3神经网络的第二次高潮34
2.2.4神经网络的第二次寒冬35
2.2.5深度学习的来临35
2.2.6深度学习崛起的时代背景36
2.3深度学习的应用场景36
2.3.1图像与视觉37
2.3.2语音识别37
2.3.3自然语言处理38
2.3.4个性化推荐38
2.4常见的深度学习网络结构39
2.4.1全连接网络结构39
2.4.2卷积神经网络40
2.4.3循环神经网络41
2.5机器学习回顾41
2.5.1线性回归的基本概念42
2.5.2数据处理44
2.5.3模型概览45
2.5.4效果展示46
2.6深度学习框架简介47
2.6.1深度学习框架的作用47
2.6.2常见的深度学习框架48
2.6.3PaddlePaddle简介49
2.6.4PaddlePaddle使用49
2.7PaddlePaddle实现51
本章小结60
第3章深度学习的单层网络61
3.1Logistic回归模型62
3.1.1Logistic回归概述62
3.1.2损失函数64
3.1.3Logistic回归的梯度下降66
3.2实现Logistic回归模型71
3.2.1Python版本72
3.2.2PaddlePaddle版本81
本章小结90
第4章浅层神经网络92
4.1神经网络92
4.1.1神经网络的定义及其结构92
4.1.2神经网络的计算94
4.2BP算法100
4.2.1逻辑回归与BP算法101
4.2.2单样本双层神经网络的BP算法101
4.2.3多个样本神经网络BP算法105
4.3BP算法实践108
4.3.1Python版本109
4.3.2PaddlePaddle版本116
本章小结122
第5章深层神经网络123
5.1深层网络介绍123
5.1.1深度影响算法能力124
5.1.2网络演化过程与常用符号125
5.2传播过程127
5.2.1神经网络算法核心思想127
5.2.2深层网络前向传播过程128
5.2.3深层网络后向传播过程129
5.2.4传播过程总结130
5.3网络的参数132
5.4代码实现133
5.4.1Python版本133
5.4.2PaddlePaddle版本136
本章小结140
第6章卷积神经网络141
6.1图像分类问题描述141
6.2卷积神经网络介绍142
6.2.1卷积层142
6.2.2ReLU激活函数147
6.2.3池化层148
6.2.4Softmax分类层149
6.2.5主要特点151
6.2.6经典神经网络架构152
6.3PaddlePaddle实现159
6.3.1数据介绍159
6.3.2模型概览160
6.3.3配置说明160
6.3.4应用模型168
本章小结169
第7章个性化推荐170
7.1问题描述170
7.2传统推荐方法171
7.2.1基于内容的推荐172
7.2.2协同过滤推荐173
7.2.3混合推荐175
7.3深度学习推荐方法176
7.3.1YouTube的深度神经网络推荐系统176
7.3.2融合推荐系统178
7.4个性化推荐系统在PaddlePaddle上的实现180
7.4.1数据准备180
7.4.2模型配置182
7.4.3模型训练184
7.4.4模型测试188
本章小结188
第8章个性化推荐的分布式实现190
8.1PaddlePaddleCloud介绍190
8.2PaddlePaddleCloud使用192
8.2.1创建集群192
8.2.2配置集群192
8.2.3配置客户端193
8.3个性化推荐在PaddlePaddleCloud上的实现194
8.3.1提交单节点任务194
8.3.2个性化推荐在PaddlePaddleCloud上的实现196
本章小结199
第9章广告CTR预估200
9.1CTR预估简介200
9.1.1CTR定义201
9.1.2CTR与推荐算法的异同202
9.1.3CTR预估的评价指标202
9.2CTR预估的基本过程205
9.2.1CTR预估的三个阶段206
9.2.2CTR预估中的特征预处理206
9.3CTR预估的常见模型208
9.3.1LR模型208
9.3.2GBDT模型210
9.3.3GBDT+LR模型212
9.3.4FM+DNN模型214
9.3.5MLR模型215
9.4CTR预估在工业上的实现217
9.5CTR预估在PaddlePaddle上的实现218
9.5.1数据集218
9.5.2预测模型选择和构建219
9.5.3PaddlePaddle完整实现222
本章小结226
第10章算法优化227
10.1基础知识227
10.1.1训练、验证和测试集227
10.1.2偏差和方差228
10.2评估229
10.2.1选定评估目标229
10.2.2迭代过程230
10.2.3欠拟合和过拟合230
10.3调优策略231
10.3.1降低偏差231
10.3.2降低方差236
10.4超参数调优242
10.4.1随机搜索和网格搜索242
10.4.2超参数范围243
10.4.3分阶段搜索243
10.4.4例子:对学习率的调整244
本章小结245