卷积神经网络是深度学习中最为重要的模型,对引领深度学习的井喷式发展起到了不可或缺的作用。本书试图全面介绍卷积神经网络的模型和方法,详细讨论了其现代雏形、突破模型、加深模型、应变模型、跨连模型、区域模型、分割模型、特殊模型和强化模型,最后是其顶尖成就AlphaGo。为了辅助读者理解有关内容,本书还结合应用案例分析了很多具体模型的代码实现及演示效果。
封面图
目录
- 前言
- 第1章概述 1
- 1.1深度学习的起源和发展 1
- 1.2卷积神经网络的形成和演变 4
- 1.3卷积神经网络的应用和影响 6
- 1.4卷积神经网络的缺陷和视图 9
- 1.5卷积神经网络的GPU实现和cuDNN库 10
- 1.6卷积神经网络的平台和工具 10
- 1.7本书的内容结构和案例数据 13
- 1.7.1内容结构 13
- 1.7.2案例数据 15
- 第2章预备知识 22
- 2.1激活函数 22
- 2.2矩阵运算 23
- 2.3导数公式 24
- 2.4梯度下降算法 25
- 2.5反向传播算法 26
- 2.5.1通用反向传播算法 27
- 2.5.2逐层反向传播算法 28
- 2.6通用逼近定理 31
- 2.7内外卷积运算 31
- 2.8膨胀卷积运算 32
- 2.9上下采样运算 33
- 2.10卷积面计算 34
- 2.11池化面计算 36
- 2.12局部响应归一化 36
- 2.13权值偏置初始化 37
- 2.14丢失输出 37
- 2.15丢失连接 38
- 2.16随机梯度下降算法 39
- 2.17块归一化 39
- 2.18动态规划算法 40
- 第3章卷积神经网络的现代雏形——LeNet 41
- 3.1LeNet的原始模型 41
- 3.2LeNet的标准模型 43
- 3.3LeNet的学习算法 44
- 3.4LeNet的Caffe代码实现及说明 46
- 3.5LeNet的手写数字识别案例 54
- 3.6LeNet的交通标志识别案例 58
- 3.6.1交通标志数据集的格式转换 58
- 3.6.2交通标志的识别分类 60
- 3.7LeNet的交通路网提取案例 63
- 3.7.1交通路网的人工标注 64
- 3.7.2交通路网的图像块分类 67
- 3.7.3交通路网的图像块分类LeNet 69
- 3.7.4交通路网的自动提取代码及说明 71
- 3.7.5交通路网的自动提取程序运行结果 75
- 第4章卷积神经网络的突破模型 78
- 4.1AlexNet的模型结构 78
- 4.2AlexNet的Caffe代码实现及说明 82
- 4.3AlexNet的Caffe大规模图像分类案例及演示效果 95
- 4.4AlexNet的TensorFlow代码实现及说明 97
- 4.5AlexNet的TensorFlow大规模图像分类案例及演示效果 103
- 4.6AlexNet的改进模型ZFNet 107
- 第5章卷积神经网络的应变模型 109
- 5.1SPPNet的模型结构 109
- 5.2SPPNet的Caffe代码实现及说明 112
- 5.3SPPNet的大规模图像分类案例及演示效果 114
- 第6章卷积神经网络的加深模型 118
- 6.1结构加深的卷积网络VGGNet 118
- 6.1.1VGGNet的模型结构 118
- 6.1.2VGGNet的TensorFlow代码实现及说明 120
- 6.1.3VGGNet的物体图像分类案例 129
- 6.2结构更深的卷积网络GoogLeNet 130
- 6.2.1GoogLeNet的模型结构 130
- 6.2.2GoogLeNet的TensorFlow代码实现及说明 136
- 6.2.3GoogLeNet的鲜花图像分类案例 149
- 第7章卷积神经网络的跨连模型 154
- 7.1快道网络HighwayNet 154
- 7.2残差网络ResNet 155
- 7.2.1ResNet的模型结构 155
- 7.2.2ResNet的Caffe代码实现及说明 157
- 7.2.3ResNet的大规模图像分类案例 163
- 7.3密连网络DenseNet 169
- 7.3.1DenseNet的模型结构 169
- 7.3.2DenseNet的Caffe代码实现及说明 171
- 7.3.3DenseNet的物体图像分类案例 174
- 7.4拼接网络CatNet 178
- 7.4.1CatNet的模型结构 178
- 7.4.2CatNet的Caffe代码实现及说明 179
- 7.4.3CatNet的人脸图像性别分类案例 183
- 第8章卷积神经网络的区域模型 190
- 8.1区域卷积网络R-CNN 190
- 8.2快速区域卷积网络Fast R-CNN 191
- 8.3更快区域卷积网络Faster R-CNN 193
- 8.3.1Faster R-CNN的模型结构 193
- 8.3.2Faster R-CNN的TensorFlow代码实现及说明 196
- 8.3.3Faster R-CNN的图像目标检测案例及演示效果 216
- 8.4你只看一次网络YOLO 220
- 8.4.1YOLO的模型结构 220
- 8.4.2YOLO的TensorFlow代码实现及说明 226
- 8.4.3YOLO的图像目标检测案例及演示效果 239
- 8.5单次检测器SSD 242
- 8.5.1SSD的模型结构 242
- 8.5.2SSD的TensorFlow代码实现及说明 245
- 8.5.3SSD的图像目标检测案例及演示效果 260
- 第9章卷积神经网络的分割模型 266
- 9.1全卷积网络FCN 266
- 9.1.1FCN的模型结构 266
- 9.1.2FCN的Caffe代码实现及说明 269
- 9.1.3FCN的图像语义和几何分割案例 272
- 9.2金字塔场景分析网络PSPNet 277
- 9.2.1PSPNet的模型结构 277
- 9.2.2PSPNet的TensorFlow代码实现及说明 282
- 9.2.3PSPNet的图像语义分割案例及演示效果 291
- 9.3掩膜区域卷积网络Mask R-CNN 294
- 9.3.1Mask R-CNN的模型结构 294
- 9.3.2Mask R-CNN的Keras和TensorFlow代码实现及说明 297
- 9.3.3Mask R-CNN的图像实例分割案例及演示效果 318
- 第10章卷积神经网络的特殊模型 325
- 10.1孪生网络SiameseNet 325
- 10.1.1SiameseNet的模型结构 325
- 10.1.2SiameseNet的Caffe代码实现及说明 326
- 10.1.3SiameseNet的手写数字验证案例 328
- 10.2挤压网络SqueezeNet 331
- 10.2.1SqueezeNet的模型结构 331
- 10.2.2SqueezeNet的Caffe代码实现及说明 334
- 10.2.3SqueezeNet大规模图像分类案例 337
- 10.3深层卷积生成对抗网络DCGAN 339
- 10.3.1DCGAN的模型结构 339
- 10.3.2DCGAN的TensorFlow代码实现及说明 340
- 10.3.3DCGAN的CelebA人脸图像生成案例 345
- 10.4网中网NIN 348
- 10.4.1NIN的模型结构 348
- 10.4.2NIN的Caffe代码实现及说明 350
- 10.4.3NIN大规模图像分类案例 353
- 第11章卷积神经网络的强化模型 356
- 11.1强化学习的基本概念 356
- 11.2深度强化学习网络的学习算法 358
- 11.3深度强化学习网络的变种模型 359
- 11.4深度强化学习网络的Flappy Bird智能体案例 361
- 11.4.1笨笨鸟网络的开发环境和工具包 362
- 11.4.2笨笨鸟网络的代码实现及说明 363
- 11.4.3笨笨鸟网络的学习训练过程 367
- 11.4.4笨笨鸟网络的演示效果 370
- 第12章卷积神经网络的顶尖成就——AlphaGo 371
- 12.1人工智能棋类程序简介 371
- 12.2AlphaGo的设计原理 373
- 12.2.1总体思路 373
- 12.2.2训练流程 374
- 12.2.3搜索过程 377
- 12.3AlphaGo Zero的新思想 380
- 12.4仿效AlphaGo的围棋程序案例MuGo 383
- 12.4.1MuGo的开发环境 383
- 12.4.2MuGo的代码实现及说明 386
- 12.4.3MuGo的学习训练过程 401
- 12.4.4MuGo的演示效果 403
- 附录ACaffe在Windows上的?安装过程 406
- 附录BCaffe在Linux上的安装?过程 409
- 附录CTensorFlow在Windows?上的安装过程 412
- 附录DTensorFlow在Linux?上的安装过程 414
- 参考文献 416