《深度学习:卷积神经网络从入门到精通》
智能系统与技术丛书
深度学习:卷积神经网络从入门到精通
李玉鑑 张 婷 单传辉 刘兆英 等著
PREFACE
前 言
随着谷歌的AlphaGo、IBM的Watson和百度的小度机器人等智能产品的问世,人工智能成为大众热烈讨论的焦点。深度学习作为其中的核心技术之一,经过学术界与工业界的积极推动,已经被广泛应用于计算机视觉、语音识别和自然语言处理等诸多领域。如果读者想了解深度学习的总体概况,可参考作者编写的《深度学习导论及案例分析》一书。
本书专注讨论深度学习中应用非常广泛的模型——卷积神经网络,该模型特别适用于图像分类和识别、目标分割和检测以及人工智能游戏方面,受众对象包括计算机、自动化、信号处理、机电工程、应用数学等相关专业的研究生、教师以及算法工程师和科研工作者。
卷积神经网络是一种特殊的多层感知器或前馈神经网络,具有局部连接、权值共享的特点,其中大量神经元按照一定方式组织起来对视野中的交叠区域产生反应。其前身是日本学者Fukushima在感受野概念的基础上提出的神经认知机模型。利用神经认知机的思想,LeCun等人在1998年提出了卷积神经网络的现代雏形LeNet。2012年,Krizhevsky等人取得了卷积神经网络研究的重大突破,提出了著名的AlexNet。AlexNet在ImageNet的大规模图像分类竞赛中取得优异成绩,为深度学习的全面推广立下了汗马功劳。随后,卷积神经网络模型如雨后春笋般出现,如VGGNet、GoogLeNet、SPPNet、ResNet、DenseNet、Faster R-CNN、YOLO、SSD、FCN、PSPNet、Mask R-CNN、SiameaseNet、SqueezeNet、DCGAN、NIN,以及在人工智能游戏中用到的深度强化模型等。
本书的最大特色是对卷积神经网络进行由浅入深的分类描述,依次包括:现代雏形、突破模型、应变模型、加深模型、跨连模型、区域模型、分割模型、特殊模型、强化模型和顶尖成就。这种分类框架是在模型概述和预备知识的基础上逐步展开的,既方便读者入门学习,又有助于读者深入钻研。
本书的另一大特色是结合Caffe或TensorFlow的代码来说明各种卷积神经网络模型的具体实现过程,并通过应用案例说明其价值和意义所在。典型的应用案例包括:字符识别、交通标志识别、交通路网提取、大规模图像分类、人脸图像性别分类、图像目标检测、图像语义分割、图像实例分割、人脸图像生成、Flappy Bird智能体、AlphaGo的仿效围棋程序等。读者可以通过运行各个应用案例的程序代码和实验数据,检验其演示效果。
与其他深度学习的书籍相比,本书对卷积神经网络的内容涵盖更为广泛、模型讨论更为深入、应用实践更为细致。特别是,还总结了一些运行卷积神经网络的配置技巧和操作经验。比如,在运行Mask R-CNN的时候,需要先安装读取COCO数据集的程序,然后再进行训练或测试。在运行SSD的时候,可视化结果只给出了类别编号而没有给出类别名,作者对此已进行了修改,以方便读者按照书中所示代码显示相应的类别名。把这些经过摸索得到的技巧和经验分享给读者,对提高读者的深度学习技术水平,无疑具有很好的加速作用。
本书是集体努力的成果,主要作者包括北京工业大学的李玉鑑、张婷、单传辉、刘兆英、聂小广和欧军。他们对全书的内容进行了精心的布局、认真的编写和细致的整理。同时,曾少锋、刘博文、穆红章、余华擎和方皓达等人在文献资料、实现代码和软件工具的收集方面也提供了积极的帮助。此外,华章公司的温莉芳副总经理和张梦玲编辑对本书的排版提出了许多宝贵的意见。最后,需要特别感谢家人的支持,他们也在不知不觉中以各种方式对此书出版做出了贡献。
限于作者水平,本书难免在内容取材和结构编排上有不妥之处,希望读者不吝赐教,提出宝贵的批评和建议,我们将不胜感激。
作 者
2018年4月于北京工业大学
CONTENTS
目 录
前言
第4章 卷积神经网络的突破模型 78
4.1 AlexNet的模型结构 78
4.2 AlexNet的Caffe代码实现及说明 82
4.3 AlexNet的Caffe大规模图像分类案例及演示效果 95
4.4 AlexNet的TensorFlow代码实现及说明 97
4.5 AlexNet的TensorFlow大规模图像分类案例及演示效果 103
4.6 AlexNet的改进模型ZFNet 107
第5章 卷积神经网络的应变模型 109
5.1 SPPNet的模型结构 109
5.2 SPPNet的Caffe代码实现及说明 112
5.3 SPPNet的大规模图像分类案例及演示效果 114
第6章 卷积神经网络的加深模型 118
6.1 结构加深的卷积网络VGGNet 118
6.1.1 VGGNet的模型结构 118
6.1.2 VGGNet的TensorFlow代码实现及说明 120
6.1.3 VGGNet的物体图像分类案例 129
6.2 结构更深的卷积网络GoogLeNet 130
6.2.1 GoogLeNet的模型结构 130
6.2.2 GoogLeNet的TensorFlow代码实现及说明 136
6.2.3 GoogLeNet的鲜花图像分类案例 149
第7章 卷积神经网络的跨连模型 154
7.1 快道网络HighwayNet 154
7.2 残差网络ResNet 155
7.2.1 ResNet的模型结构 155
7.2.2 ResNet的Caffe代码实现及说明 157
7.2.3 ResNet的大规模图像分类案例 163
7.3 密连网络DenseNet 169
7.3.1 DenseNet的模型结构 169
7.3.2 DenseNet的Caffe代码实现及说明 171
7.3.3 DenseNet的物体图像分类案例 174
7.4 拼接网络CatNet 178
7.4.1 CatNet的模型结构 178
7.4.2 CatNet的Caffe代码实现及说明 179
7.4.3 CatNet的人脸图像性别分类案例 183
第8章 卷积神经网络的区域模型 190
8.1 区域卷积网络R-CNN 190
8.2 快速区域卷积网络Fast R-CNN 191
8.3 更快区域卷积网络Faster R-CNN 193
8.3.1 Faster R-CNN的模型结构 193
8.3.2 Faster R-CNN的TensorFlow代码实现及说明 196
8.3.3 Faster R-CNN的图像目标检测案例及演示效果 216
8.4 你只看一次网络YOLO 220
8.4.1 YOLO的模型结构 220
8.4.2 YOLO的TensorFlow代码实现及说明 226
8.4.3 YOLO的图像目标检测案例及演示效果 239
8.5 单次检测器SSD 242
8.5.1 SSD的模型结构 242
8.5.2 SSD的TensorFlow代码实现及说明 245
8.5.3 SSD的图像目标检测案例及演示效果 260
第9章 卷积神经网络的分割模型 266
9.1 全卷积网络FCN 266
9.1.1 FCN的模型结构 266
9.1.2 FCN的Caffe代码实现及说明 269
9.1.3 FCN的图像语义和几何分割案例 272
9.2 金字塔场景分析网络PSPNet 277
9.2.1 PSPNet的模型结构 277
9.2.2 PSPNet的TensorFlow代码实现及说明 282
9.2.3 PSPNet的图像语义分割案例及演示效果 291
9.3 掩膜区域卷积网络Mask R-CNN 294
9.3.1 Mask R-CNN的模型结构 294
9.3.2 Mask R-CNN的Keras和TensorFlow代码实现及说明 297
9.3.3 Mask R-CNN的图像实例分割案例及演示效果 318
第10章 卷积神经网络的特殊模型 325
10.1 孪生网络SiameseNet 325
10.1.1 SiameseNet的模型结构 325
10.1.2 SiameseNet的Caffe代码实现及说明 326
10.1.3 SiameseNet的手写数字验证案例 328
10.2 挤压网络SqueezeNet 331
10.2.1 SqueezeNet的模型结构 331
10.2.2 SqueezeNet的Caffe代码实现及说明 334
10.2.3 SqueezeNet大规模图像分类案例 337
10.3 深层卷积生成对抗网络DCGAN 339
10.3.1 DCGAN的模型结构 339
10.3.2 DCGAN的TensorFlow代码实现及说明 340
10.3.3 DCGAN的CelebA人脸图像生成案例 345
10.4 网中网NIN 348
10.4.1 NIN的模型结构 348
10.4.2 NIN的Caffe代码实现及说明 350
10.4.3 NIN大规模图像分类案例 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.2 AlphaGo的设计原理 373
12.2.1 总体思路 373
12.2.2 训练流程 374
12.2.3 搜索过程 377
12.3 AlphaGo Zero的新思想 380
12.4 仿效AlphaGo的围棋程序案例MuGo 383
12.4.1 MuGo的开发环境 383
12.4.2 MuGo的代码实现及说明 386
12.4.3 MuGo的学习训练过程 401
12.4.4 MuGo的演示效果 403
附录A Caffe在Windows上的?安装过程 406
附录B Caffe在Linux上的安装?过程 409
附录C TensorFlow在Windows?上的安装过程 412
附录D TensorFlow在Linux?上的安装过程 414
参考文献 416
- 点赞
- 收藏
- 关注作者
评论(0)