其他
从基本组件到结构创新,67页论文解读深度卷积神经网络架构
2.1 卷积层
2.2 池化层
2.3 激活函数
2.4 批次归一化
2.5 Dropout
2.6 全连接层
3.1 1980年代末至1999年:CNN的起源
3.2 2000年初:CNN停滞不前
3.3 2006-2011年:CNN的复兴
3.4 2012-2014年:CNN的崛起
3.5 2015年至今:CNN的结构创新和应用迅速增长
4.1 基于空间利用的CNN
LeNet由LeCuN在1998年提出[65]。它以其历史重要性而闻名,因为它是第一个CNN,显示了手写体识别的最佳性能。它具有对数字进行分类的能力,而不会受到较小的失真,旋转以及位置和比例变化的影响。LeNet是一个前馈NN,由五个交替的卷积和池化层组成,然后是两个全连接层。在2000年初,GPU未广泛用于加速训练,甚至CPU也很慢[121]。传统多层全连接神经网络的主要局限性在于,它将每个像素视为一个单独的输入并对其进行转换,这是一个巨大的计算负担,特别是在当时[122]。LeNet利用了图像的潜在基础,即相邻像素彼此相关并分布在整个图像中。因此,使用可学习的参数进行卷积是一种在很少参数的情况下从多个位置提取相似特征的有效方法。这改变了传统的训练观点,即每个像素被视为与其邻域分离的单独输入特征,而忽略了它们之间的相关性。LeNet是第一个CNN架构,它不仅减少了参数数量和计算量,而且能够自动学习特征。
LeNet [65]虽然开始了深层CNN的历史,但是在那时,CNN仅限于手数字识别任务,并且不能很好地适用于所有类别的图像。AlexNet[21]被认为是第一个深度CNN架构,它显示了图像分类和识别任务的开创性成果。AlexNet由Krizhevesky等人提出,他们通过加深CNN并应用许多参数优化策略来增强CNN的学习能力[21]。AlexNet的基本体系结构设计如图5所示。在2000年初,硬件限制了深度CNN结构的学习能力,迫使其限制在较小的尺寸。为了利用CNN的表达能力,Alexnet在两个NVIDIA GTX 580 GPU上进行了并行训练以克服硬件的短板。在AlexNet中,特征提取阶段从5(LeNet)扩展到了7,从而使CNN适用于各种类别的图像。尽管事实上通常情况下,深度会提高图像不同分辨率的泛化能力,但是与深度增加相关的主要缺点是过拟合。为了应对这一挑战,Krizhevesky等人(2012)利用了Hinton[56],[123]的想法,即他们的算法在训练过程中随机跳过了一些变换单元,以强制模型学习更鲁棒的特征。除此之外,ReLU还被用作非饱和激活函数,通过在某种程度上减轻梯度消失的问题来提高收敛速度[53],[124]。重叠下采样和局部响应归一化也被用于减少过度拟合来提高泛化性。与先前提出的网络相比,其他调整是在初始层使用了大型过滤器(11x11和5x5)。由于AlexNet的高效学习方法,它在新一代CNN中具有重要意义,并开始了CNN体系结构进步研究的新时代。
在2013年之前,CNN的学习机制主要是基于反复试验,而不知道改进背后的确切原因。缺乏了解限制了深层CNN在复杂图像上的性能。2013年,Zeiler和Fergus提出了一种有趣的多层反卷积神经网络(DeconvNet),该网络以ZefNet闻名[28]。开发ZefNet是为了定量可视化网络性能。网络活动可视化的想法是通过解释神经元的激活来监视CNN的性能。在先前的一项研究中,Erhan等人(2009)利用了相同的想法通过可视化隐藏层的特征[125],优化了深度信念网络(DBN)的性能。Le等人(2011年)以同样的方式通过可视化输出神经元生成的图像类别来评估深度无监督自动编码器(AE)的性能[126]。DeconvNet的工作方式与前向CNN相同,但颠倒了卷积和池化操作的顺序。这种反向映射将卷积层的输出投影回视觉上可感知的图像模式,从而给出了在每一层学习的内部特征表示的神经元级别的解释[127],[128]。ZefNet的目标是在训练期间监视学习方案,从而将发现用于诊断与模型相关的潜在问题。这个想法在AlexNet上应用DeconvNet得到了实验验证,结果表明在网络的第一层和第二层中只有少数神经元处于活动状态,而其他神经元则死了(处于非活动状态)。此外,它表明第二层提取的特征表现出混叠伪像(aliasing artifacts)。基于这些发现,Zeiler和Fergus调整了CNN拓扑并进行了参数优化。Zeiler和Fergus通过减小过滤器尺寸和步幅以在前两个卷积层中保留最大数量的特征,从而最大限度地提高了CNN的学习能力。CNN拓扑结构的这种重新调整带来了性能提高,这表明特征可视化可用于识别设计缺陷并及时调整参数。
随着CNN成功用于图像识别,Simonyan等人提出了一种简单有效的CNN架构设计原则。他们的名为VGG的体系结构是模块化的分层模式[29]。与AlexNet和ZefNet相比,VGG的深度为19层,以模拟深度与网络表示能力的关系[21],[28]。ZefNet是2013年ILSVRC竞赛的一线网络,它建议使用小型滤波器可以提高CNN的性能。基于这些发现,VGG用一堆3x3卷积层代替了11x11和5x5滤波器,并通过实验证明,同时放置3x3滤波器可以达到大尺寸滤波器的效果(感受野同大尺寸滤波器同样有效(5x5和7x7))。小尺寸滤波器的另一个好处是通过减少参数的数量提供了较低的计算复杂性。这些发现为在CNN中使用较小尺寸的滤波器创造了新的研究趋势。VGG通过在卷积层之间放置1x1卷积来调节网络的复杂性,此外,还可以学习所得特征图的线性组合。为了调整网络,将最大池化层放置在卷积层之后,同时执行填充以保持空间分辨率[46]。VGG在图像分类和定位问题上均显示出良好的效果。虽然VGG未在2014-ILSVRC竞赛中名列前茅,但由于其简单、同质的拓扑结构和增加的深度而闻名。与VGG相关的主要限制是计算成本高。即使使用小尺寸的滤波器,由于使用了约1.4亿个参数,VGG仍承受着很高的计算负担。
GoogleNet赢得了2014-ILSVRC竞赛的冠军,也被称为Inception-V1。GoogleNet体系结构的主要目标是在降低的计算成本同时实现高精度[99]。它在CNN中引入了inception块的新概念,通过拆分、变换和合并思想整合了多尺度卷积变换。inception块的体系结构如图6所示。该块封装了不同大小的滤波器(1x1、3x3和5x5),以捕获不同尺度(细粒度和粗粒度)的空间信息。在GoogleNet中,传统的卷积层被替换为小块,类似于在网络中网络(NIN)体系结构中提出的用微型NN替换每层的想法[57]。GoogleNet对分割、变换和合并的想法的利用,有助于解决与学习同一图像类别中存在的各种类型的变体有关的问题。除了提高学习能力外,GoogleNet的重点还在于提高CNN参数的效率。在采用大尺寸内核之前,GoogleNet通过使用1x1卷积滤波器添加瓶颈层来调节计算。它使用稀疏连接(并非所有输出特征图都连接到所有输入特征图),从而通过省略不相关的特征图(通道)来克服冗余信息和降低成本的问题。此外,通过在最后一层使用全局平均池来代替连接层,从而降低了连接密度。这些参数调整使参数量从4000万个大大减少到500万个。应用的其他正则因素包括批量标准化和使用RmsProp作为优化器[129]。GoogleNet还引入了辅助学习器的概念以加快收敛速度。但是,GoogleNet的主要缺点是其异构拓扑,需要在模块之间进行自定义。GoogleNet的另一个限制是表示瓶颈,它极大地减少了下一层的特征空间,因此有时可能会导致有用信息的丢失。
4.2 基于深度的CNN
ResNet由He等人提出,被认为是Deep Nets的延续[31]。ResNet通过在CNN中引入残差学习的概念彻底改变了CNN架构竞赛,并设计了一种有效的方法来训练深度Nets。与Highway Networks类似,它属于基于多路径的CNN,因此其学习方法将在4.3.2节中讨论。ResNet提出了152层深度CNN,赢得了2015-ILSVRC竞赛。ResNet残差块的体系结构如图7所示。分别比AlexNet和VGG深20倍和8倍的ResNet比以前提出的Nets[21],[29]表现出更少的计算复杂性。何等人根据经验表明,具有50/101/152层的ResNet在图像分类任务上的错误少于34层的纯Net。此外,ResNet在著名的图像识别基准数据集COCO [138]上提高了28%。ResNet在图像识别和定位任务上的良好性能表明,深度对于许多视觉识别任务至关重要。
ResNext,也称为聚合残差变换网络,是对Inception网络的改进[115]。谢等人通过引入cardinality的概念,以强大而简单的方式利用了分割,变换和合并[99]。cardinality是一个附加维,它是指转换集的大小[139],[140]。Inception网络不仅提高了传统CNN的学习能力,而且使网络资源有效。但是,由于在转换分支中使用了多种空间嵌入(例如使用3x3、5x5和1x1滤波器),因此需要分别自定义每一层。实际上,ResNext从Inception,VGG和ResNet [29],[31],[99]中得出了特征。ResNext通过将split,transform和merge块中的空间分辨率固定为3x3滤波器,利用了VGG的深度同质拓扑和简化的GoogleNet架构。它还使用残差学习。ResNext的构建块如图8所示。ResNext在split,transform和merge块中使用了多个转换,并根据cardinality定义了这些转换。Xie等人(2017)表明,cardinality的增加显着改善了性能。ResNext的复杂度是通过在3x3卷积之前应用低嵌入(1x1滤波器)来调节的,优化训练 ^使用跳跃连接。
4.3 基于多路径的CNN
网络深度的增加主要是针对复杂问题提高了性能,但同时也使网络训练变得困难。在深网中,由于层数众多,误差的反向传播可能会导致较低层的梯度值较小。为了解决这个问题,Srivastava等人 [101]在2015年,基于跨层连接的想法,提出了一种新的CNN架构,称为Highway Networks。在Highway Networks中,通过在层中分配两个门单元(等式(5)),可以实现跨层的信息畅通无阻。门控机制的思想是从基于长期短期记忆(LSTM)的递归神经网络(RNN)[147],[148]中得到启发的。通过组合第l层和之前的l-k层信息来聚合信息,产生正则化效果,从而使基于梯度的深度网络训练变得容易。这样就可以使用随机梯度下降(SGD)算法训练具有100多个层甚至多达900层的网络。Highway Networks网络的跨层连接性在公式(5和6)中定义。
为了解决在训练更深网络时遇到的问题,He等人(2015年)利用了Highway Network中使用的旁路途径提出了ResNet[31]。ResNet的数学公式用公式(7和8)表示。
在Highway Networks和ResNet的延续中,研究人员提出了DenseNet来解决梯度消失问题[31],[101],[107]。ResNet的问题在于它通过附加信息转换显式地保留信息,因此许多层可能贡献很少或根本没有信息。为了解决此问题,DenseNet使用了跨层连接,但是以一种修改的方式。DenseNet以前馈的方式将每一层连接到其他每一层,将所有先前层的特征图用作所有后续层的输入。与传统CNN中一层与其上一层之间的l个连接相比,这在DenseNet中建立了(l(l+1))/2个直接连接。它加强了跨层深度卷积的效果。由于DenseNet级联了先前层特征而不是添加它们,因此,网络可以具有显式区分添加到网络的信息和保留的信息的能力。DenseNet具有窄层结构,但是,随着特征图数量的增加,它在参数上变得昂贵。通过损失函数使每一层直接进入梯度,可以改善整个网络中的信息流。这具有正则化效果,可减少使用较小训练集任务的过拟合。
4.4 基于宽度的多连接CNNs
值得关注的是,深度残差网络相关的主要缺点是特征重用问题,其中某些特征转换或块可能对学习的贡献很小[152]。WideResNet解决了这个问题[34]。Zagoruyko和Komodakis提出,深层残差网络的学习潜力主要是由于残差单元,而深度具有补充作用。WideResNet通过使ResNet变宽而不是变深来利用残差块的功能[31]。WideResNet通过引入附加因子k,该因子控制网络的宽度。WideResNet表明,与使残差网络更深相比,拓宽层可能会提供更有效的性能改善方法。尽管深度残差网络提高了表示能力,但是它们具有一些缺点,例如时间密集型训练,许多特征图的失活(特征重用问题)以及梯度消失和爆炸问题。何等人通过将dropout引入残差块以有效地规范网络来解决特征重用问题[31]。同样,黄等人引入了随机深度的概念来解决梯度消失和学习缓慢的问题[105]。目前,即使性能的部分改善也可能需要添加许多新层。一项经验研究表明,WideResNet的参数数量是ResNet的两倍,但可以比深度网络更好地进行训练[34]。更宽的残差网络是基于以下观察结果:与ResNet相比,残差网络之前的几乎所有体系结构(包括最成功的Inception和VGG)都更宽。在WideResNet中,通过在卷积层之间而不是在残差块内部添加dropout来使学习有效。
在早期的深度CNN架构中,例如AlexNet,VGG和ResNet,由于多个卷积层的堆叠,特征图的深度在后续层中增加。但是,空间维数会减小,因为每个卷积层后都有子采样层[21],[29],[31]。因此,Han等人认为,在深层的CNN中,丰富的特征表示可以通过减小特征图的大小来弥补[35]。特征图深度的急剧增加同时,空间信息的丢失限制了CNN的学习能力。ResNet在图像分类问题上显示出了非凡的成果。但是,在ResNet中,删除残差块通常会降低性能,在残差块中,空间图和特征图(通道)的尺寸都会发生变化(特征图深度增加,而空间尺寸减小)。在这方面,随机ResNet通过随机丢弃残差单元减少信息损失来提高性能[105]。为了提高ResNet的学习能力,Han等人提出了金字塔网络(Pyramidal Net)[35]。与ResNet随深度的增加而导致的空间宽度的急剧减小相反,金字塔形网络逐渐增加了每个残差单位的宽度。这种策略使金字塔网络能够覆盖所有可能的位置,而不是在每个残差块内保持相同的空间尺寸,直到下采样为止。由于特征图的深度以自上而下的方式逐渐增加,因此被命名为金字塔网。在金字塔网络中,特征图的深度由因子l调节,并使用公式(9)计算。
Xception可以被认为是一种极端的Inception架构,它利用了AlexNet [21],[114]引入的深度可分离卷积的思想。Xception修改了原始的inception块,使其更宽,并用一个单一的维度(3x3)紧跟1x1替换了不同的空间维度(1x1、5x5、3x3),以调节计算复杂度。Xception块的体系结构如图9所示。Xception通过解耦空间和特征图(通道)相关性来提高网络的计算效率。它先使用1x1卷积将卷积输出映射到低维嵌入,然后将其空间变换k次,其中k为cardinality的宽度,它确定变换的次数。Xception通过在空间轴上分别对每个特征图进行卷积,使计算变得容易,然后进行逐点卷积(1x1卷积)以执行跨通道关联。在Xception中,使用1x1卷积来调节特征图深度。在传统的CNN架构中,传统的卷积运算仅使用一个变换段,Inception使用三个变换段,而在Xception中,变换段的数量等于特征图的数量。尽管Xception采用的转换策略不会减少参数的数量,但是它使学习更加有效并提高了性能。
4.5 基于特征图(Channel FMap)利用的CNN
Hu等人报道了Squeeze和Excitation网络(SE-Network)[116]。他们提出了一个新的块,用于选择与物体识别相关的特征图(通常称为通道)。这个新块被称为SE块(如图10所示),它抑制了不太重要的特征图,但赋予了指定特征图类较高的权重。SE-Network报告了ImageNet数据集错误的减少记录。SE块是一种以通用方式设计的处理单元,因此可以在卷积层之前的任何CNN体系结构中添加。该块的工作包括两个操作:挤压和激发。卷积核捕获局部信息,但是它忽略了该感受野之外特征的上下文关系(相关性)。为了获得特征图的全局视图,压缩块通过抑制卷积输入的空间信息来生成特征图合理统计信息。由于全局平均池化具有有效学习目标对象范围的潜力,因此,挤压操作将其用于使用以下公式生成特征图合理统计信息[57],[155]:
Hu等人提出了Competitive Inner-Imaging Squeeze and Excitation for Residual Network(也称为CMPE-SE网络)。在2018年[118], Hu等人用SE块的思想来改善深度残差网络的学习[116]。SE-Network根据特征图在分类识别中的作用重新校准特征图。但是,SE-Net的主要问题在于,在ResNet中,它仅考虑残差信息来确定每个通道的权重[116]。这样可以最小化SE块的影响,使ResNet信息变得多余。Hu等人通过从基于残差和基于identity mapping的特征生成特征图合理统计信息来解决此问题。在这方面,使用全局平均池化操作来生成特征图的全局表示,而通过基于残差和identity mapping的描述符之间进行竞争来估计特征图的相关性。这种现象称为inner imaging [118]。CMPE-SE块不仅对残差特征图之间的关系进行建模,而且还将其与inner imaging图的关系进行映射,并在二者之间进行竞争。CMPE-SE块的数学表达式使用以下公式表示:
4.6 基于通道(输入)利用的CNNs
在2018年,Khan等人基于增加输入通道数以提高网络的表示能力的想法,提出了一种新的CNN体系结构,称为通道提升CNN(CB-CNN)[36]。CB-CNN的框图如图11所示。通过在深层生成模型人为地创建额外的通道(称为辅助通道),然后通过深层判别模型加以利用,从而进行通道提升。该文认为可以在生成和区分阶段都使用TL的概念。数据表示在确定分类器的性能中起着重要作用,因为不同的表示可能表示信息的不同方面[84]。为了提高数据的代表性,Khan等人利用了TL和深度生成学习器[24],[162],[163]。生成型学习器试图在学习阶段表征数据生成分布。在CB-CNN中,自动编码器用作生成学习器,以学习解释数据背后变化的因素。增强以原始通道空间(输入通道)学习到的输入数据分布,归纳TL的概念以新颖的方式用于构建提升输入表示。CB-CNN将通道提升阶段编码为一个通用块,该块插入到深层网络的开头。对于训练,Khan等人使用了预训练的网络以减少计算成本。这项研究的意义在于,将生成学习模型用作辅助学习器的情况下,可以增强基于深度CNN的分类器表示能力。尽管仅评估了通过在开始时插入提升块来提升通道的潜力,但是Khan等人(2003年)建议,这一想法可以拓展到在深度体系结构的任何层提供辅助通道。CB-CNN也已经在医学图像数据集上进行了评估,与以前提出的方法相比,它改进了结果。CB-CNN在有丝分裂数据集上的收敛曲线如图12所示。
4.7 基于注意力的CNNs
Wang等人提出了一种残差注意力网络(RAN)来改善网络的特征表示[38]。在CNN中纳入注意力的动机是使网络能够学习对象感知特征。RAN是前馈CNN,它是通过将残差块与注意力模块堆叠在一起而构建的。注意力模块采用自下而上、自顶向下学习策略,分为主干和mask分支。将两种不同的学习策略组合到注意力模块中,可以在单个前馈过程中进行快速前馈处理和自上而下的注意力反馈。自下而上的前馈结构产生具有强语义信息的低分辨率特征图。而自顶向下的体系结构会产生密集的特征,以便对每个像素进行推断。在先前提到的研究中,限制波尔兹曼机使用了自上而下、自下而上的学习策略[164]。同样,Goh等在训练的重建阶段,利用自顶向下的注意机制作为深度玻尔兹曼机(DBM)的正则化因子。自上而下的学习策略以在学习过程中逐渐将地输出输入数据特征图的方式全局优化网络[82],[164],[165]。RAN中的注意力模块在每一层生成对象感知软掩模S_(i,FM) (x_c)[166]。软掩模S_(i,FM) (x_c)通过重新校准主干T_(i,FM) (x_c)输出,使用等式(13)将注意力分配给对象,因此,对于每个神经元输出,其行为都像控制门。
注意力机制和特征图利用的重要性已通过RAN和SE-Network验证[38],[111]。在这方面,Woo等提出了基于注意力的新CNN:卷积块注意模组(CBAM)[37]。CBAM设计简单,类似于SE-Network。SE-Network仅考虑特征图在图像分类中的作用,但忽略了图像中对象的空间位置。对象的空间位置在对象检测中具有重要作用。CBAM通过先应用特征图(通道)注意力,然后再应用空间注意力来依次查找注意力图,以找到经过改进的特征图。在文献中,通常将1x1卷积和池化操作用于空间注意力。Woo等的结果表明,沿空间轴池化特征会生成有效的特征描述符。CBAM将平均池化与最大池化连接在一起,从而生成强大的空间注意力图。同样,使用最大池化和全局平均池化操作的组合对特征图统计数据进行建模。Woo等表明最大池化可以提供有关独特对象特征的线索,而全局平均池的使用返回特征图注意力的次优推断。利用平均池化和最大池化可提高网络的表示能力。这些精致的特征图不仅专注于重要部分,而且还提高了所选特征图的表示能力。Woo等的经验表明,通过串行学习过程制定3D注意图有助于减少参数和计算成本。由于CBAM的简单性,它可以轻松地与任何CNN架构集成。
在2018年,Roy等人通过将空间信息的效果与特征图(通道)信息结合起来,使其适用于分割任务[111],[112],扩展了胡等人的工作。他们介绍了三个不同的模块:(i)进行spatially和exciting特征图的wise压缩(cSE),(ii)空间上压缩特征图wise和exciting(sSE),以及(iii)同时进行空间和通道压缩与激励(scSE)。在这项工作中,基于自动编码器的卷积神经网络用于分割,而在编码器和解码器层之后插入了建议的模块。在cSE模块中,采用了与SE-block相同的概念。在此模块中,比例因子是基于目标检测中特征图的组合得出的。由于空间信息在分割中起着重要作用,因此在sSE模块中,空间位置比特征图信息更为重要。为此,选择特征图的不同组合并在空间上加以利用以将其用于分割。在最后一个模块中;在SCSE中,通过从空间和通道信息中得出比例因子来分配对每个通道的注意力,从而有选择地突出显示特定对象的特征图[112]。
5.1 自然语言处理
5.2计算机视觉相关应用
5.3 物体检测
5.4 图像分类
5.5 语音识别
关于CNN在不同ML任务上的性能,不同的研究人员进行了有趣的讨论。深度CNN模型训练期间面临的一些挑战如下:
(*本文为AI科技大本营转载,转载请联系原作者)
◆
精彩推荐
◆
全面分析阿里数据中台,小白也能看懂 | CSDN原力计划
不到顶会现场也能听论文讲解?这个视频集合网站值得收藏
知识图谱从哪里来:实体关系抽取的现状与未来
MobileNets进化史
三位物理学家与陶哲轩证明的惊天定理,原来早在教科书里?
“12306”的架构到底有多6?
百度工程师详解合约网关,如何用Quorum中间层快速开发投票智能合约?
金山办公上市,雷军心愿了却!
如何向纯洁的女朋友解释并发与并行的区别?
你点的每个“在看”,我都认真当成了AI
Modified on