《深度学习:卷积神经网络从入门到精通》

举报
华章计算机 发表于 2019/06/06 09:14:11 2019/06/06
【摘要】 本书摘自《深度学习:卷积神经网络从入门到精通》——作者是李玉鑑、张婷、单传辉、刘兆英等。

智能系统与技术丛书


深度学习:卷积神经网络从入门到精通


李玉鑑 张 婷 单传辉 刘兆英 等著

深度学习:卷积神经网络 立.jpg

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

目  录

前言

第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.1 LeNet的原始模型  41

3.2 LeNet的标准模型  43

3.3 LeNet的学习算法  44

3.4 LeNet的Caffe代码实现及说明  46

3.5 LeNet的手写数字识别案例  54

3.6 LeNet的交通标志识别案例  58

3.6.1 交通标志数据集的格式转换  58

3.6.2 交通标志的识别分类  60

3.7 LeNet的交通路网提取案例  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.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


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。