深度学习从0到1

深度学习从0到1
作 者: 覃秉丰
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  覃秉丰,AI创业公司创始人,6年人工智能从业经验。曾完成过多项图像,语音,nlp,搜索相关的人工智能企业项目,研发经验丰富。曾给中国移动,中国电信,中国银行,华夏银行,太平洋保险,国家电网,中海油,格力电器等企业做过人工智能相关的企业内训。从事人工智能教育4年,网络课程学员近10万人。讲课通熟易懂,深入浅出,广受好评。

内容简介

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

图书目录

目 录

第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