华信教育资源网
深度学习从0到1
作   译   者:覃秉丰 出 版 日 期:2021-06-01
出   版   社:电子工业出版社 维   护   人:蒋燕 
书   代   号:TP411930 I S B N:9787121411939

图书简介:

本书是一本介绍深度学习理论和实战应用的教程,先从数学基础和机器学习基础出发,按照神经网络的技术发展框架由易到难逐步讲解深度学习的理论,然后再通过实践部分,详细解释深度学习的应用案例,让读者既能了解深度学习理论,又能学会使用深度学习框架,实现自己的深度学习模型。主要内容包括深度学习的发展历史、单层感知器、线性神经网络、BP神经网络、深度学习算法卷积神经网络CNN和长短时记忆网络LSTM,以及深度学习算法在图像、自然语言处理和音频信号三个方面的实际应用。其中,案例实战部分使用的深度学习框架为Tensorflow 2/Keras。
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书是一本介绍深度学习理论和实战应用的教程,先从数学基础和机器学习基础出发,按照神经网络的技术发展框架由易到难逐步讲解深度学习的理论,然后再通过实践部分,详细解释深度学习的应用案例,让读者既能了解深度学习理论,又能学会使用深度学习框架,实现自己的深度学习模型。主要内容包括深度学习的发展历史、单层感知器、线性神经网络、BP神经网络、深度学习算法卷积神经网络CNN和长短时记忆网络LSTM,以及深度学习算法在图像、自然语言处理和音频信号三个方面的实际应用。其中,案例实战部分使用的深度学习框架为Tensorflow 2/Keras。

    图书详情

    ISBN:9787121411939
    开 本:16(185*260)
    页 数:488
    字 数:787

    本书目录

    目    录
    第1章  深度学习背景介绍	1
    1.1  人工智能	1
    1.2  机器学习	3
    1.2.1  训练数据、验证数据和测试数据	4
    1.2.2  学习方式	4
    1.2.3  机器学习常用算法	5
    1.3  人工智能、机器学习、神经网络及深度学习之间的关系	10
    1.4  深度学习的应用	11
    1.5  神经网络和深度学习的发展史	16
    1.5.1  神经网络的诞生:20世纪40年代到20世纪60年代	16
    1.5.2  神经网络的复兴:20世纪80年代到20世纪90年代	17
    1.5.3  深度学习:2006年至今	17
    1.6  深度学习领域中的重要人物	18
    1.7  新一轮人工智能爆发的三要素	19
    1.8  参考文献	19
    第2章  搭建Python编程环境	21
    2.1  Python介绍	21
    2.2  Anaconda安装	21
    2.3  Jupyter Notebook的简单使用	25
    2.3.1  启动Jupyter Notebook	26
    2.3.2  修改Jupyter Notebook默认启动路径	26
    2.3.3  Jupyter Notebook浏览器无法打开	28
    2.3.4  Jupyter Notebook基本操作	28
    第3章  单层感知器与线性神经网络	31
    3.1  生物神经网络	31
    3.2  单层感知器	32
    3.2.1  单层感知器介绍	32
    3.2.2  单层感知器计算举例	32
    3.2.3  单层感知器的另一种表达形式	33
    3.3  单层感知器的学习规则	33
    3.3.1  单层感知器的学习规则介绍	33
    3.3.2  单层感知器的学习规则计算举例	34
    3.4  学习率	37
    3.5  模型的收敛条件	38
    3.6  模型的超参数和参数的区别	38
    3.7  单层感知器分类案例	39
    3.8  线性神经网络	42
    3.8.1  线性神经网络介绍	42
    3.8.2  线性神经网络分类案例	42
    3.9  线性神经网络处理异或问题	45
    第4章  BP神经网络	50
    4.1  BP神经网络介绍及发展背景	50
    4.2  代价函数	51
    4.3  梯度下降法	51
    4.3.1  梯度下降法介绍	51
    4.3.2  梯度下降法二维例子	53
    4.3.3  梯度下降法三维例子	55
    4.4  Delta学习规则	56
    4.5  常用激活函数讲解	56
    4.5.1  sigmoid函数	57
    4.5.2  tanh函数	57
    4.5.3  softsign函数	58
    4.5.4  ReLU函数	59
    4.6  BP神经网络模型和公式推导	61
    4.6.1  BP网络模型	62
    4.6.2  BP算法推导	63
    4.6.3  BP算法推导的补充说明	65
    4.7  BP算法推导结论总结	67
    4.8  梯度消失与梯度爆炸	67
    4.8.1  梯度消失	67
    4.8.2  梯度爆炸	69
    4.8.3  使用ReLU函数解决梯度消失和梯度爆炸的问题	69
    4.9  使用BP神经网络解决异或问题	70
    4.10  分类模型评估方法	74
    4.10.1  准确率/精确率/召回率/F1值	74
    4.10.2  混淆矩阵	77
    4.11  独热编码	77
    4.12  BP神经网络完成手写数字识别	78
    4.13  Sklearn手写数字识别	83
    4.14  参考文献	84
    第5章  深度学习框架Tensorflow基础使用	85
    5.1  Tensorflow介绍	86
    5.1.1  Tensorflow简介	86
    5.1.2  静态图和动态图机制Eager Execution	86
    5.1.3  tf.keras	87
    5.2  Tensorflow-cpu安装	88
    5.2.1  Tensorflow-cpu在线安装	88
    5.2.2  安装过程中可能遇到的问题	89
    5.2.3  Tensorflow-cpu卸载	91
    5.2.4  Tensorflow-cpu更新	91
    5.2.5  Tensorflow-cpu指定版本的安装	91
    5.3  Tensorflow-gpu安装	91
    5.3.1  Tensorflow-gpu了解最新版本情况	91
    5.3.2  Tensorflow-gpu安装CUDA	92
    5.3.3  Tensorflow-gpu安装cuDNN库	94
    5.3.4  Tensorflow-gpu在线安装	95
    5.3.5  Tensorflow-gpu卸载	95
    5.3.6  Tensorflow-gpu更新	95
    5.4  Tensorflow基本概念	95
    5.5  Tensorflow基础使用	96
    5.6  手写数字图片分类任务	100
    5.6.1  MNIST数据集介绍	100
    5.6.2  softmax函数介绍	101
    5.6.3  简单MNIST数据集分类模型—没有高级封装	101
    5.6.4  简单MNIST数据集分类模型—keras高级封装	104
    第6章  网络优化方法	106
    6.1  交叉熵代价函数	106
    6.1.1  均方差代价函数的缺点	106
    6.1.2  引入交叉熵代价函数	109
    6.1.3  交叉熵代价函数推导过程	109
    6.1.4  softmax与对数似然代价函数	110
    6.1.5  交叉熵程序	112
    6.2  过拟合	114
    6.2.1  什么是过拟合	114
    6.2.2  抵抗过拟合的方法	117
    6.3  数据增强	117
    6.4  提前停止训练	119
    6.5  Dropout	121
    6.5.1  Dropout介绍	121
    6.5.2  Dropout程序	123
    6.6  正则化	125
    6.6.1  正则化介绍	125
    6.6.2  正则化程序	126
    6.7  标签平滑	129
    6.7.1  标签平滑介绍	129
    6.7.2  标签平滑程序	130
    6.8  优化器	132
    6.8.1  梯度下降法	132
    6.8.2  Momentum	133
    6.8.3  NAG	133
    6.8.4  Adagrad	133
    6.8.5  Adadelta	134
    6.8.6  RMRprop	134
    6.8.7  Adam	134
    6.8.8  优化器程序	135
    6.9  参考文献	137
    第7章  Tensorflow模型的保存和载入	138
    7.1  Keras模型保存和载入	138
    7.1.1  Keras模型保存	138
    7.1.2  Keras模型载入	139
    7.2  SavedModel模型保存和载入	140
    7.2.1  SavedModel模型保存	140
    7.2.2  SavedModel模型载入	141
    7.3  单独保存模型的结构	142
    7.3.1  保存模型的结构	142
    7.3.2  载入模型结构	143
    7.4  单独保存模型参数	144
    7.4.1  保存模型参数	144
    7.4.2  载入模型参数	145
    7.5  ModelCheckpoint自动保存模型	146
    7.6  Checkpoint模型保存和载入	149
    7.6.1  Checkpoint模型保存	149
    7.6.2  Checkpoint模型载入	151
    第8章  卷积神经网络(CNN)	154
    8.1  计算机视觉介绍	154
    8.1.1  计算机视觉应用介绍	154
    8.1.2  计算机视觉技术介绍	155
    8.2  卷积神经网简介	158
    8.2.1  BP神经网络存在的问题	158
    8.2.2  局部感受野和权值共享	158
    8.3  卷积的具体计算	159
    8.4  卷积的步长	161
    8.5  不同的卷积核	162
    8.6  池化	163
    8.7  Padding	164
    8.8  常见的卷积计算总结	166
    8.8.1  对1张图像进行卷积生成1张特征图	166
    8.8.2  对1张图像进行卷积生成多张特征图	166
    8.8.3  对多张图像进行卷积生成1张特征图	167
    8.8.4  对多张图像进行卷积生成多张特征图	168
    8.9  经典的卷积神经网络	168
    8.10  卷积神经网络应用于MNIST数据集分类	170
    8.11  识别自己写的数字图片	172
    8.12  CIFAR-10数据集分类	175
    8.13  参考文献	177
    第9章  序列模型	178
    9.1  序列模型应用	178
    9.2  循环神经网络(RNN)	179
    9.2.1  RNN介绍	179
    9.2.2  Elman network和Jordan network	180
    9.3  RNN的不同架构	180
    9.3.1  一对一架构	180
    9.3.2  多对一架构	181
    9.3.3  多对多架构	181
    9.3.4  一对多架构	181
    9.3.5  Seq2Seq架构	182
    9.4  传统RNN的缺点	182
    9.5  长短时记忆网络(LSTM)	183
    9.6  Peephole LSTM和FC-LSTM	186
    9.6.1  Peephole LSTM介绍	186
    9.6.2  FC-LSTM介绍	187
    9.7  其他RNN模型	188
    9.7.1  门控循环单元(GRU)	188
    9.7.2  双向RNN	189
    9.7.3  堆叠的双向RNN	190
    9.8  LSTM网络应用于MNIST数据集分类	190
    9.9  参考文献	192
    第10章  经典图像识别模型介绍(上)	193
    10.1  图像数据集	193
    10.1.1  图像数据集介绍	193
    10.1.2  ImageNet的深远影响	194
    10.1.3  ImageNet Challenge历年优秀作品	195
    10.2  AlexNet	196
    10.3  VGGNet	199
    10.4  GoogleNet	201
    10.4.1  1×1卷积介绍	202
    10.4.2  Inception结构	203
    10.4.3  GoogleNet网络结构	205
    10.5  Batch Normalization	208
    10.5.1  Batch Normalization提出背景	208
    10.5.2  数据标准化(Normalization)	209
    10.5.3  Batch Normalization模型训练阶段	209
    10.5.4  Batch Normalization模型预测阶段	210
    10.5.5  Batch Normalization作用分析	211
    10.6  ResNet	212
    10.6.1  ResNet背景介绍	212
    10.6.2  残差块介绍	213
    10.6.3  ResNet网络结构	214
    10.6.4  ResNet-V2	219
    10.7  参考文献	221
    第11章  经典图像识别模型介绍(下)	222
    11.1  Inception模型系列	222
    11.1.1  Inception-v2/v3优化策略	222
    11.1.2  Inception-v2/v3模型结构	224
    11.1.3  Inception-v4和Inception-ResNet介绍	229
    11.2  ResNeXt	233
    11.2.1  分组卷积介绍	233
    11.2.2  ResNeXt中的分组卷积	235
    11.2.3  ResNeXt的网络结构	236
    11.3  SENet	238
    11.3.1  SENet介绍	239
    11.3.2  SENet结果分析	242
    11.4  参考文献	244
    第12章  图像识别项目实战	245
    12.1  图像数据准备	245
    12.1.1  数据集介绍	245
    12.1.2  数据集准备	246
    12.1.3  切分数据集程序	247
    12.2  AlexNet图像识别	249
    12.3  VGGNet图像识别	253
    12.4  函数式模型	255
    12.4.1  函数式模型介绍	255
    12.4.2  使用函数式模型进行MNIST图像识别	256
    12.5  模型可视化	257
    12.5.1  使用plot_model进行模型可视化	257
    12.5.2  plot_model升级版	260
    12.6  GoogleNet图像识别	261
    12.7  Batch Normalization使用	263
    12.8  ResNet图像识别	265
    12.9  ResNeXt图像识别	267
    12.10  SENet图像识别	270
    12.11  使用预训练模型进行迁移学习	274
    12.11.1  使用训练好的模型进行图像识别	274
    12.11.2  使用训练好的模型进行迁移学习	276
    12.11.3  载入训练好的模型进行预测	279
    第13章  验证码识别项目实战	282
    13.1  多任务学习介绍	282
    13.2  验证码数据集生成	283
    13.3  tf.data介绍	285
    13.3.1  tf.data概述	285
    13.3.2  使用tf.data完成多任务学习:验证码识别	286
    13.4  使用自定义数据生成器完成验证码识别	294
    13.4.1  使用自定义数据生成器完成模型训练	294
    13.4.2  使用自定义数据生成器完成模型预测	298
    13.5  挑战变长验证码识别	302
    13.5.1  挑战变长验证码识别模型训练	302
    13.5.2  挑战变长验证码识别模型预测	308
    13.6  CTC算法	313
    13.6.1  CTC算法介绍	313
    13.6.2  贪心算法(Greedy Search)和集束搜索算法(Beam Search)	314
    13.6.3  CTC存在的问题	316
    13.6.4  CTC算法:验证码识别	316
    第14章  自然语言处理(NLP)发展历程(上)	329
    14.1  NLP应用介绍	329
    14.2  从传统语言模型到神经语言模型	332
    14.2.1  规则模型	332
    14.2.2  统计语言模型	333
    14.2.3  词向量	334
    14.2.4  神经语言模型	336
    14.3  word2vec	338
    14.3.1  word2vec介绍	338
    14.3.2  word2vec模型训练	338
    14.3.3  word2vec训练技巧和可视化效果	339
    14.4  CNN在NLP领域中的应用	340
    14.5  RNN在NLP领域中的应用	342
    14.6  Seq2Seq模型在NLP领域中的应用	343
    14.7  Attention机制	344
    14.7.1  Attention介绍	344
    14.7.2  Bahdanau Attention介绍	346
    14.7.3  Luong Attention介绍	348
    14.7.4  谷歌机器翻译系统介绍	351
    14.7.5  Attention机制在视觉和语音领域的应用	352
    14.8  参考文献	354
    第15章  自然语言处理(NLP)发展历程(下)	355
    15.1  NLP新的开始:Transformer模型	355
    15.1.1  Transformer模型结构和输入数据介绍	355
    15.1.2  Self-Attention介绍	357
    15.1.3  Multi-Head Attention介绍	360
    15.1.4  Layer Normalization介绍	363
    15.1.5  Decoder结构介绍	364
    15.1.6  Decoder中的Multi-Head Attention和模型训练	365
    15.2  BERT模型	367
    15.2.1  BERT模型介绍	368
    15.2.2  BERT模型训练	369
    15.2.3  BERT模型应用	370
    15.3  参考文献	373
    第16章  NLP任务项目实战	374
    16.1  一维卷积英语电影评论情感分类项目	374
    16.1.1  项目数据和模型说明	374
    16.1.2  一维卷积英语电影评论情感分类程序	375
    16.2  二维卷积中文微博情感分类项目	378
    16.3  双向LSTM中文微博情感分类项目	384
    16.4  堆叠双向LSTM中文分词标注项目	387
    16.4.1  中文分词标注模型训练	387
    16.4.2  维特比算法	391
    16.4.3  中文分词标注模型预测	393
    16.5  最新的一些激活函数介绍	397
    16.5.1  Leaky ReLU	397
    16.5.2  ELU	399
    16.5.3  SELU	400
    16.5.4  GELU	401
    16.5.5  Swish	402
    16.6  BERT模型的简单使用	403
    16.6.1  安装tf2-bert模块并准备预训练模型	403
    16.6.2  使用BERT模型进行文本特征提取	404
    16.6.3  使用BERT模型进行完形填空	406
    16.7  BERT电商用户多情绪判断项目	407
    16.7.1  项目背景介绍	407
    16.7.2  模型训练	408
    16.7.3  模型预测	412
    16.8  参考文献	415
    第17章  音频信号处理	416
    17.1  深度学习在声音领域的应用	416
    17.2  MFCC和Mel Filter Banks	417
    17.2.1  音频数据采集	417
    17.2.2  分帧加窗	418
    17.2.3  傅里叶变换	419
    17.2.4  梅尔滤波器组	421
    17.2.5  梅尔频率倒谱系数(MFCC)	423
    17.3  语音分类项目	425
    17.3.1  librosa介绍	425
    17.3.2  音频分类项目—模型训练	427
    17.3.3  音频分类项目—模型预测	430
    第18章  图像风格转换	433
    18.1  图像风格转换实现原理	433
    18.1.1  代价函数的定义	434
    18.1.2  格拉姆矩阵介绍	435
    18.2  图像风格转换项目实战	436
    18.3  遮挡图像风格转换项目实战	441
    18.4  参考文献	443
    第19章  生成对抗网络	444
    19.1  生成对抗网络的应用	444
    19.2  DCGAN介绍	447
    19.3  手写数字图像生成	449
    19.4  参考文献	454
    第20章  模型部署	455
    20.1  Tensorflow Serving环境部署	455
    20.2  运行客户端和服务器程序	456
    20.2.1  准备SavedModel模型	456
    20.2.2  启动Tensorflow Serving服务器程序	457
    20.2.3  Tensorflow Serving客户端gRPC程序	459
    20.2.4  Tensorflow Serving客户端REST API程序	461
    专业术语汇总	463
    结束语	471
    
    
    展开

    前     言

    前    言
    1.本书的由来
    本书的前言可能有点长,因为这是我和大家的第一次见面,我希望可以把关于我和这本书的故事讲清楚,让大家对我有一个更好的了解,说不定哪天我们会成为朋友。
    大约在3年前的某个下午,电子工业出版社的张迪编辑联系到我,让我写一本关于人工智能的书。第一次有人找我写书,不免有些小激动,想象中写书是一件很酷的事情,真正写的时候才知道写书是一件很苦的事情。
    我最早是从2015年开始接触人工智能技术的,公司内部刚好需要开发人工智能相关的产品。当时谷歌的深度学习框架Tensorflow都还没有开源,我主要是学习了一些机器学习相关的算法和应用。随着Tensorflow在2015年11月开源,AlphaGo在2016年3月战胜人类顶级围棋选手,我知道新的人工智能时代就要到来了。2016年,我学习了当时最热门的两个深度学习框架Tensorflow和Caffe,并用这两个框架完成了公司里面的一些深度学习项目。
    当时市面上关于深度学习的书籍和学习资料非常少,所以在2017年的时候我录制了一些深度学习相关的视频教程放到了网上,就有了后来出版社找我写书的故事。差不多每个月都会有出版社的人联系我出书,我才知道原来获得出书的机会不难,真正难的是认真坚持把一本书写好。这本书历时3年,但也不是真的写了3年,写的过程中断断续续也暂停了很多次。我估算了一下真正写书的时间大概是用了1000个小时。
    最近三年我做了很多场人工智能的线下培训,给中国移动、中国电信、中国银行、华夏银行、太平洋保险、国家电网、中海油、格力电器等企业,以及多个研究所的科研人员和多个高校的老师上过课,大家学完后的反馈基本上都是挺好的。本书的内容也算是我的教学经验的一个总结。同时这几年我也给学校、医院、企业、气象局完成过多项人工智能项目。我觉得一个好的AI技术传播者应该同时具备一线技术人员的开发经验和丰富的实际教学经验。
    2.人工智能的学习
    这里想跟大家简单聊一下关于人工智能的学习。人工智能是一门需要“内外兼修”的学科,既要修炼外功招式,又要进行内功修行。这里的外功招式主要指的是使用编程语言去实现一些人工智能的算法,完成一些落地应用;而内功修行指的是对算法理论的理解。
    很多时候武功招式是很容易学的,可以短时间内快速提升,但同时也很容易达到一定的上限。如果想要突破上限更进一步,就要把内功给修炼好。所以我们在学习人工智能相关技术的时候,应尽量把相关算法的理论理解清楚,同时要多写代码,提高编程能力,并在实践过程中加深对算法的理解。
    3.本书的特色
    本书的脉络框架主要是根据深度学习知识由浅入深的发展来编写的,对于Tensorflow的使用技巧基本上不会单独讲解,而是会结合深度学习理论知识或实际应用案例来讲解。所以很多Tensorflow的使用技巧在目录上可能没有得到很好的体现,这些Tensorflow使用技巧的彩蛋在书里的程序中等着大家发现哦!相信大家看完这本书以后就可以熟练掌握Tensorflow的使用了。
    本书是一本“内外兼修”的书,既包含详细的算法理论的介绍,又包括详细的代码讲解。我一直在思考人工智能技术的教学方式,所以也形成了自己的教学风格和对教育的理解。这一套方式方法收到过很多同学的积极反馈,但也不一定适合所有人。我觉得不同的教学风格就像是不同类型的音乐,每个人喜欢的音乐类型可能都会不一样。AI教育的发展需要各种类型的教学方式百花齐放。
    本书的主要特色总结如下。
    (1)所有公式推导都有详细步骤,并解释每个符号。数学公式是算法的根本,要理解算法的本质,就要理解数学公式的含义,所以掌握一些基础的与深度学习相关的数学内容也是很重要的。大家看到数学一般都会比较头痛,所以本书中的所有数学公式都会列出详细推导步骤,并解释每个相关符号的含义,帮助大家理解。
    (2)注释每一行代码。我一直觉得我在教学中使用的代码具有一定的个人风格,代码逻辑结构清晰,程序在容易理解的基础上尽量精简,最大的特点可能就是注释比代码多。我给这种代码风格起个名字吧,这样以后一说大家就知道了,就起个直白的名字,叫作“全注释代码”。我觉得对于初学者而言,最好是可以理解每一行代码、每个函数、函数中所使用的每个参数,这样学习会感觉比较扎实。所以本书中的所有代码都是全注释代码。
    (3)程序皆为完整程序。本书一共82个代码应用案例,所有的代码都是可以从头到尾运行的完整程序,并附带真实的运行结果,不存在程序片段样例。我觉得程序片段对于初学者的学习不太友好,大家拿到一个程序片段往往还是不知道如何使用,或者用起来的时候出现很多错误,所以我在书中使用的所有程序都是可以从头到尾直接运行的完整程序。
    (4)一图胜千言。深度学习中的很多模型结构、计算流程之类的内容很难用公式或者语言表达清楚,但往往一张好的图片就可以说明一切。本书一共使用了约500张图片,在本书的创作过程中,大约有200个小时花在画图,以及思考如何画图上。
    (5)逻辑结构清晰,讲解细致。这个不需要多介绍,大家看的时候就知道了。
    4.免费配套学习视频—我的B站
    本书免费配套学习视频可以到我的B站主页查找。另外,我的B站中还有大量Python、机器学习、深度学习、计算机视觉、论文讲解的学习视频:
    https://space.bilibili.com/390756902
    如果大家觉得我创作的内容不错,可以帮我多多宣传,感谢!
    5.勘误和支持
    本书很多思想和知识体系都是我基于自己的理解建立的,由于本人水平有限,本书一定存在不少理解不当或者不准确的地方,恳请大家批评指正。如果大家有更多宝贵意见,欢迎发送邮件至邮箱qinbf@ai-xlab.com,或者到我的Github留言:https://github.com/Qinbf/Deep-Learning-Tensorflow2/issues。期待大家的真挚反馈和支持。
    6.致谢
    在本书的撰写和研究期间,感谢我的妻子刘露斯对我的支持和鼓励。感谢我的朋友王惠东对本书部分章节的校阅。感谢电子工业出版社张迪编辑的耐心等待,感谢出版社对本书的耐心修订和整理。最后感谢各位读者朋友选择了这本书,感谢大家的信任。
    
    覃秉丰     
    2021年5月于上海
    
    展开

    作者简介

    机器学习、深度学习领域多年开发研究经验,一线实战专家。精通算法原理与编程实践。主要研究方向有计算机视觉,图像识别,语言识别等。熟练使用深度学习领域各种开源项目,如Tensorflow、Caffe等。
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网