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

内容简介

全面介绍各种卷积神经网络的模型、算法及应用,指导读者把握其形成和演变的基本脉络,以帮助读者在较短的时间内从入门达到精通的水平。有兴趣的读者可以从本书开始,通过图像分类、识别、检测和分割的案例,逐步深入卷积神经网络的核心,掌握深度学习的方法和精髓,领会 AlphaGo 战胜人类世界冠军的奥秘

作者简介

李玉鑑(鉴)

北京工业大学教授,博士生导师。华中理工大学(现名为华中科技大学)本科毕业,中国科学院数学研究所硕士毕业,中国科学院半导体研究所博士毕业,北京邮电大学博士后出站。

曾在中国科学院生物物理所工作,对意识的本质问题关注过多年,并在《21 世纪 100 个交叉科学难题》上发表《揭开意识的奥秘》一文,提出了解决意识问题的认知相对论纲领,对脑计划和类脑研究具有宏观指导意义。长期围绕人工智能的核心目标,在神经网络、自然语言处理、模式识别和机器学习等领域开展教学、科研工作,发表国内外期刊、会议论文数十篇,是本书和《深度学习导论及案例分析》的第一作者。

本书内容
前言

随着谷歌的 AlphaGo、IBM 的 Watson 和百度的小度机器人等智能产品的问世,人工智能成为大众热烈讨论的焦点。深度学习作为其中的核心技术之一,经过学术界与工业界的积极推动,已经被广泛应用于计算机视觉、语音识别和自然语言处理等诸多领域。如果读者想了解深度学习的总体概况,可参考作者编写的《深度学习导论及案例分析》[1]一书。

本书专注讨论深度学习中应用非常广泛的模型——卷积神经网络,该模型特别适用于图像分类和识别、目标分割和检测以及人工智能游戏方面,受众对象包括计算机、自动化、信号处理、机电工程、应用数学等相关专业的研究生、教师以及算法工程师和科研工作者。

卷积神经网络是一种特殊的多层感知器或前馈神经网络,具有局部连接、权值共享的特点,其中大量神经元按照一定方式组织起来对视野中的交叠区域产生反应。其前身是日本学者 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 月于北京工业大学


[1] 此书已由机械工业出版社出版,书号为 ISBN 978-7-111-55075-4。——编辑注

第 1 章 概述

深度学习是一种实现人工智能的强大技术,已经在图像视频处理、语音处理、自然语言处理等领域获得了大量成功的应用,并对学术界和工业界产生了非常广泛的影响。卷积神经网络是深度学习中最为重要的模型,2012 年以来极大地推进了图像分类、识别和理解技术的发展。而且通过与其他技术相结合,卷积神经网络还可用于设计实现游戏智能体 Q 网络、围棋程序 AlphaGo,以及语音识别和机器翻译软件等各种应用系统,所取得的成就已经使人工智能迈进了盛况空前、影响深远的新时代。本章主要介绍深度学习的起源和发展,说明卷积神经网络的形成和演变,分析卷积神经网络的应用和影响,讨论卷积神经网络的缺陷和视图,总结卷积神经网络的平台和工具,并概括本书的内容结构及案例数据。

1.1 深度学习的起源和发展

深度学习的概念起源于人工神经网络,本质上是指一类对具有深层结构的神经网络进行有效训练的方法。神经网络是一种由许多非线性计算单元(或称神经元、节点)组成的分层系统,通常网络的深度就是其中不包括输入层的层数。

最早的神经网络是心理学家 McCulloch 和数理逻辑学家 Pitts 在 1943 年建立的 MP 模型[1],如图 1.1 所示。MP 模型实际上只是单个神经元的形式化数学描述,具有执行逻辑运算的功能,虽然不能进行学习,但开创了人工神经网络研究的时代。1949 年,Hebb 首先对生物神经网络提出了有关学习的思想[2]。1958 年,Rosenblatt 提出了感知器模型及其学习算法[3]。在随后的几十年间,尽管神经网络的研究出现过一段与 Minsky 对感知器的批评有关的低潮期[4],但仍然在逐步向前推进,并产生了许多神经网络的新模型[5-10]。到 20 世纪八九十年代,这些新模型终于引发了神经网络的重生,并掀起了对神经网络研究的世界性高潮[11]。其中最受欢迎的模型至少包括:Hopfield 神经网络[8]、波耳兹曼机[9]和多层感知器[10]。最早的深度学习系统也许就是那些通过数据分组处理方法训练的多层感知器[12]。多层感知器,在隐含层数大于 1 时常常称为深层感知器,实际上是一种由多层节点有向图构成的前馈神经网络[13],其中每一个非输入节点是具有非线性激活函数的神经元,每一层与其下一层是全连接的。此外,Fukushima 提出的神经认知机可能是第一个具有“深度”属性的神经网络[14-16],并且也是第一个集成了“感受野”思想的神经网络[17-18],以便有效地对视觉输入的某些特性起反应。更重要的是,神经认知机促成了卷积神经网络结构的诞生和发展[19]。而卷积神经网络作为一种判别模型,极大地推进了图像分类、识别和理解技术的发展,在大规模评测比赛中成绩卓著[20],盛誉非凡。

图 1.1

在训练神经网络方面,反向传播无疑是最常用、最著名的算法[10,21]。这是一种有监督学习算法,需要教师指导信号。也就是说,应提供一组训练样本,对给定的输入,指明相应的输出。然而,直到 20 世纪 80 年代末期,反向传播似乎还只是对浅层网络有效,尽管原理上也应对深层网络有效。浅层网络主要是指具有 1 个隐含层的神经网络,如图 1.2 所示。深层网络则主要是指具有 2 个及以上隐含层的神经网络,如图 1.3 所示。在早期的应用中,大多数多层感知器都只用 1 个或很少的隐含层,增加隐含层几乎没有什么经验上的收益。这似乎可以从神经网络的单隐层感知器逼近定理中找到某种解释[22,23],该定理指出,只要单隐层感知器包含的隐含神经元足够多,就能够在闭区间上以任意精度逼近任何一个多变量连续函数。直到 1991 年的时候,关于多层感知器在增加层数时为什么难学习的问题,才开始作为一个深度学习的基本问题,得到了完全的理解。

图 1.2 浅层(单隐层)神经网络

图 1.3 深层神经网络

1991 年,Hochreteir 正式指出,典型的深层网络存在梯度消失或爆炸问题,从而明确确立了深度学习的一个里程碑[24]。该问题是说,累积反向传播误差信号在神经网络的层数增加时会出现指数衰减或增长的现象,从而导致数值计算快速收缩或越界。这就是深层网络很难用反向传播算法训练的主要原因。需要指出的是,梯度消失或爆炸问题又称为长时滞后问题,在循环神经网络中也会出现[25]

为了在一定程度上克服梯度消失或爆炸问题,1990~2000 年,Hochreiter 的深邃思想推动了若干新方法的探索[26-28]。但除了卷积神经网络以外[29],训练深层网络的问题直到 2006 年才开始得到严肃认真的对待。一个重要的原因是,1995 年之后支持向量机的快速发展减缓了神经网络的有关工作进展[30]

普遍认为,深度学习正式发端于 2006 年,以 Hinton 及其合作者发表的两篇重要论文为标志:一篇发表在《Neural Computation》上,题目为“A fast learning algorithm for deep belief nets”[31];另一篇发表在《Science》上,题目为“Reducing the dimensionality of data with neural networks”[32]。从那以后,大量的深度学习模型开始重新受到广泛关注,或如雨后春笋般迅速发展起来,其中主要包括受限波耳兹曼机(Restricted Boltzman Machine,RBM)[33]、深层自编码器(deep AutoEncoder,deep AE)[32]、深层信念网络(deep belief net)[31]、深层波耳兹曼机(Deep Boltzman Machine,DBM)[34]、和积网络(Sum-Product Network,SPN)[35]、深层堆叠网络(Deep Stacked Network,DSN)[36]、卷积神经网络(Convolutional Neural Network,CNN)[19]、循环神经网络(Recurrent Neural Network,RNN)[25]、长短期记忆网络(Long Short-Term Memory network,LSTM network)[27]、强化学习网络(Reinforcement Learning Network,RLN)[37]、生成对抗网络(Generative Adversarial Network,GAN)[38]等。通过结合各种有效的训练技巧,比如最大池化(max pooling)[39]、丢失输出(dropout)[40]和丢失连接(dropconnect)[41],这些深度学习模型取得了许多历史性的突破和成就,例如手写数字识别[32]、ImageNet 分类[20]和语音识别[42]。而这些历史性的突破和成就,使深度学习很快在学术界掀起了神经网络的一次新浪潮。其中最主要的原因,当然是深度学习在解决大量实际问题时所表现的性能超越了机器学习的其他替代方法,例如支持向量机[30]

在理论上,一个具有浅层结构或层数不够深的神经网络虽然在节点数足够大时也可能充分逼近地表达任意的多元非线性函数,但这种浅层表达在具体实现时往往由于需要太多的节点而无法实际应用。一般说来,对于给定数目的训练样本,如果缺乏其他先验知识,人们更期望使用少量的计算单元来建立目标函数的“紧表达”,以获得更好的泛化能力[43]。而在网络深度不够时,这种紧表达可能根本无法建立起来,因为理论研究表明,深度为 k 的网络能够紧表达的函数在用深度为 k-1 的网络来表达时有时需要的计算单元会呈指数增长[44]。这种函数表达的潜在能力说明,深层神经网络(又称深度神经网络)在一定的条件下可能具有非常重要的应用前景。随着深度学习的兴起,这种潜在能力开始逐步显现出来,特别是对卷积神经网络的全面推广应用,使得这种潜在能力几乎得到了淋漓尽致的发挥。

1.2 卷积神经网络的形成和演变

卷积神经网络最初是受到视觉系统的神经机制启发、针对二维形状的识别设计的一种生物物理模型,在平移情况下具有高度不变性,在缩放和倾斜情况下也具有一定的不变性。这种生物物理模型集成了“感受野”的思想,可以看作一种特殊的多层感知器或前馈神经网络,具有局部连接、权值共享的特点,其中大量神经元按照一定方式组织起来对视野中的交叠区域产生反应。1962 年,Hubel 和 Wiesel 通过对猫的视觉皮层细胞的研究,提出了感受野的概念[17-18]。1979 年,日本学者 Fukushima 在感受野概念的基础上,提出了神经认知机模型[14-16],该模型被认为是实现的第一个卷积神经网络。1989 年,LeCun 等人首次使用了权值共享技术[45]。1998 年,LeCun 等人将卷积层和下采样层相结合,设计卷积神经网络的主要结构,形成了现代卷积神经网络的雏形(LeNet)[19]。2012 年,卷积神经网络的发展取得了历史

  • 31
    点赞
  • 446
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值