6.1 卷积神经网络概述

🏷️sec0601_Convolutional_Overview

卷积神经网络(Convolutional Neural Network,CNN),又称为卷积网络(Convolutional Network,ConvNet)(LeCun, 1989),是一种专门用来处理具有结构化性质的前馈神经网络。例如时间序列数据和图像数据,前者可以被认为是时间轴上按照一定规律采集所获得的数据,例如语音信号;后者可以被认为是二维的像素数据,例如图像。到目前为止,卷积神经网络已经在包括计算机视觉(Computer Vision,CV)、自然语言处理(Natural Language Processing,NLP)、语音识别(Automatic Speech Recognition,ASR)等诸多应用领域大放异彩。卷积神经网络的卷积(convolution)一词表明它引入了一种称之为卷积的特殊的线性计算方法来进行参数计算,这种计算方法用来替代多层感知机纯粹的矩阵乘法运算。所以,卷积神经网络就是指那些至少有一个权重参数层使用卷积运算来替代一般矩阵乘法运算的神经网络。

在本章中,我们首先介绍深度神经网络存在的问题,并通过图像的固有模式引出卷积神经网络最重要的两个功能层卷积层池化层。在第2小节中我们会简要介绍卷积神经网络的整体结构和它所包含的一些基本功能层,包括输入层、输出层、激活层以及全连接层。这些功能层在几乎所有的卷积神经网络中都会被使用。从第3小节开始,我们将从全连接层的弊端开始,重点解释卷积运算的动机、原理以及卷积的填充(padding)、步长(stride)的基本细节,接着还会详细介绍用于在相邻区域汇聚信息的池化层(pooling)和在每一层中多通道(channel)的使用。卷积神经网络是神经科学原理影响深度学习的典型代表,本章会简要讨论神经科学在卷积神经网络的发展史中的重要作用。在本章的最后,我们将介绍一个完整的、可运行的LeNet模型。这是第一个成功应用的卷积神经网络,比现代深度学习兴起时间还要早。本章不涉及如何为卷积神经网络选择合适的结构,因为本章的目标是介绍卷积网络中最典型的各种功能层。今天,卷积神经网络结构的研究和进展是如此的迅速,每隔一段时间就会公开一些新型的网络结构。我们无法描述究竟哪一种结构是最好的,但是即便是最好的模型,其结构也都是由本章所描述的基本部件逐步搭建起来的。在下一章中,我们将深入研究一些流行的、相对较新的卷积神经网络架构的完整实现,这些网络架构涵盖了现代从业者通常使用的大多数经典技术。

6.1.1 深度神经网络存在的问题

在讨论卷积神经网络之前,先让我们来分析一下传统深度神经网络到底存在什么问题。我们考虑一个应用在语音识别等一维信号处理领域的神经网络。如 图6-1 所示,这是一个典型的多层感知机(MLP)网络,在10多年前深度学习刚刚开始兴起的时候,它是非常流行的一种网络模型。它包含很多的层,最左边是输入层,它的神经元数量由样本特征决定。最右边是输出层,它的神经元数量由该分类任务的类别数决定。中间是链式相连的多个隐藏层,隐藏层的神经元数量由设计者根据经验进行指定。隐层神经元的数量设计原则,我们在第5章的前馈神经网络中做过简要说明。一般来说,从输入层到输出层,模型对特征的提取是一个逐渐抽象的过程。所以,神经元的数量,一般也应该是从多到少进行设计的。不过,在神经网络如日中天的今天,依然存在一些形态各异的神经网络结构。

图6-1 一维信号处理领域的神经网络结构图

图6-1 一维信号处理领域的神经网络示例图

图6-1 中的多层感知机类似,大多数早期的神经网络的神经元都采用图中类似的密集连接方式进行连接。换句话说,对于一个隐藏层来说,它的每一个神经元都会与前一层的所有神经元,以及后一层的所有神经元进行相连,所以,我们也称这种采用密集连接方式构建的网络为全连接网络(Fully-connnected Network)。如果不特别说明,本书中所涉及的前馈神经网络(FFN)、多层感知机(MLP)以及深度神经网络(DNN)都是指这种全连接网络。

在这张多层感知机的网络拓扑图中,我们看到每个隐藏层的神经元数量大约就是10个左右。假设它是一个4层的多层感知机的话(n=4),它所包含的权重参数也就是四、五百的样子。这样规模的网络对于我们今天的计算机来说,还是很容易进行处理的。但在实际应用中,多层感知机每层神经元的数量会比图例中的数量多得多。即便是 5.8节 中的简单模型,每层也有数百个神经元。如果我们想要将多层感知应用到二维,甚至是三维信号处理时,其连接数将呈几何级倍增。客观地说,这种全连接的网络结构在一维信号处理中,特别是语音识别领域还是取得了很大成功的。在语音识别领域,多层感知机是一种非常简单的模型。但是它的性能很容易就比传统的高斯混合模型等其他模型高5~10个百分点。于是,很多科学家就一直在尝试,是否能将多层感知机应用到图像领域。不幸的是,从2006年到2012年,一直都没有取得突破性的进展。

图6-2 全连接神经网络参数示意图

图6-2 全连接神经网络参数示意图

下面,我们以最著名的ImageNet图像分类任务来探讨一下多层感知机为什么无法在图像领域也获得腾飞。在第 4.1 节中,我们介绍过ImageNet数据集是由李飞飞团队收集整理的大规模图像数据集,它包含1,500多万的样本和22,000多个类。不过,大多数时候,我们所说的ImageNet数据集是一个称之为ImageNet LSVRC的大规模视觉识别挑战赛所用的数据集。该竞赛使用的是ImageNet数据集的一个子集,它包含128万的训练样本,5万的验证样本和15万的测试样本。数据集中的图像被划分为1000个类,每个类大约1000张图像。假设,现在我们需要使用一个多层感知机来对ImageNet数据集实现分类。如图 6-2 所示,假设你有一幅分辨率为 1000×10001000×1000 的图片,按照任务要求,需要将其划分到1000个类别中的一个。如果我们设计一个非常非常简单的单隐藏层的多层感知机来实现这个分类功能的话,我们可以假定隐藏层的神经元数量为10万。这里为什么是10万个神经元呢?在1000×1000的输入图片设置下,它所包含的像素数量为100万。这就意味着输入神经元的数量为100万,因为每个像素都需要一个神经元来进行表征。然后,我们也知道ImageNet的分类类别数为1000个。所以对于中间层来说,根据前面的设计思想,我们就取一个中间一点值,例如10万。当然,从神经网络的设计角度来说,隐藏层神经元个数取5万或者20万也可以,此处只是为了方便计算。按照以上的设定,对于该模型,我们将获得1000亿个可以学习的权重参数,它等于输入的100万乘以隐藏层的10万。此处,我们暂时不考虑偏置项的计算。前面我们已经介绍过,全连接层的输入来源于前一个层次的所有神经元,所以对于一个全连接层来说,它所需要的参数数量就等于隐藏层神经元的个数乘以前一层神经元的个数。1000亿是一个非常大的数量级,它意味着400G的内存存储空间。这还仅仅只是存储的需求,不包括计算的需求。此外,需要注意的是,本例只是一个简单的单隐藏层模型,如果模型的深度持续增加会是什么情况呢?理论上来说,今天的计算机很少有可以承受如此庞大计算机量的。对计算资源的巨大需求导致了多层感知机无法像被应用在语音领域一样被应用在大规模的视觉识别中。

机器学习的目标不是找到一个通用的学习算法或者绝对最优的模型来解决所有问题,而是理解什么样的分布与人工智能获取经验的“真实世界”相关,以及什么样的学习算法可以帮助我们在真实任务所关注的数据上达到最好的效果。在第 2.5 节中介绍的先验概率分布就是用来刻画我们在看到数据之前认为什么样的模型是合理的信念。一种强弱合理的先验知识可以帮助我们有效地设计模型并降低模型设计的难度。在计算机视觉中,有两种先验知识是极具价值的,它们代表了图像的两种内在特性,分别是局部特性和尺度不变性。图 6-3 描述了这两种图像的基本模式特性。

图6-3 图像的基本模式特性(左:局部特性,右:目标尺度不变性)

图6-3 图像的基本模式特性(左:局部特性,右:目标尺度不变性)

让我们抛开计算机的思维,先用人的视角来看看这两幅图像。当我们看到左边这幅图像时,无论这幅图像中的飞机是位于左上角、右下角还是正中间,亦或是它包含一架飞机还是十架飞机,都能很容易就能判断出这是一幅有关飞机的图像。更具体一点,我们可以得到以下几个结论。首先,飞机总是出现在图像的局部区域,它并非占据了图像的所有像素区域。也就是说,图像中的目标具有局部特性,图像的不同区域可能描述的是不同的目标对象。因此,在不考虑合理性的时候,对目标的识别,更重要的是目标所覆盖的像素,而不是它周围的区域。正如飞在天上的飞机是飞机,停在地面上的飞机它也是飞机。当然,邻域信息对于准确识别一个物体是什么,还是有一定帮助的,只是邻域的范围通常不会太远。其次,不同形态的飞机,它们都是飞机。这是什么意思呢?也就是说,目标对象它可能存在一定的变形或者形态上的差异,但是它们的主体信息是相同的。换句话说,总有一些模式它代表着某一类物体,无论这类物体怎么变换,我们总是能通过这些模式将其识别出来。事实上,我们可以将这种模式认为是某一类目标的共享特征或者内部语义。如果将这种共享特征放大一点,就可以得到目标的超类。例如,对于某个物体,如果它包含了四个轮子,一个方向盘,并且有一个铁壳将其罩起来。那么,我们就可以粗略地认为它是一辆汽车。轮子、方向盘、外壳就是汽车这类物体的基本模式。稍微再扩展一点,我们也可以认为带轮子的都是交通工具,因为这是交通工具的内在模式。第三,物体并不一定总是固定在图像的某个固定位置。也就是说,并不会因为目标位于图像的左上角,它是飞机的概率就比较大;而当它位于右下角时,它是飞机的概率就比较小。第四,任何一个样本都有可能同时存在多种不同的目标。例如,该图中,除了飞机以外,还有白云和天空。如果这是一个目标检测任务或者图像分割任务的话,我们通常都需要将这些不同的目标都识别出来。这些发现有什么意义呢?对于以上信息的描述,大家都很容易去理解。如果我们将这些信息阐述得更学术一点。我们可以说,图像中的目标对象都具有局部特性的。基于这种局部特性,这些目标也具备了平移不变性的特征。在图 6-3 左边的这幅图中,我们可以发现右下角存在一架绿色边框的战斗机。如果已经存在一个分类器能够将它识别出来,那么当这架战斗机飞到其他位置,例如右上角,分类器应该也能够将其识别出来。换句话说,分类器所学到的局部模式不应该因为像素位置的改变而失效。这个特性,就是平移不变性。此外,如果图像中存在多种不同类型的目标对象时,我们只需要为每种不同的模式分别设计一套不同的特征提取器,然后让它们都按照相同的规则去遍历整幅图像就可以了。这就是目标的独特性。这三个原则启发了我们为什么要设计卷积层来实现图像特定模式的学习。

在人类的视觉系统中,我们还会发现这样一种现象。如果一个样本中存在一种目标对象,那么它大一点或者小一点,对于我们去识别它并没有太多的影响,哪怕是更换了对象的背景,也不会让我们产生错误的判断。正如图 6-3 右边所描绘的人物一样。当他换了一个场景,并且适度地进行了缩小,我们依然能够识别出他们是同一个人。也就是说,目标对象在尺度上的变化并不会影响我们的有效识别。当然,如果图像缩小得已经失真或者丢失的信息多到完全变形,那么识别可能也会因此出现问题。所以,我们可能会想到这么一种办法。在深度神经网络进行不断抽象的过程中,只要保持对象外观的整体结构不变,那么应该就可以比较好地处理对象的缩放问题,这就是图像的尺度不变性。尺度不变性也是图像识别中图像的重要特性,这种特性有助于我们对目标进行一定的缩放,并且让我们发现不同样本中的相同或相似目标。这种特性是我们目标检测、跨镜追踪以及以图搜图等多种视觉应用的基础。

刚刚我们所讲的这些原则,其实就是卷积神经网络设计的重要依据。下面我们来简单总结一下。当我们要去设计一个网络的时候,就需要找到一种具有高辨识度的特征提取方法,这种提取方法是能够针对特定的模式进行筛选和识别的。在神经网络中,卷积就是一种高辨识度的提取方法,它能够很好地获取局部特征并获得平移不变模式。更重要的是它能够极大程度地缩减参数的数量。这一点确保了深度模型的可用性,也正因为它的重要意义,我们才有了著名的卷积神经网络。此外,我们需要找到一种方法,这种方法能够在图像进行尺度变化的时候,保证原始模式不要变化得那么明显。至少能让我们的模型在尺度缩小的时候,依然能够将特定的模式识别出来。毕竟,尺度缩小是进行全局抽象并获取最终语义必经之路。而且,对象以不同尺度的形式存在,也是自然界的自然规律。这种实现尺度缩小后目标物体模式不变的技术就称为池化。近几年来,更多的说法叫汇聚,因为这个名词更形象,也更好理解。池化,或者说是汇聚也是卷积神经网络最核心的组成部分,它实现了区域特征的高度抽象,可以完成将局部特征向全局特征的逐渐转换。

那么,除了卷积和池化之外,卷积神经网络还需要什么呢?是否有了它们就能够让模型实现飞跃呢?其实不然。最重要的是,我们还需要一个性能特别强的特征提取器,这是模式学习的基础。回忆我们在研究感知机的时候遇到的人工智能的第一次寒冬,XOR问题的“复杂性”所带来的线性不可分让感知机产生了瓶颈。多层感知机的多层次设计解决了这种线性不可分的问题。所以,多层感知机最重要的特点就是多层。今天,我们所要面对的样本,高清的图像,会动的视频,内在关联性极强的自然语言等等,相对于XOR问题,它们的复杂性已经是在若干个数量级之上了。所以,回想多层感知机解决XOR问题的核心思想,就是通过多层次叠加来增加非线性。我们今天的模型同样也可以通过更强的非线性拟合能力去解决越来越复杂的问题。在这里,增加非线性拟合能力,简单的说就是增加深度。深度学习应时而生。

6.1.2 卷积神经网络的神经科学基础

卷积神经网络可能是生物学启发人工智能最为成功的案例。虽然卷积神经网络的设计也受到许多其他领域知识的影响,但神经网络的一些关键设计原则的确是来自于神经科学,特别是视觉神经科学。卷积神经网络的研究历史可以追溯到早期的生物神经科学实验,这些研究要远早于现代计算模型的发展。为了确定哺乳动物的视觉系统是如何工作的,哈佛医学院的神经生物学家David Hubel和Torsten Wiesel经过多年的合作(Hubel and Wiesel,195919621968),发现了中枢视觉细胞的感受野特性,并证明了视网膜上的图像信息在视觉系统中是被分级处理的。他们发现视觉中枢中的每个神经细胞都具有一定的特征选择功能,并且只反映图像某一个特定的细节。正是因为他们在视觉神经领域的成就,他们最终获得了诺贝尔奖。在他们的诸多研究中,对当代深度学习模型最具影响力的是针对猫的单个神经元激活状态的研究。通过观察猫大脑内神经元是如何响应投影在猫前面屏幕上精确位置的图像,他们发现处于视觉系统前端的神经元对非常特定的光模式,特别是精确定向的条纹反应最为强烈,但对其他模式几乎没有反应。

图6-4 人脑视觉采集(左)和大脑视觉系统分区草图视图(右)

图6-4 人脑视觉采集(左)和大脑视觉系统分区草图视图(右)

他们的研究有助于表征大脑功能的许多方面,但大多数方面超出了本书的范围。下面我们通过一个人脑视觉采集和大脑视觉系统分区草图视图(图 6-4)来介绍一下卷积神经网络的设计是如何受到神经科学影响的。在这个视图中,我们需要重点关注的是大脑的V1区域,这个区域也被称为初级视觉皮层(pinvisual cortex),它是大脑对视觉输入进行高级处理的起点。在左边的视觉采集系统中,光源射向物体的反射光线经过人眼的晶状体投射到视网膜上,并刺激视网膜上的光敏组织形成影像。视网膜中的神经元细胞会对图像进行一些简单的预处理,然后通过视神经系统外侧膝状体(lateral geniculate nucleus,LGN)将信号从眼睛传递到位于头后部的V1。V1包含三个重要特性,包括空间映射、局部保持和等变表示。卷积神经网络的卷积层被设计用来描述这些特性。

前面我们简单介绍了V1的一些特性,一般认为相同的基本原理也适用于视觉神经系统的其他区域。在大脑视觉系统分区草图视图中,当我们逐渐深入大脑时,会发现这些基本特性和策略会被反复执行。在大脑的多个解剖层中,我们发现了一些可以响应特定概念的细胞,这些细胞对于视觉输入的多种变换都具有不变性。这些细胞被称为“祖母细胞”,目前已经被证明它们真实存在于人脑的内侧颞叶区域(Quiroga, 2005)。研究人员发现,祖母细胞会对一些特殊信息产生响应。例如,当它们看到与祖母有关的图片时,这些神经元就会被激活。无论祖母是出现在照片的左上角还是右下角,无论照片中展示的是祖母的脸部特写还是全身照,也无论祖母出现于阳光下还是黑暗中,甚至是关于祖母的文本等等。相似的,当照片中出现其他人时,也会有一些其他的神经元对其做出响应。人脑细胞的这种机制很有趣,它让我们明白模型对现实世界的认知并不是所有的神经元都会同时起作用,只有感兴趣的区域会进行响应。这种机制促进了多通道卷积核的设计思想。但是事实上,人脑的内侧颞叶神经元比现代卷积神经网络的神经元更具有通用性。现代人工神经网络模型还无法做到像祖母细胞一样全方位地自动联想目标的各种呈现。

视觉系统不仅在V1中有响应,当信息从视网膜经LGN到达V1,并进一步经过V2、V4深入大脑,最终到颞下皮质脑区(IT)时,大脑会给出更抽象的判断。有一点是神经科学家普遍公认的,那就是与视觉相关的IT只会在看到一些新奇的东西时,才会活跃起来。这也说明了IT皮层活动较少,只有在看到熟悉事物时才会被激活。根据Berger发表在《美国国家科学院学报》(Berger, 2021)的研究所提出的理论,IT皮层的激活水平并不是对所见事物的直接反应,而是对大脑处理后的信息有所反应。IT皮层的激活会受到不同视觉对象特征、记忆和其他因素的不同刺激。而且,大脑可以纠正由其他因素引起的变化。校正之后,剩下的就是大脑对熟悉事物的反应。换句话说,当大脑看到以前看过的东西时,它会进行理解。这种机制与卷积神经网络最后一层特征在最接近类别的语义上的类比非常相似。换句话说,模型最终的分类器也是针对目标对象最终的高级语义的反映,而不是针对前面几层低级特征的反应。

上面我们已经介绍了一些关于神经科学影响深度学习发展的知识,但卷积神经网络与哺乳动物的视觉系统之间的区别还是有很多的。有很多的知识和区别我们目前依然无法得到确定的答案。近年来的研究,让我们明白一件事,那就是世界可能并不是我们看到的样子,我们“看到”的东西很多都是大脑想象出来的。对于每10个来自于视网膜的LGN神经元,它之后至少有4000个神经元位于V1中,而其余部分则更多。这种差异意味着大脑对接收到的少量视觉数据进行了大量的处理。虽然我们觉得自己可以看到高分辨率的整个场景,但大多数事实都是大脑的潜意识部分所创建出来的错觉,大脑“缝合”了我们所看到若干片段区域。通过关键部件来识别场景使得类似注意力机制成为深度学习模型最活跃的研究方向之一。在深度学习背景下,注意力机制成为自然语言处理最成功的模型,例如Transformer系列模型,我们将在第14章对这些知识进行介绍。根据Vries等人(Vries, 2018)的研究表明,只有不到10%的神经元会遵循教科书的模型对输入的刺激产生稳定的反应。这说明在神经网络中,稀疏交互(sparse interactions)是一种很普遍的现象。此外,人类视觉系统不仅仅对于识别对象起作用,它还能够理解整个场景,包括对象与对象之间关系、对象与世界的交互,甚至于对象与其他感官,例如听觉和情感的集成等等。这些特性启发了我们在目标检测、语义分割和跨模学习方面的工作,虽然这些应用处于起步阶段。

值得一提的是,神经科学并没有告诉我们该如何训练卷积神经网络。具有跨多个空间位置的参数共享模型,可以追溯到早期关于视觉的联结主义模型(Marr, 1976)。但这些模型并没有用到现在流行的反向传播算法和梯度下降算法。例如,最早的神经网络模型认知机(Kunihiko, 1980),虽然结合了现代卷积神经网络的大多数模型设计元素,但它也只是依赖于层次化的无监督聚类算法。

到目前为止,我们已经基本知道了简单细胞具有对某些特征呈现粗略的线性和选择性特性,复杂细胞通过更加非线性的方式实现了对某些变换的不变性,以及在选择性和不变性之间交替放置的层可以产生对特定现象识别的祖母细胞。我们并没有精确描述这些细胞能够检测什么,但在深度非线性网络中,我们可以通过可视化卷积核来查看它所对应的卷积层到底响应的是什么。神经科学和机器学习之间最显著的对应关系是我们从视觉神经系统的V1中学到的那些在机器学习模型中已经被广泛应用的特征映射模式。包括深度学习在内的大多数机器学习算法告诉我们,它们在模型的第一层中学到的特征具有与简单细胞类似的感受野,这些特征是自然图像统计结构的重要部分。但仅凭这些低级特征是无法实现对目标的最终识别和对场景的认知。因此,如何借鉴复杂细胞的非线性特性和不变性以及祖母细胞的特定不变性是我们进一步提高神经网络模型性能的关键。然而,对于人脑更深层的理解依然有太多的未解之谜需要我们去发现。

6.1.3 卷积神经网络的历史

卷积神经网络在深度学习的发展历史中起到了决定性的作用。它首次将研究大脑所获得的深刻理解成功应用于机器学习模型的设计和应用,并且表现良好。卷积神经网络也是第一个解决重要商业应用的神经网络,并且仍然处于当今深度学习商用化的前沿。1989年,Yann LeCun等人(LeCun, 1989)设计了一个新的模型,这个模型通过对权重进行随机初始化后使用了随机梯度下降来进行训练,该模型就是第一个卷积神经网络。1998年,在AT&T工作的Yann LeCun在之前的卷积神经网络的基础上构建了一个更加完备的模型LeNet-5(LeCun, 1998c),该模型在手写数字识别问题上取得了很好的效果。到90年代末,NEC将该模型部署用来读取美国超过10%的支票。至此,LeNet-5成为现代卷积神经网络的基础。这种基于卷积层、池化层堆叠的结构可以保持输入图像的平移不变性、尺度不变性,并自动提取图像的特征。2006年逐层训练参数与预训练模型方法使得卷积神经网络可以被设计得更复杂,训练效果更好。卷积神经网络的真正流行应该是从2012年的AlexNet获得ImageNet竞赛冠军开始,随后的几年里它在各个领域大放异彩,也进一步激发了商业应用的热度。卷积神经网络的快速发展,在各个研究领域攻城略地,特别是在计算机视觉方面,卷积神经网络在图像分类、目标检测和语义分割上不断获得突破。

图6-5 卷积神经网络的历史概述图

图6-5 卷积神经网络的历史概述图 [原图下载链接]

卷积神经网络的历史和进化体系在今天看来是如此的庞大和复杂,图 6-5 简要给出了卷积神经网络发展的几个重要节点。也许你会说:“哇,这真是一个混乱的江湖啊!”。确实,由于卷积神经网络强大的性能,它在最近的十几年得到了飞速的发展。不过从这张简图中,我们还是可以理出几条清晰的主线。第一条主线是卷积神经网络的前世今生,一般认为CNN的诞生是起源于1958年康奈尔大学航空实验室的认知心理学家弗兰克·罗森布拉特博士发明的感知机(Rosenblatt, 1958)。感知机是一种前馈式的网络模型,该模型被认为是今天现代神经网络和支持向量机的基础,弗兰克博士将其称作世界上第一台“具有原创思想能力的机器”。然而,我们知道感知机的XOR问题也让人工智能陷入了第一次寒冬,一直到20多年后的多层感知机的出现才让神经网络再次迎来了新的春天。此时,BP神经网络也随之出现,这种反向传播机制也是今天CNN的核心技术之一;另外,日本科学家福岛邦彦提出的认知机正式将卷积和池化引入到了神经网络中。1989年(LeCun, 1989)和1998年(LeCun, 1998),纽约大学的Yann Lecun教授提出并优化了卷积神经网络CNN,这也是目前计算机视觉等领域性能最好的模型之一。不过,卷积神经网络真正被推上历史舞台是随着深度学习的兴起而兴起的。2012年,Geffrey Hinton和Alex Krizhevsky提出了融合多种技术的AlexNet(Krizhevsky, 2012),该模型由于在ImageNet这样的大规模的自然场景分类中获得了极优的性能,并在ILSVRC竞赛中以超出第二名近10个百分点的成绩夺冠,所以一下子就引起了整个产业界的热潮,并很快横扫了几乎所有的视觉应用。可以说CNN就是深度学习的核心。第二条主线可以称之为Inception体系(Szegedy, 2015),该体系的主要创造者是Google公司的Christian等人,以AlexNet为起点,随后的GoogLeNetv1-v4,Xception(Chollet, 2016)以及在ImageNet2017年获得冠军的SENet和在嵌入式设备中性能优异的MobileNet(Howard, 2017)都有Inception的影子。值得骄傲的是GoogLeNet也好,Inception也好,它们都受启发于NIN模型,也就是Network In Network(Lin, 2013),该模型由华人科学家颜水成团队的Lin Min提出。NIN模型利用1×1卷积构建的微型网络,能够有效提高CNN局部区域的感知能力。同时,由于引入了无参数的全局平均池化,使得模型能够更好地综合空间信息,防止模型整体结构的过度拟合。一般来说,全局平均池化能够有效增强特征映射和类别之间的对应关系,它更适合于卷积结构。所以,在GoogLeNet和ResNet中全局平均池化都一直被作为替代全连接网络的功能层。第三条主线是和Inception体系同时代兴起的ResNet体系(He, 2015)。自AlexNet开始,到VGGNet(Simonyan, 2014)到ResNet这些模型不断地在刷新着计算机视觉领域各个领域的记录,其中ResNet更是在ImageNet数据集上第一次超越了人的识别能力,将错误率降低到了3.57%。在ResNet模型里最重要的是Residual残差模块,这种技术思路也是后续性能优越的DenseNet(Huang, 2016),Resnext(Xie, 2017),以及ShuffleNet(Zhang, 2018)的基础。当然,ResNet和Inception也并非格格不入的,例如Inception-ResNet模块(Szegedy, 2017)就是两者的融合。近年来,兴起于自然语言处理的变形金刚Transformer模型逐渐在视觉领域崭露头角,它在很多任务中都超越了基于残差模块的CNN。不过,残差结构也依然是Transformer模型的重要组成部分。第四条主线是基于目标检测的应用,它伴随着CNN的发展而发展,从RCNN(Girshick, 2014)到FastRCNN(Girshick, 2015)再到FasterRCNN(Ren, 2015)和maskRCNN(He, 2017),这些模型不断刷新着目标检测的纪录。在这幅图中,有一点是值得我们注意的,那就是不管是ResNet体系还是RCNN体系,都是由华人科学家主导,特别是何凯明博士和孙剑博士所领衔的团队。与RCNN体系同时代的,还有一个YOLO体系,它是目标检测的重要分支,一直都代表着目标领域的效率标杆。RCNN体系和YOLO体系(Redmon, 2016Redmon, 2017Redmon, 2018)一直都被认为是目标检测领域的两分天下的代表作。在这幅图之外,还有两个值得我们关注的领域。第一个是增强学习,其中最著名的就是DeepMind提出的AlphaGo(Shilov, 2016)和AlphaZero(McGrath, 2021)。AlphaGo是第一个击败人类职业围棋选手的人工智能机器人;而AlphaZero更为厉害,经过13个小时的训练,它已经能够同时在围棋,将棋和国际象棋领域战胜各自领域的世界冠军。换句话说,AlphaZero已经证明了人工智能系统在进行合理的设计后,它已经能够被同时应用到多个不同的领域,这是一种非常大的突破。另外一个领域是生成对抗网络(Generative adversrial nets,GAN)(Goodfellow, 2014),就是生成对抗网络,该模型最大的贡献是解决了很多领域样本数量不足的问题。通过对抗学习,GAN能够高效、高性能地生成“虚假”的样本来完成模型的训练,并且训练出来的模型跟使用“真实”数据训练出来的模型几乎一模一样。以上就是卷积神经网络简单的历史概述,它是一个混乱的江湖,但终归还是有其清晰的主线。

6.1.4 小结

在本小节中,我们简要介绍了传统深度神经网络的弊端,过高的计算复杂性使得它无法很好地应用到现实中。通过对图像模式的分析,我们发现了图像的一些重要特性,即局部特性和尺度不变特性。通过对这两种特性的学习,我们实现了卷积神经网络最重要的两个功能层,分别是卷积层和汇聚层。此外,我们介绍了哺乳动物的视觉神经系统对卷积神经网络设计的各种启发,这些有关神经科学的基础必然还会持续促进神经网络的发展。

卷积神经网络是第一批能够使用反向传播算法来实现有效训练的深度学习模型之一。到现在,我们依然不是很清楚为什么卷积神经网络能够在当时的反向传播网络被认为已经失败时,反而取得了成功。也许是因为卷积神经网络简单的结构和高效的计算策略使得它在进行参数优化时具有较大的优势。随着近年来硬件设备的快速发展,以及各种优秀的优化算法的提出,整个神经网络体系在诸多任务上都表现得足够合理,即使是那些过去被认为无法使用全连接网络运行的数据集,现在也能执行得很好。无论如何,幸运的卷积神经网络在最近十几年中表现良好,并且成为深度学习传递的火种,并为普通的神经网络被接受和发展铺平了道路。在本章后面的几个小节,我们将详细介绍卷积神经网络的各种功能层及其特性。

6.1.5 练习

  1. 传统深度前馈神经网络(DNN或MLP)无法被广泛应用,其最主要的原因是:( )
    A. 神经网络节点过多,导致计算复杂性太高
    B. 由于参数过多,容易导致欠拟合问题
    C. 无法直接处理高维度的样本,例如基于时间序列音频数据
    D. 在处理大数据时,需要人为提取原始数据的特征作为输入,这个尺度很难掌握。

  2. 以下属于卷积神经网络的典型特性的包括( )。
    A. 平移不变性
    B. 光照不变性
    C. 色彩不变性
    D. 尺度不变性

  3. 以下图像的变换,哪些变换可以依赖于尺度不变性实现对图像样本的识别()。
    A. 调整图像的色彩,使其主要对象从红色变为蓝色
    B. 将原始图像进行水平反转
    C. 将原始图像旋转120度
    D. 直接对图像进行大小缩放

  4. 卷积神经网络在逐层叠加的过程中不断进行缩放变换确保了样本尺度不变性,相似的多层感知机的逐层叠加也能够实现尺度不变性。
    A. 对
    B. 错

  5. 为了能实现更好的特征表达能力,除了卷积和池化,卷积神经网络还需要()。
    A. 更宽的网络支持
    B. 更深的网络
    C. 更多的神经元
    D. 更大的卷积核

  6. 卷积神经网络的"卷积"一词,实际上是一种数学运算方法,该方法属于()次的运算?
    A. 一次
    B. 二次
    C. 三次
    D. 高次

  7. 卷积神经网络具有局部连接、权重共享等特性,它已经脱离了前馈神经网络的范畴。
    A. 正确
    B. 错误

  8. 感受野第一次被提出是在下列哪个时期?
    A. 1962年,Hubel和Wiesel对猫大脑视觉系统进行了研究
    B. 1975年,日本科学家福岛邦彦提出认知机
    C. 1989年,Yann Lecun提出用于手写字体识别的卷积神经网络LeNet-5
    D. 2012年,Jeffrey Hinton和Alex Krizhvsky提出卷积神经网络AlexNet

  9. 以下应用可以用卷积神经网络来实现的有哪些?
    A. 为一幅自然风景画添加梵高的抽象艺术模式
    B. 为视频和图像添加字幕信息
    C. 从海量的卫星图片中寻找鲸鱼经常出没的位置
    D. 在自动驾驶中为汽车找到没有障碍物的道路
    E. 从10万张狗的图片中找到混入其中的1幅猫的图片

【参考文献】


  1. @Goodfellow2013 ↩︎

6.1 卷积神经网络概述