本书从基础知识开始讲解深度学习的原理和应用,包括该领域的发展、深度学习的入门知识、深度学习模型的理论、代码和实际应用中的优化。
本书共12章,主要内容包括深度学习基础、深度学习的环境准备、深度学习的知识准备、神经网络基础知识、使用Keras构建神经网络、神经网络的进一步优化、卷积神经网络、使用Keras构建卷积神经网络、卷积神经网络可视化、迁移学习、循环神经网络和使用Keras构建循环神经网络等。对于本书中介绍的深度学习模型,我们提供了实例代码供读者学习。
本书作为深度学习的入门书籍,适合希望从零开始了解深度学习技术,并且快速掌握深度学习理论和使用深度学习工具的学生和技术人员阅读。
封面图
目录
- 前言
- 第1章 深度学习入门1
- 1.1 什么是深度学习1
- 1.1.1 深度学习是一种特定类型的机器学习2
- 1.1.2 深度学习是数学问题3
- 1.1.3 深度学习是一个黑箱5
- 1.2 深度学习的发展6
- 1.3 认识当前的深度学习7
- 1.3.1 为什么是现在8
- 1.3.2 当数据成为“燃料”8
- 1.3.3 深度学习的突破10
- 1.4 深度学习的应用领域12
- 1.4.1 深度学习适合做什么12
- 1.4.2 深度学习的应用场景14
- 1.5 如何入门深度学习15
- 第2章 深度学习的环境准备17
- 2.1 选择Python作为深度学习的编程语言17
- 2.2 深度学习常用框架介绍18
- 2.3 选择适合自己的框架21
- 2.4 Python的安装25
- 2.4.1 概述25
- 2.4.2 安装Anaconda26
- 2.4.3 使用conda进行环境管理和包管理27
- 2.5 Keras的安装29
- 2.5.1 什么是Keras29
- 2.5.2 安装TensorFlow30
- 2.5.3 安装Keras31
- 第3章 深度学习的知识准备32
- 3.1 概率论33
- 3.1.1 什么是概率33
- 3.1.2 概率分布35
- 3.1.3 信息论38
- 3.2 线性代数40
- 3.2.1 矩阵40
- 3.2.2 矩阵的运算43
- 3.2.3 从矩阵中取值45
- 3.2.4 相关术语46
- 3.3 导数47
- 3.3.1 什么是导数48
- 3.3.2 链式法则49
- 3.4 机器学习基础50
- 3.4.1 监督学习50
- 3.4.2 分类和回归51
- 3.4.3 训练、验证和预测53
- 第4章 神经网络56
- 4.1 神经网络与深度学习56
- 4.1.1 生物学中的神经网络56
- 4.1.2 深度学习网络58
- 4.2 前向传播算法60
- 4.2.1 神经网络的表示60
- 4.2.2 神经元的计算61
- 4.2.3 激活函数62
- 4.2.4 神经网络的前向传播64
- 4.3 反向传播算法67
- 4.3.1 神经网络的训练68
- 4.3.2 损失函数69
- 4.3.3 梯度下降71
- 4.3.4 神经网络的反向传播73
- 4.4 更好地训练神经网络75
- 4.4.1 选择正确的损失函数75
- 4.4.2 选择通用的激活函数76
- 4.4.3 更合适的优化算法76
- 4.4.4 选择合适的批量77
- 4.4.5 参数初始化78
- 第5章 使用Keras构建神经网络80
- 5.1 Keras中的模型81
- 5.2 Keras中的网络层82
- 5.3 模型的编译83
- 5.3.1 优化器83
- 5.3.2 损失函数84
- 5.3.3 性能评估85
- 5.4 训练模型85
- 5.5 使用训练好的模型86
- 5.6 实例:手写体分类问题86
- 5.7 Keras批量训练大量数据92
- 5.8 在Keras中重复使用模型97
- 第6章 神经网络的进一步优化100
- 6.1 过拟合100
- 6.2 梯度消失和梯度爆炸106
- 6.3 局部最优110
- 6.4 批量归一化111
- 第7章 卷积神经网络115
- 7.1 计算机视觉和图像识别115
- 7.2 卷积神经网络基础118
- 7.2.1 卷积神经网络的结构118
- 7.2.2 卷积层119
- 7.2.3 池化层125
- 7.2.4 卷积神经网络的设计126
- 7.3 为什么要使用卷积神经网络128
- 7.4 图像处理数据集130
- 7.5 CNN发展历程133
- 7.5.1 AlexNet134
- 7.5.2 VGG136
- 7.5.3 Inception138
- 7.5.4 ResNet139
- 第8章 使用Keras构建卷积神经网络144
- 8.1 Keras中的卷积层144
- 8.2 Keras中的池化层147
- 8.3 Keras中的全连接层148
- 8.4 实例1:使用卷积神经网络处理手写体分类问题148
- 8.5 实例2:重复使用已经训练好的卷积神经网络模型152
- 8.6 图像的数据增强158
- 8.6.1 使用ImageDataGenerator进行数据增强158
- 8.6.2 使用增强数据进行模型训练163
- 第9章 卷积神经网络可视化166
- 9.1 概述166
- 9.2 对神经网络进行可视化168
- 9.2.1 可视化神经网络的中间层168
- 9.2.2 可视化过滤器173
- 9.3 对关注点进行可视化176
- 9.3.1 显著图177
- 9.3.2 类激活图180
- 9.4 自动驾驶的应用182
- 第10章 迁移学习185
- 10.1 什么是迁移学习185
- 10.2 为什么要使用迁移学习186
- 10.3 迁移学习的适用性187
- 10.4 在Keras中进行迁移学习189
- 10.4.1 在MNIST上迁移学习的例子190
- 10.4.2 迁移学习的适用情况193
- 10.4.3 实例194
- 第11章 循环神经网络205
- 11.1 神经网络中的序列问题205
- 11.2 循环神经网络的使用207
- 11.2.1 输入/输出207
- 11.2.2 前向传播209
- 11.2.3 反向传播213
- 11.3 长短期记忆网络215
- 11.4 应用场景217
- 第12章 使用Keras构建循环神经网络221
- 12.1 Keras中的循环层221
- 12.2 Keras中的嵌入层224
- 12.3 IMDB实例226
- 12.3.1 全连接网络227
- 12.3.2 SimpleRNN229
- 12.3.3 LSTM231
- 12.3.4 双向循环神经网络232
- 12.3.5 用了卷积层的循环网络结构234
- 12.4 LSTM实例237
- 12.4.1 深度学习中的时间序列问题237
- 12.4.2 使用更多的历史信息242
- 12.4.3 多个时间步长的预测244
- 12.5 有状态的循环神经网络247
- 12.5.1 字母预测问题248
- 12.5.2 有状态的LSTM252