深度学习计算机视觉
作者:(埃及)穆罕默德·埃尔根迪(Mohamed Elgendy)著
出版社:清华大学出版社
出版时间:2022-08-01
ISBN:9787302609940
定价:¥128.00
第Ⅰ部分 深度学习基础
1 章 概述3
1.1 计算机视觉 4
1.1.1 视觉感知的定义 4
1.1.2 视觉系统 4
1.1.3 感知设备 6
1.1.4 解译设备 7
1.2 CV 应用 8
1.2.1 图像分类 9
1.2.2 目标检测与定位10
1.2.3 生成艺术(风格迁移) 11
1.2.4 图像生成11
1.2.5 人脸识别12
1.2.6 图片推荐系统13
1.3 计算机视觉管道概览 14
1.4 图像输入 15
1.4.1 图像的函数表达16
1.4.2 计算机读取图像17
1.4.3 彩色图像17
1.5 图像处理 19
1.6 特征提取 21
1.6.1 计算机视觉中特征的
定义22
1.6.2 有用特征的定义23
1.6.3 手动与自动的特征
提取25
1.7 分类器学习算法 27
1.8 本章小结 28
第2 章 深度学习和神经网络 29
2.1 理解感知机 30
2.1.1 感知机的定义31
2.1.2 感知机的学习机制34
2.1.3 单层感知机的
局限性35
2.2 多层感知机 36
2.2.1 多层感知机架构37
2.2.2 关于隐藏层38
2.2.3 隐藏层的设计38
2.2.4 本节内容拓展40
2.3 激活函数 41
2.3.1 线性转移函数42
2.3.2 Heaviside 阶跃函数
(二元分类器) 43
2.3.3 Sigmoid/logistic
函数43
2.3.4 Softmax 函数46
2.3.5 双_3恄黖衉J曲正切函数
2.5.1 误差函数的定义55
2.5.2 误差函数的意义55
2.5.3 误差为正的必要性55
2.5.4 均方误差损失函数56
2.5.5 交叉熵损失函数57
2.5.6 关于误差和权重的补充
说明58
2.6 优化算法 59
2.6.1 优化的定义59
2.6.2 批梯度下降62
2.6.3 随机梯度下降67
2.6.4 小批梯度下降68
2.6.5 梯度下降总结68
2.7 反向传播 69
2.7.1 反向传播的定义70
2.7.2 反向传播总结72
2.8 本章总结 73
第3 章 卷积神经网络75
3.1 使用MLP 进行图像
分类 76
3.1.1 输入层76
3.1.2 隐藏层78
3.1.3 输出层78
3.1.4 组合78
3.1.5 MLP 处理图像的
缺点80
3.2 CNN 架构 82
3.2.1 概述83
3.2.2 特征提取详解84
3.2.3 分类详解85
3.3 CNN 的基本组件 85
3.3.1 卷积层86
3.3.2 池化层或下采样92
3.3.3 全连接层96
3.4 使用CNN 进行图像
分类 98
3.4.1 构建模型体系架构98
3.4.2 参数(权重)的数量100
3.5 添加dropout 层以避免
过拟合 101
3.5.1 过拟合定义101
3.5.2 dropout 层定义102
3.5.3 dropout 层的重要
意义102
3.5.4 dropout 层在CNN
架构中的位置103
3.6 彩色(3D)图像的卷积 104
3.6.1 彩色图像的卷积105
3.6.2 计算复杂度的变化107
3.7 练习项目:彩色图像
分类 109
3.8 本章总结 118
第4 章 构造DL 项目以及超参数
调优119
4.1 定义性能指标 120
4.1.1 选择评价模型的最佳
指标120
4.1.2 混淆矩阵120
4.1.3 精确度和召回率121
4.1.4 F1 得分122
4.2 设计基准模型 122
4.3 为训练准备数据 124
4.3.1 划分数据集124
4.3.2 数据处理125
4.4 评估模型并解释其
性能 127
4.4.1 诊断过拟合和
欠拟合127
4.4.2 绘制学习曲线129
4.4.3 练习项目:构建、
训练和评估网络129
4.5 网络改进和超参数
调优 132
4.5.1 收集更多数据与超
参数调优132
4.5.2 参数与超参数133
4.5.3 神经网络超参数133
4.5.4 网络架构134
4.6 学习和优化 135
4.6.1 学习率及其衰减
策略135
4.6.2 找到最佳学习率的
系统性方法138
4.6.3 学习率衰减和自适应
学习138
4.6.4 小批大小139
4.7 优化算法 141
4.7.1 动量梯度下降142
4.7.2 Adam 142
4.7.3 训练轮数和早停
标准143
4.7.4 Early stopping144
4.8 正则化技术 144
4.8.1 L2 正则化145
4.8.2 Dropout 层146
4.8.3 数据增强146
4.9 批归一化 147
4.9.1 协变量偏移问题148
4.9.2 神经网络中的协变量
偏移148
4.9.3 批归一化的工作
原理149
4.9.4 批归一化在keras 中的
实现150
4.9.5 批归一化回顾151
4.10 练习项目:实现高准确度
的图像分类 151
4.11 本章小结 157
第Ⅱ部分 图像分类和检测
第5 章 先进的CNN 架构 161
5.1 CNN 设计模式 162
5.2 LeNet-5 164
5.2.1 LeNet 架构164
5.2.2 LeNet-5 在Keras 中的
实现165
5.2.3 设置学习超参数167
5.2.4 LeNet 在MNIST 数据
集上的性能168
5.3 AlexNet 168
5.3.1 AlexNet 网络架构169
5.3.2 AlexNet 的新特性169
5.3.3 Keras 中的AlexNet
实现171
5.3.4 设置学习超参数174
5.3.5 AlexNet 的性能174
5.4 VGGNet 175
5.4.1 VGGNet 新特性175
5.4.2 VGGNet 配置176
5.4.3 学习超参数179
5.4.4 VGGNet 性能179
5.5 Inception 和
GoogLeNet 179
5.5.1 Inception 新特性180
5.5.2 Inception 模块:
Naive 版181
5.5.3 Inception 模块与维数
约减182
5.5.4 Inception 体系架构184
5.5.5 GoogLeNet 的Keras
实现185
5.5.6 学习参数190
5.5.7 Inception 在CIFAR
数据集上的性能190
5.6 ResNet 191
5.6.1 ResNet 新特性191
5.6.2 残差块193
5.6.3 keras 中的ResNet
实现195
5.6.4 学习超参数197
5.6.5 ResNet 在CIFAR
数据集上的性能197
5.7 本章小结 198
第6 章 迁移学习199
6.1 迁移学习的必要性 200
6.2 迁移学习的定义 201
6.3 迁移学习的工作原理 207
6.3.1 神经网络如何学习
特征208
6.3.2 网络后期提取的特征
的可迁移性210
6.4 迁移学习方法 210
6.4.1 使用预训练网络作为
分类器210
6.4.2 使用预训练网络作为
特征提取器212
6.4.3 微调213
6.5 选择合适的迁移学习
方法 215
6.5.1 场景1:目标数据集
较小且与源数据集
相似215
6.5.2 场景2:目标数据集
较大且与源数据集
相似216
6.5.3 场景3:目标数据集
较小且与源数据集
不同216
6.5.4 场景4:目标数据集
较大且与源数据集
不同216
6.5.5 迁移学习场景总结216
6.6 开源数据集 217
6.6.1 MNIST 217
6.6.2 Fashion-MNIST 218
6.6.3 CIFAR 218
6.6.4 ImageNet 219
6.6.5 MS COCO 221
6.6.6 Google Open
Images222
6.6.7 Kaggle222
6.7 项目1:预训练网络作为
特征提取器 222
6.8 项目2:微调 228
6.9 本章小结 235
第7 章 使用R-CNN、SSD 和YOLO
进行目标检测 237
7.1 目标检测的通用框架 238
7.1.1 候选区域239
7.1.2 网络预测240
7.1.3 非极大值抑制
(NMS) 241
7.1.4 目标检测器的评价
指标241
7.2 R-CNN 244
7.2.1 R-CNN 244
7.2.2 Fast R-CNN 248
7.2.3 Faster R-CNN 250
7.2.4 R-CNN 家族总结256
7.3 SSD(Single-shot
detector) 259
7.3.1 SSD 架构总览259
7.3.2 基础网络261
7.3.3 多尺度特征层263
7.3.4 NMS266
7.4 YOLO(you only look
once)(320) 267
7.4.1 YOLO v3 的工作
机制268
7.4.2 YOLOv3 架构270
7.5 项目:在自动驾驶中
应用SSD 网络 272
7.5.1 步骤1:构建模型274
7.5.2 步骤2:模型配置275
7.5.3 步骤3:创建模型276
7.5.4 步骤3:加载数据276
7.5.5 步骤5:训练模型278
7.5.6 步骤6:可视化
损失279
7.5.7 步骤7:预测280
7.6 本章小结 281
第Ⅲ部分 生成模型与视觉嵌入
第8 章 生成对抗网络285
8.1 GAN 架构 286
8.1.1 Deep convolutional
GANs(DCGANs) 288
8.1.2 鉴别器模型288
8.1.3 生成器模型290
8.1.4 训练GAN 293
8.1.5 GAN 极小极大值
函数296
8.2 评估GAN 模型 297
8.2.1 Inception score298
8.2.2 Fréchet inception distance
(FID)298
8.2.3 评估方案选择299
8.3 GAN 的主流应用 299
8.3.1 文本生成图像(Text-tophoto
synthesis)299
8.3.2 图像翻译(Pix2Pix
GAN) 300
8.3.3 图像超分辨率
GAN(SRGAN)301
8.3.4 准备好动手了吗302
8.4 练习项目:构建自己的
GAN 302
8.5 本章小结 311
第9 章 DeepDream 和神经风格
迁移 313
9.1 打开CNN 的黑盒 314
9.1.1 CNN 工作原理
回顾314
9.1.2 CNN 特征可视化315
9.1.3 特征可视化工具的
实现318
9.2 DeepDream 321
9.2.1 DeepDream 算法的工作
原理322
9.2.2 DeepDream 的Keras
实现324
9.3 神经风格迁移 327
9.3.1 内容损失329
9.3.2 风格损失(style
loss) 330
9.3.3 总变分损失(total variance
loss)332
9.3.4 网络训练332
9.4 本章小结 333
第10 章 视觉嵌入335
10.1 视觉嵌入的应用 336
10.1.1 人脸识别337
10.1.2 图片推荐系统337
10.1.3 目标重识别系统339
10.2 学习嵌入 340
10.3 损失函数 341
10.3.1 问题建立和
形式化342
10.3.2 交差熵损失342
10.3.3 对比损失343
10.3.4 三元组损失344
10.3.5 损失的简单实现和
运行分析345
10.4 挖掘信息数据 347
10.4.1 数据加载器347
10.4.2 信息型数据挖掘:寻找
有用的三元组349
10.4.3 Batch All(BA)350
10.4.4 Batch Hard(BH) 351
10.4.5 batch weighted
(BW)353
10.4.6 Batch Sample
(BS)354
10.5 练习项目:训练嵌入
网络 355
10.5.1 时尚圈:查找相似的
衣服356
10.5.2 车辆重识别356
10.5.3 实现357
10.5.4 测试训练的模型358
10.6 突破准确度的限制 362
10.7 本章小结 363
参考文献 365
附录A 369
A.1 下载代码库 369
A.2 安装Anaconda 369
A.3 设置DL 环境 370
A.3.1 手动设置你的开发
环境370
A.3.2 使用本书的repo 中的
conda 环境371
A.3.3 保存和加载环境372
A.4 设置AWS EC2 环境 372
A.4.1 创建AWS 账号372
A.4.2 远程连接到此
实例373
A.4.3 运行Jupyter
Notebook374