首页>参考读物>计算机科学与技术>人工智能

神经网络与深度学习:案例与实践
作者 : 邱锡鹏,飞桨教材编写组 著
出版日期 : 2022-07-29
ISBN : 978-7-111-71197-1
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 333
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

作为邱锡鹏老师出品的《神经网络与深度学习》配套案例,与《神经网络与深度学习》深度融合,从实践角度诠释原书理论内容。

图书特色

《神经网络与深度学习》(蒲公英书)实践篇

图书前言

“我不能创造的东西,我就不理解( What I cannot create, I do not understand).”这是诺贝尔物理奖获得者理查德 ·费恩曼( Richard Feynman)在他办公室黑板上留下的一句话.深度学习的学习中也是如此,只有通过实践才能更深入地理解理论.
《神经网络与深度学习》电子版 ①从 2015年年底在网上开放共享以来,收到很多读者的反馈,其中有很多宝贵的建议和意见.这些反馈也使得《神经网络与深度学习》不断改进. 2020年年初,由于疫情影响我封闭在家,终于有时间把这本书正式整理出版.这本书出版后,也得到广大读者的支持.《神经网络与深度学习》主要阐述了神经网络与深度学习技术的基本原理和方法.很多读者希望能在学习的同时进行实践,以加深对理论的理解.虽然我在 GitHub上留了一些实践练习的作业,但深知这些作业本身具有一定的门槛,对深度学习的入门读者有一定难度.因此,给《神经网络与深度学习》配一本实践书,一直是我的愿望.刚好百度飞桨团队也在给一些人工智能教材配备实践内容,使得我的愿望提前实现.基于教学需求和投入精力的考虑,本书只选择了《神经网络与深度学习》的前 8章进行实践配套,对于其余章节,希望以后有机会再进行实践配套.飞桨是一款非常成熟的深度学习框架,其生态建设也非常完善.飞桨在 2.0版本之后支持了动态图,变得更加易用.因此本书以飞桨框架来编写实践内容,同时支持在 AI Studio上运行,进一步降低了使用门槛.
本书的定位是把神经网络模型、深度学习原理和工程实践结合起来,让读者在动手实践中更深入地理解深度学习的模型和原理.因此,本书在章节设计上和《神经网络与深度学习》一一对应,并以模型解读 +案例实践的形式进行介绍:
1)模型解读主要聚焦如何从零开始一步步实现机器学习模型和算法,并结合简单的任务来加深读者对模型和算法的理解.
2)案例实践主要强调如何在实际应用的任务中使用飞桨 API来更好地实现模型和算法,会涉及一些在实际任务上碰到的数据预处理等问题.
为了更适合深度学习的入门者使用,我们力求代码简洁,并从零开始一步步进行深度学习的实践,搭建一个轻量级的机器学习框架以及相应的算子库:
1)从学习流程角度出发,构建一个轻量级机器学习框架 Runner,用它来将机器学习实践中的要素(包括数据、模型、学习准则 [损失函数 ]、优化算法、评价指标)以及机器学习流程(模型准备、模型训练、模型评价以及模型预测)封装为一个整体,以方便读者快速开发一个机器学习系统来完成实际任务. Runner类也随着学习内容的递进不断完善,最终可以用来处理大多数机器学习任务,有很高的实用性.

①本书出版后因封面上专门设计了蒲公英图案,寓意帮助更多的读者进入深度学习以及人工智能领域,为人工智能领域注入新的生机与活力,而被广大读者昵称为蒲公英书.——编辑注
2)从模型构建角度出发,借鉴深度学习框架中算子的概念,本书从零开始一步步实现自定义的基本算子库,进一步通过组合自定义算子来搭建机器学习模型,最终搭建自己的机器学习模型库nndl.这使得读者在实践过程中不仅知其然还知其所以然,更好地掌握深度学习的模型和算法,并理解深度学习框架的实现原理.
本书中构建的轻量级机器学习框架 Runner和算子库 nndl基本可以满足我们在日常实践中的大部分机器学习任务的需要,读者也可以在具体的应用中不断完善,最终打造一个适合自己的个性化机器学习框架.
此外,本书还对《神经网络与深度学习》中的一些数学公式和术语翻译进行更新:
1)在数学公式方面,《神经网络与深度学习》中使用矩阵表示一组样本时,每一列为一个样本.而在实践中,矩阵计算是以张量( Tensor)为单位进行的.因此,为了更加符合目前深度学习框架中的张量的特性和使用方式,本书使用每一行为一个样本.这样就需要对原来的公式进行重新的推导,好处是可以直接根据公式快速地实现代码.
2)在术语翻译方面,机器学习领域的很多名词存在难翻译和乱翻译的现象.在李航老师的建议下,我有幸与周志华老师、李沐、阿斯顿 ·张一起讨论了机器学习相关术语的翻译问题,对各自教材中不一致的译法进行统一,因此本书中采用我们当时讨论确定的最新译法,比如将 Dropout翻译为“暂退法”,将 Normalization翻译为“规范化”等.
本书能够完成,离不开飞桨教材编写组的安梦涛、毕然、迟恺、程军、吕健、刘其文、马艳军、文灿、吴高升、吴蕾、汪庆辉、吴甜、徐彤彤、于佃海、张翰迪、张一超、张亚娴的大力支持,他们为本书撰写了逻辑严谨的模型解读内容和简洁易用的实践代码.特别感谢我的学生李鹏和林天扬,他们也为本书的出版付出了很多时间和精力.
因为个人能力有限,书中难免有不当和错误之处,还望读者海涵和指正,不胜感激.
最后,我衷心希望本书能为国产深度学习框架的普及做出一点点贡献.


邱锡鹏
于上海 .复旦大学
2022年 7月 1日

上架指导

计算机/人工智能/深度学习与神经网络

封底文字

虽然人工智能技术的复杂度越来越高,但得益于飞桨等深度学习平台的快速发展,人工智能应用的门槛正持续降低,人工智能技术与实际应用场景的融合创新也越来越丰富和深入。希望本书能够帮助广大读者快速掌握深度学习技术和实践方法,以在产业智能化浪潮中大展宏图。
                       ——百度首席技术官 王海峰

  本书是《神经网络与深度学习》(蒲公英书)的配套实践教材,章节设计和《神经网络与深度学习》一一对应,并以模型解读+案例实践的形式进行介绍。模型解读主要聚焦如何从零开始一步步实现深度学习中的各种模型和算法,案例实践主要强调如何使用飞桨预定义API来更好地完成实际任务。建议读者将本书和《神经网络与深度学习》结合阅读,在动手实践中更深入地理解深度学习的原理、模型和算法。

本书亮点
代码简洁、易上手:本书的实践案例使用飞桨框架编写,代码简洁,非常适合深度学习的入门者使用。
搭建自定义的算子模型库:借鉴深度学习框架中算子的概念,本书从零开始一步步实现自定义的算子模型库nndl,进一步通过组合自定义算子来搭建机器学习模型,使得读者在实践过程中不仅知其然还知其所以然,更好地掌握深度学习的模型和算法,并理解深度学习框架的实现原理。
打造自己的机器学习框架:为提高易用性,本书打造了一个轻量级机器学习框架Runner,用它来将机器学习实践中的要素(包括数据、模型、损失函数、优化算法、评价指标)以及机器学习流程(模型准备、模型训练、模型评价、模型预测)封装为一个整体,以方便读者快速开发一个机器学习系统来完成实际任务。
提供免费的视频课程和实训环境:本书配备了免费的视频课程和实训环境,读者可以在AI Studio上在线学习并运行实践代码,进一步降低了学习门槛。

图书目录


前言
第1章实践基础1
1.1如何运行本书的代码...................................2
1.1.1本地运行.....................................2
1.1.2代码下载与使用方法..............................3
1.1.3在线运行.....................................4
1.2张量............................................6
1.2.1创建张量.....................................6
1.2.2张量的属性....................................9
1.2.3张量与Numpy数组转换............................13
1.2.4张量的访问....................................13
1.2.5张量的运算....................................16
1.3算子............................................20
1.3.1算子定义.....................................21
1.3.2自动微分机制..................................25
1.3.3预定义的算子..................................27
1.3.4本书中实现的算子................................27
1.3.5本书中实现的优化器..............................29
1.4本书中使用的数据集和实现的Dataset类........................29
1.4.1数据集......................................29
1.4.2Dataset类....................................31
1.5本书中实现的Runner类.................................31
1.6小结............................................32
第2章机器学习概述33
2.1机器学习实践五要素...................................34
2.1.1数据........................................35
2.1.2模型........................................36
2.1.3学习准则.....................................36
2.1.4优化算法.....................................37
2.1.5评价指标.....................................37
2.2实现一个简单的线性回归模型..............................38
2.2.1数据集构建....................................38
2.2.2模型构建.....................................40
2.2.3损失函数.....................................42
2.2.4优化器......................................43
2.2.5模型训练.....................................45
2.2.6模型评价.....................................45
2.3多项式回归........................................46
2.3.1数据集构建:ToySin25..............................46
2.3.2模型构建.....................................48
2.3.3模型训练.....................................49
2.3.4模型评价.....................................50
2.3.5通过引入正则化项来缓解过拟合........................52
2.4构建Runner类......................................53
2.5实践:基于线性回归的波士顿房价预测.........................55
2.5.1数据处理.....................................55
2.5.2模型构建.....................................62
2.5.3完善Runner类:RunnerV1...........................62
2.5.4模型训练.....................................63
2.5.5模型评价.....................................64
2.5.6模型预测.....................................64
2.6小结............................................65
第3章线性分类67
3.1基于Logistic回归的二分类任务.............................68
3.1.1数据集构建....................................69
3.1.2模型构建.....................................71
3.1.3损失函数.....................................73
3.1.4模型优化.....................................74
3.1.5评价指标.....................................77
3.1.6完善Runner类:RunnerV2...........................77
3.1.7模型训练.....................................80
3.1.8模型评价.....................................82
3.2基于Softmax回归的多分类任务............................82
3.2.1数据集构建....................................83
3.2.2模型构建.....................................86
3.2.3损失函数.....................................88
第3章线性分类67
3.1基于Logistic回归的二分类任务.............................68
3.1.1数据集构建....................................69
3.1.2模型构建.....................................71
3.1.3损失函数.....................................73
3.1.4模型优化.....................................74
3.1.5评价指标.....................................77
3.1.6完善Runner类:RunnerV2...........................77
3.1.7模型训练.....................................80
3.1.8模型评价.....................................82
3.2基于Softmax回归的多分类任务............................82
3.2.1数据集构建....................................83
3.2.2模型构建.....................................86
3.2.3损失函数.....................................88
3.2.4模型优化.....................................89
3.2.5模型训练.....................................91
3.2.6模型评价.....................................92
3.3实践:基于Softmax回归完成鸢尾花分类任务.....................92
3.3.1数据处理.....................................93
3.3.2模型构建.....................................95
3.3.3模型训练.....................................96
3.3.4模型评价.....................................96
3.3.5模型预测.....................................97
3.4小结............................................97
第4章前馈神经网络994.1神经元...........................................99
4.1.1净活性值.....................................100
4.1.2激活函数.....................................101
4.2基于前馈神经网络的二分类任务............................104
4.2.1数据集构建....................................105
4.2.2模型构建.....................................105
4.2.3损失函数.....................................108
4.2.4模型优化.....................................109
4.2.5完善Runner类:RunnerV2_1..........................115
4.2.6模型训练.....................................117
4.2.7模型评价.....................................118
4.3自动梯度计算和预定义算子...............................119
4.3.1利用预定义算子重新实现前馈神经网络....................119
4.3.2完善Runner类:RunnerV2_2..........................120
4.3.3模型训练.....................................122
4.3.4模型评价.....................................124
4.4优化问题.........................................124
4.4.1参数初始化....................................124
4.4.2梯度消失问题..................................126
4.4.3死亡ReLU问题.................................129
4.5实践:基于前馈神经网络完成鸢尾花分类任务.....................130
4.5.1小批量梯度下降法................................130
4.5.2数据处理.....................................132
4.5.3模型构建.....................................133
4.5.4完善Runner类:RunnerV3...........................135
4.5.5模型训练.....................................140
4.5.6模型评价.....................................142
4.5.7模型预测.....................................142
第5章卷积神经网络145
5.1卷积............................................146
5.1.1二维卷积运算..................................146
5.1.2二维卷积算子..................................147
5.1.3卷积的变种....................................148
5.1.4带步长和零填充的二维卷积算子........................149
5.1.5使用卷积运算完成图像边缘检测任务.....................151
5.2卷积神经网络的基础算子................................152
5.2.1卷积层算子....................................152
5.2.2汇聚层算子....................................156
5.3基于LeNet实现手写体数字识别任务..........................157
5.3.1数据集构建....................................158
5.3.2模型构建.....................................161
5.3.3模型训练.....................................164
5.3.4模型评价.....................................165
5.3.5模型预测.....................................165
5.4基于残差网络的手写体数字识别............................166
5.4.1模型构建.....................................167
5.4.2没有残差连接的ResNet18...........................173
5.4.3带残差连接的ResNet18.............................174
5.5实践:基于ResNet18网络完成图像分类任务......................175
5.5.1数据处理.....................................176
5.5.2模型构建.....................................179
5.5.3模型训练.....................................179
5.5.4模型评价.....................................181
5.5.5模型预测.....................................181
5.6小结............................................182
第6章循环神经网络183
6.1循环神经网络的记忆能力实验..............................184
6.1.1数据集构建....................................185
6.1.2模型构建.....................................189
6.1.3模型训练.....................................194
6.1.4模型评价.....................................196
6.2梯度爆炸实验.......................................196
6.2.1梯度打印函数..................................197
6.2.2复现梯度爆炸问题................................197
6.2.3使用梯度截断解决梯度爆炸问题........................199
6.3LSTM的记忆能力实验..................................200
6.3.1模型构建.....................................202
6.3.2模型训练.....................................204
6.3.3模型评价.....................................206
6.4实践:基于双向LSTM模型完成文本分类任务.....................207
6.4.1数据处理.....................................207
6.4.2模型构建.....................................212
6.4.3模型训练.....................................214
6.4.4模型评价.....................................215
6.4.5模型预测.....................................216
6.5小结............................................216
第7章网络优化与正则化217
7.1小批量梯度下降法....................................218
7.2批大小的调整实验....................................218
7.3不同优化算法的比较分析................................221
7.3.1优化算法的实验设定..............................222
7.3.2学习率调整....................................229
7.3.3梯度估计修正..................................235
7.3.4不同优化器的3D可视化对比..........................240
7.4参数初始化........................................244
7.4.1基于固定方差的参数初始化...........................244
7.4.2基于方差缩放的参数初始化...........................245
7.5逐层规范化........................................250
7.5.1批量规范化....................................250
7.5.2层规范化.....................................257
7.6网络正则化方法.....................................259
7.6.1数据集构建....................................260
7.6.2模型构建.....................................260
7.6.3?1和?2正则化..................................266
7.6.4权重衰减.....................................268
7.6.5暂退法......................................269
7.7小结............................................272
第8章注意力机制273
8.1基于双向LSTM和注意力机制的文本分类.......................274
8.1.1数据介绍.....................................275
8.1.2模型构建.....................................275
8.1.3使用加性注意力模型进行实验.........................282
8.1.4使用点积注意力模型进行实验.........................284
8.2基于双向LSTM和多头自注意力的文本分类实验...................287
8.2.1自注意力模型..................................287
8.2.2基于LSTM和多头自注意力的文本分类的模型构建..............297
8.2.3模型训练.....................................299
8.2.4模型评价.....................................300
8.2.5模型预测.....................................301
8.3实践:基于自注意力模型的文本语义匹配........................302
8.3.1数据集构建....................................303
8.3.2模型构建.....................................306
8.3.3模型训练.....................................316
8.3.4模型评价.....................................317
8.3.5模型预测.....................................318
8.3.6注意力可视化..................................318
8.4小结............................................321

教学资源推荐
作者: [美] 大卫·福赛斯(David Forsyth) 著
作者: Joseph Giarratano Gary D.Riley
作者: [日]上田淳(Jun Ueda) 栗田雄一(Yuichi Kurita) 编著
作者: [伊朗] 阿明·艾哈迈迪·塔兹赫孔迪(Amin Ahmadi Tazehkandi)著
参考读物推荐
作者: [英]阿图尔·特里帕蒂(Atul Tripathi) 著
作者: 张胜 钱柱中 梁瑜 陆桑璐 著
作者: [法]雅斯米娜·贝索伊·塞班(Yasmina Bestaoui Sebbane)著
作者: 兜哥 编著