内容介绍
这是一本理论与实践兼顾的深度学习著作,它通过精心的内容组织和丰富的案例讲解,能让读者零基础入门,并迅速晋级为有一定理论基础和项目实战能力的高手。
基础方面,不仅介绍了Keras等各种深度学习框架的使用和开发环境的搭建,还对深度学习的基础知识做了全面讲解;
理论方面,详细讲解了全连接神经网络、卷积神经网络、循环神经网络、自编码器和生成式对抗网络等核心神经网络的原理和应用;
应用层面,不仅讲解了如何用Keras开发各种深度学习模型,而且还讲解了深度学习在图像处理和文本处理两大核心场景的应用;
实战方面,每个深度学习模型原理的背后都有精心设计的Keras实现代码,每章都有多个综合性案例,读者可以在调试和执行代码的过程中掌握深度学习模型设计与开发的各种方法和技巧。
本书内容结构合理,重点突出;写作方式循序渐进,易于读者理解;行文风格幽默风趣,读起来不枯燥。
(1)作者经验丰富:资深AI技术专家和数据挖掘专家,拥有超过14年技术研发和管理经验,连续6年被微软评为数据科学和AI方向MVP。(2)零基础快速入门:针对性内容设计,结构合理,内容突出,零基础读者也能快速入门深度学习。(3)理论知识扎实:深度学习工具使用、基础知识、神经网络、模型构建等理论知识全部详细讲解。(4)实战案例丰富:原理辅以Keras代码,每章都有综合案例及其代码分析,结合生产环境展开。
为什么要写这本书
人工智能引领了一个新的研究和发展方向,机器学习和深度学习均属于人工智能范畴。现在各个领域都处于运用深度学习技术进行业务创新和技术创新的阶段。Keras是一个对零基础用户非常友好且简单的深度学习框架,它是TensorFlow高级集成API,特点是能够快速实现模型的搭建。模型快速搭建是高效进行科学研究的关键。
本书涵盖了全连接神经网络(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)、自编码器(AE)、生成式对抗网络(GAN)等模型原理及Keras实践,重点讲解了如何对图像数据和中文文本数据进行分析处理,以帮助读者学会训练这些模型并实现真实的图像处理和语言处理任务。
本书由浅入深、循序渐进,尽可能用通俗易懂的语言讲解深度学习各种模型的基本原理,在讲解Keras实现深度学习的知识点时更注重方法和经验的传递,力求做到授之以渔,让读者能将本书所学应用到日常学习或工作中。
本书特色
本书采用大量的实例,覆盖了使用Keras进行深度学习建模的常用知识,同时对所用实例中的Keras代码和模型效果均进行了深入解读,以帮助读者更好地将所学知识移植到各自的实际工作中。
深度学习在实际工作中常用于图像数据和文本数据的深度挖掘,本书也详细阐述了如何对图像数据和中文文本数据进行数据处理及转换,以帮助初学者了解如何将原始数据处理成深度学习模型可以识别的数据。
本书适用对象
本书适合以下人员阅读:
高等院校相关专业师生;
培训机构的师生;
数据分析、数据挖掘人员;
人工智能、深度学习入门读者;
数据科学家;
进行深度学习应用研究的科研人员。
如何阅读本书
全书一共14章,涵盖了主流深度学习框架介绍、TensorFlow和Keras深度学习环境搭建,以及如何利用Keras开发深度学习模型。本书的重点是深度学习在图像和文本方面的数据处理及应用,各种深度学习网络均有相应的实例,目的是让读者既能通过本书学到深度学习理论,又能通过实例学习提升动手能力,将所学知识迁移到实际工作中。
第1章首先介绍了机器学习与深度学习的区别及联系,以及目前主流的深度学习框架。然后详细介绍了如何安装Python的科学计算环境Anaconda、R语言的IDE工具RStudio,以及如何在Anaconda和RStudio中安装TensorFlow和Keras。后以深度学习中的入门数据集MNIST为例,介绍如何利用Keras构建深度学习模型。
第2章介绍了深度学习的基础知识。首先介绍神经网络常用激活函数、网络拓扑结构及损失函数,然后介绍网络优化的方法及如何防止模型过拟合,后通过一个综合实例介绍如何使用技巧优化深度学习神经网络,提升模型的预测能力。
第3章详细介绍了如何用Keras开发深度学习模型。内容包括Keras模型的生命周期、Keras的两种模型、模型可视化、Keras中的回调函数与模型的保存及序列化等。
第4章介绍了深度学习的图像数据预处理技术。首先重点介绍了图像处理EBImage包的使用,包含图像的读取和保存、图像处理等技术,然后介绍了利用Keras如何进行图像预处理,后通过一个综合实例介绍了如何对小数据集的彩色花图像进行批量读取及处理,并建立多种深度学习模型来对比效果,及通过数据增强技术提升模型的预测能力。
第5章~第9章分别详细介绍了深度学习常用的神经网络模型:全连接神经网络、卷积神经网络、循环神经网络、自编码器和生成式对抗网络。
第5章通过多个实例引导读者如何用全连接神经网络解决各种经典的预测问题,包含波士顿房价预测的回归问题、鸢尾花分类和彩色手写数字图像识别的多分类问题、印第安人糖尿病诊断和泰坦尼克号旅客生存预测的二分类问题。
第6章首先介绍了卷积神经网络的基本原理及Keras实现,并通过多个实例帮助读者掌握卷积神经网络的使用,包含小数据集的图像识别、彩色手写数字图像识别以及经典的CIFAR-10图像识别的多分类实例。
第7章首先介绍了简单循环网络(SimpleRNN)的基本原理及Keras实现,并利用SimpleRNN实现手写数字识别及预测纽约出生人口数量。然后介绍了长短期记忆网络(LSTM)的基本原理及Keras实现,并利用LSTM实现股价预测。后介绍了门控循环单元网络(GRU)的基本原理及Keras实现,并基于GRU网络对温度进行预测。
第8章介绍了自编码器的基本结构以及常用自编码器(稀疏自编码器、降噪自编码器以及栈式自编码器)的基本原理及Keras实现,并利用两个实例引导读者将自编码器应用在不同的实际场景中。
第9章首先介绍了生成式对抗网络(GAN)的基本原理,然后给出了两个实例:使用GAN生成手写数字,深度卷积生成式对抗网络。
第10章~第13章详细介绍了利用深度学习对文本数据进行预处理及建模的技术,并重点介绍了对中文文本的处理及建模。
第10章介绍了R语言用于文本挖掘的常用扩展包,包括tm包、tmcn包、Rwordseg包、jiebaR包以及tidytext包。
第11章介绍了如何使用Keras处理文本数据,包括文本分词、独热编码、分词器和填充文本序列,还介绍了词嵌入。
第12章首先介绍IMDB影评数据集,接着利用机器学习进行情感
作者简介(照片)
谢佳标
资深AI技术专家和数据挖掘专家,拥有超过14年的技术研发和管理经验。精通Python和Keras等深度学习框架,在数据挖掘和人工智能技术领域有非常深厚的积累。连续6年(2017~2022年)被微软评为数据科学和AI方向价值专家(微软MVP)。
资深R语言技术专家,中国现场统计研究会大数据统计分会届理事。历届中国R语言和数据科学大会特邀演讲嘉宾,受邀在国内多所高校举行以数据主题的公益讲座。
著有多本技术畅销书,如《R语言游戏数据分析与挖掘》《R语言与数据挖掘》。
前言
第1章 准备深度学习的环境1
1.1 机器学习与深度学习1
1.2 主流深度学习框架介绍4
1.2.1 TensorFlow4
1.2.2 Keras5
1.2.3 Caffe5
1.2.4 PyTorch6
1.2.5 Theano6
1.2.6 CNTK6
1.2.7 MXNet7
1.2.8 ONNX7
1.3 配置深度学习的软件环境8
1.3.1 安装Anaconda8
1.3.2 在Anaconda中安装TensorFlow8
1.3.3 在Anaconda中安装Keras10
1.3.4 安装R和RStudio10
1.3.5 在RStudio中安装TensorFlow12
1.3.6 在RStudio中安装Keras12
1.4 Keras构建深度学习模型13
1.4.1 MNIST数据集13
1.4.2 数据预处理14
1.4.3 模型建立及训练16
1.4.4 模型评估及预测18
1.5 本章小结22
第2章 深度学习简介23
2.1 神经网络基础23
2.1.1 神经元23
2.1.2 激活函数24
2.1.3 神经网络的拓扑结构30
2.1.4 神经网络的主要类型31
2.1.5 损失函数32
2.2 优化网络的方法33
2.2.1 梯度下降算法33
2.2.2 自适应学习率算法37
2.3 防止模型过拟合42
2.3.1 过拟合与欠拟合42
2.3.2 正则化的方法43
2.3.3 数据拆分44
2.3.4 Dropout45
2.4 综合实例:电信流失用户预测46
2.4.1 数据预处理46
2.4.2 选择优化器47
2.4.3 增加内部隐藏层神经元数量48
2.4.4 采用正则化避免过拟合49
2.5 本章小结52
第3章 如何用Keras开发深度学习模型53
3.1 Keras模型的生命周期53
3.1.1 数据预处理53
3.1.2 定义网络56
3.1.3 编译网络58
3.1.4 训练网络58
3.1.5 评估网络60
3.1.6 做出预测61
3.2 Keras模型61
3.2.1 序贯模型61
3.2.2 使用函数式API创建的模型63
3.3 模型可视化66
3.3.1 网络拓扑可视化66
3.3.2 模型训练可视化67
3.3.3 TensorBoard可视化70
3.4 Keras中的回调函数77
3.4.1 回调函数介绍77
3.3.2 使用回调函数寻找模型80
3.5 模型保存及序列化82
3.5.1 使用HDF5格式保存模型83
3.5.2 使用JSON格式保存模型87
3.5.3 使用YAML格式保存模型88
3.6 本章小结88
第4章 深度学习的图像数据预处理89
4.1 图像处理EBImage包89
4.1.1 图像读取与保存89
4.1.2 图像对象和矩阵91
4.1.3 色彩管理94
4.1.4 图像处理97
4.1.5 空间变换99
4.1.6 图像滤波102
4.1.7 形态运算105
4.1.8 图像分割106
4.2 利用Keras进行图像预处理107
4.2.1 图像读取与保存107
4.2.2 图像生成器image_data_generator110
4.2.3 image_data_generator实例115
4.3 综合实例:对彩色花图像进行分类118
4.3.1 图像数据读取及探索118
4.3.2 MLP模型建立及预测122
4.3.3 CNN模型建立与预测124
4.3.4 利用数据增强改善CNN模型126
4.4 本章小结128
第5章 全连接神经网络的经典实例129
5.1 回归问题实例:波士顿房价预测129
5.1.1 波士顿房价数据描述129
5.1.2 波士顿房价数据预处理131
5.1.3 波士顿房价预测131
5.2 多分类实例:鸢尾花分类134
5.2.1 鸢尾花数据描述134
5.2.2 鸢尾花数据预处理136
5.2.3 鸢尾花分类建模137
5.3 二分类实例:印第安人糖尿病诊断139
5.3.1 印第安人糖尿病数据描述139
5.3.2 印第安人糖尿病数据预处理141
5.3.3 印第安人糖尿病诊断建模142
5.4 二分类实例:泰坦尼克号上旅客生存预测144
5.4.1 泰坦尼克号的旅客数据描述145
5.4.2 泰坦尼克号的旅客数据预处理146
5.4.3 生存预测建模149
5.5 多分类实例:彩色手写数字图像识别151
5.5.1 彩色手写数字图像数据描述151
5.5.2 彩色手写数字图像数据预处理152
5.5.3 彩色手写数字图像数据建模155
5.6 本章小结158
第6章 卷积神经网络及图像分类159
6.1 卷积神经网络原理159
6.1.1 卷积层161
6.1.2 卷积层的Keras实现163
6.1.3 池化层167
6.1.4 池化层的Keras实现168
6.1.5 全连接层171
6.2 多分类实例:小数据集的图像识别171
6.2.1 导入本地图像数据171
6.2.2 图像数据预处理173
6.2.3 建立全连接神经网络模型识别小数据集图像175
6.2.4 建立简单卷积神经网络识别小数据集图像177
6.2.5 建立复杂卷积神经网络识别小数据集图像180
6.3 多分类实例:彩色手写数字图像识别183
6.3.1 导入及处理本地手写数字图像183
6.3.2 MNIST数据预处理185
6.3.3 构建简单卷积神经网络识别彩色手写数字186
6.3.4 构建复杂卷积神经网络识别彩色手写数字189
6.4 多分类实例:CIFAR-10图像识别192
6.4.1 CIFAR-10数据描述192
6.4.2 加载CIFAR-10数据192
6.4.3 CIFAR-10数据预处理194
6.4.4 构建简单卷积神经网络识别CIFAR-10图像195
6.4.5 构建复杂卷积神经网络识别CIFAR-10图像199
6.5 本章小结204
第7章 循环神经网络205
7.1 简单循环网络205
7.1.1 简单循环网络基本原理206
7.1.2 简单循环网络的Keras实现207
7.1.3 多分类实例:SimpleRNN实现手写数字识别208
7.1.4 回归问题实例:SimpleRNN预测纽约出生人口数量211
7.2 长短期记忆网络(LSTM)216
7.2.1 LSTM基本原理216
7.2.2 LSTM的Keras实现218
7.2.3 回归问题实例:LSTM预测股价221
7.3 门控循环单元(GRU)228
7.3.1 GRU基本原理228
7.3.2 GRU的Keras实现229
7.3.3 回归问题实例:基于GRU网络的温度预测230
7.4 本章小结235
第8章 自编码器236
8.1 自编码器介绍236
8.1.1 自编码器的基本结构237
8.1.2 使用Keras建立简单自编码器238
8.1.3 稀疏自编码器242
8.1.4 降噪自编码器245
8.1.5 栈式自编码器248
8.2 实例:使用自编码器预测信用风险252
8.2.1 数据理解252
8.2.2 数据预处理254
8.2.3 构建自编码器254
8.2.4 模型训练255
8.2.5 模型预测255
8.3 实例:使用自编码器建立推荐系统258
8.3.1 数据理解259
8.3.2 数据预处理260
8.3.3 构建自编码器261
8.3.4 模型训练263
8.3.5 模型预测263
8.4 本章小结264
第9章 生成式对抗网络265
9.1 生成式对抗网络简介265
9.2 实例:使用GAN生成手写数字268
9.2.1 数据准备268
9.2.2 构建生成器269
9.2.3 构建判别器271
9.2.4 生成GAN模型271
9.2.5 训练GAN模型273
9.3 实例:深度卷积生成式对抗网络277
9.3.1 构建生成器279
9.3.2 构建判别器280
9.3.3 编译模型281
9.3.4 训练DCGAN模型282
9.4 本章小结285
第10章 使用R语言进行文本挖掘286
10.1 文本挖掘流程286
10.2 相关R包简介及安装287
10.2.1 tm包简介及安装287
10.2.2 tmcn包简介及安装287
10.2.3 Rwordseg包简介及安装289
10.2.4 jiebaR包简介及安装290
10.2.5 tidytext包简介及安装290
10.3 tm包快速上手290
10.3.1 数据读写290
10.3.2 语料库转换292
10.3.3 语料库过滤293
10.3.4 元数据管理294
10.3.5 词条-文档关系矩阵296
10.4 tmcn包快速上手298
10.4.1 中文语料资源298
10.4.2 中文编码转换300
10.4.3 字符操作301
10.5 Rwordseg包快速上手302
10.5.1 中文分词302
10.5.2 添加和卸载自定义词典303
10.6 jiebaR包快速上手305
10.6.1 分词引擎305
10.6.2 自定义词典308
10.6.3 停止词过滤312
10.6.4 关键词提取313
10.7 tidytext包快速上手315
10.7.1 整洁文本格式315
10.7.2 使用tidy处理中国四大名著320
10.7.3 对中国四大名著进行词频统计322
10.7.4 非整洁格式转换325
10.8 本章小结327
第11章 如何使用Keras处理文本数据328
11.1 使用text_to_word_sequence分词328
11.2 使用独热编码329
11.3 分词器Tokenizer331
11.4 使用pad_sequences填充文本序列335
11.5 词嵌入337
11.5.1 学习词嵌入337
11.5.2 实例:学习词嵌入338
11.5.3 预训练词嵌入342
11.5.4 实例:预训练GloVe嵌入343
11.6 本章小结348
第12章 情感分析实例:IMDB影评情感分析349
12.1 IMDB数据集349
12.1.1 加载IMDB数据集349
12.1.2 查看IMDB数据集350
12.2 利用机器学习进行情感分析352
12.2.1 数据预处理352
12.2.2 机器学习预测情感353
12.3 利用深度学习进行情感分析356
12.3.1 数据预处理356
12.3.2 多层感知器模型357
12.3.3 卷积神经网络模型359
12.3.4 RNN模型361
12.3.5 LSTM模型363
12.3.6 GRU模型365
12.4 本章小结367
第13章 中文文本分类实例:新浪新闻分类实例368
13.1 SPORT数据集368
13.2 利用机器学习进行文本分类374
13.2.1 数据预处理374
13.2.2 数据分区376
13.2.3 机器学习建模376
13.3 利用深度学习进行文本分类378
13.3.1 数据预处理378
13.3.2 多层感知器模型379
13.3.3 一维卷积神经网络模型381
13.3.4 RNN模型383
13.3.5 LSTM模型385
13.3.6 GRU模型386
13.3.7 双向LSTM模型388
13.3.8 比较深度学习模型的预测效果389
13.4 本章小结390
第14章 通过预训练模型实现迁移学习391
14.1 迁移学习概述391
14.2 Keras预训练模型概述393
14.3 VGGNet卷积网络模型393
14.3.1 VGGNet概述394
14.3.2 加载预训练VGG16网络395
14.3.3 预测单张图像内容397
14.3.4 预测多张图像内容400
14.3.5 提取预训练网络输出特征实现花卉图像分类器402
14.4 ResNet卷积网络模型410
14.4.1 ResNet概述410
14.4.2 ResNet50的Keras实现411
14.5 本章小结413