关于深度学习理论和架构的最新综述(part2)

卷积神经网络(CNN)

CNN概述

这种网络结构最初由Fukushima于1988年提出1。然而,由于用于训练网络的计算硬件的限制,它没有被广泛使用。在20世纪90年代,LeCun等人2将基于梯度的学习算法应用于CNN,并获得手写数字分类问题的成功结果。之后,研究人员进一步改进了CNN,并在许多识别任务中报告了最先进的结果。 CNN比DNN具有几个优点,包括更像人类视觉处理系统,在处理2D和3D图像的结构中高度优化,并且有效地学习和提取2D特征的抽象。 CNN的最大汇集层有效地吸收形状变化。此外,由具有绑定权重的稀疏连接组成,CNN具有比相似大小的完全连接网络明显更少的参数。最重要的是,CNN使用基于梯度的学习算法进行训练,并且减少梯度问题。鉴于基于梯度的算法训练整个网络以直接最小化误差标准,CNN可以产生高度优化的权重。

图9显示了CNN的整体架构由两个主要部分组成:特征提取器和分类器。在特征提取层中,网络的每一层都接收来自其前一层的输出作为其输入,并将其输出作为输入传递给下一层。 CNN架构由三种类型的层组合而成:卷积,最大池和分类。网络的低层和中层有两种类型的层:卷积层和最大池层。偶数层用于卷积,奇数层用于最大池操作。卷积和最大池层的输出节点被分组为称为特征映射的2D平面。层的每个平面通常源自先前层的一个或多个平面的组合。平面的节点连接到前一层的每个连接平面的小区域。卷积层的每个节点通过输入节点上的卷积运算从输入图像中提取特征。在这里插入图片描述
更高级别的特征源自从较低级别层传播的特征。随着特征传播到最高层或级别,特征的维度分别根据用于卷积和最大池操作的内核的大小而减小。然而,为了确保分类准确性,通常增加特征图的数量以表示输入图像的更好特征。 CNN的最后一层的输出用作完全连接的网络的输入,该网络称为分类层。前馈神经网络已被用作分类层,因为它们具有更好的性能[^56] ’ [^64]。在分类层中,提取的特征被作为关于最终神经网络的权重矩阵的维度的输入。然而,就网络或学习参数而言,完全连接的层是昂贵的。如今,有几种新技术,包括平均池和全球平均池,用作全连接网络的替代方案。使用soft-max层在顶部分类层中计算相应类别的分数。基于最高分,分类器为相应的类提供输出。 CNN的不同层的数学细节将在下一节中讨论。

卷积层

在此图层中,先前图层的要素图与可学习的内核进行卷积。内核的输出通过线性或非线性激活函数,例如sigmoid,双曲正切,Softmax,整流线性和标识函数)来形成输出特征映射。每个输出要素图可以与多个输入要素图组合。总的来说,我们有
x j l = f ( ∑ i ∈ M j x i l − 1 ∗ k i j l + b j l ) x_j^l = f(\sum_{i \in M_j} x_i^{l-1} * k_{ij}^l + b_j^l) xjl=f(iMjxil1kijl+bjl)

其中 x l j x_l^j xlj是当前层的输出, x i l − 1 x_i^{l-1} xil1是前一层输出, k i j l k_{ij}^l kijl是当前层的内核, b j l b^l_j bjl是当前层的偏差。 M j M_j Mj表示输入映射的选择。对于每个输出映射,给出附加偏差 b b b。但是,输入映射将与不同的内核进行卷积,以生成相应的输出映射。输出映射最终通过线性或非线性激活函数(例如sigmoid,双曲正切,Softmax,整流线性或标识函数)。

子采样层

子采样层对输入映射执行下采样操作。这通常称为池化层。在此图层中,输入和输出要素图的数量不会更改。例如,如果有 N N N个输入映射,那么将有正好 N N N个输出映射。由于下采样操作,输出图的每个维度的大小将减小,这取决于下采样掩码的大小。例如,如果使用 2 × 2 2\times2 2×2下采样内核,则每个输出维度将是所有图像的相应输入维度的一半。该操作可以表述为
x j l = d o w n ( x j l − 1 ) x_j^l = down(x_j^{l-1}) xjl=down(xjl1)

其中 d o w n ( ⋅ ) down(\cdot) down()表示子采样函数。在该层中主要执行两种类型的操作:平均池或最大池。在平均合并方法的情况下,该函数通常总结来自前一层的特征图的 N × N N \times N N×N个补丁并选择平均值。另一方面,在max-pooling的情况下,从特征映射的 N × N N\times N N×N个补丁中选择最高值。因此,输出地图尺寸减少了 n n n倍。在某些特殊情况下,每个输出映射都会乘以标量。已经提出了一些替代的子采样层,例如分数最大池化层和具有卷积的子采样。这些在4.6节中解释。

分类层

这是完全连接的层,它根据前面步骤中卷积层的提取特征计算每个类的得分。最终的图层要素图表示为具有标量值的矢量,这些标量值将传递到完全连接的图层。完全连接的前馈神经层用作软最大分类层。对网络模型中包含的层数没有严格的规定。但是,在大多数情况下,在不同的架构中观察到了两到四层,包括LeNet 2,AlexNet 3和VGG Net [^9]。由于完全连接的层在计算方面是昂贵的,因此在过去几年中已经提出了替代方法。这些包括全局平均池层和平均池层,这有助于显着减少网络中的参数数量。
在通过CNN的反向传播中,完全连接的层按照完全连接的神经网络(FCNN)的一般方法更新。通过对卷积层与其前一层之间的特征图执行完全卷积运算来更新卷积层的滤波器。图10显示了输入图像的卷积和子采样的基本操作。

在这里插入图片描述

CNN的网络参数和所需内存

计算参数的数量是衡量深度学习模型复杂性的重要指标。 输出要素图的大小可以表示如下:

M = ( N − F ) S + 1 M = \frac{(N-F)}{S} + 1 M=S(NF)+1

其中 N N N表示输入要素图的尺寸, F F F表示滤波器或感受野的尺寸, M M M表示输出要素图的尺寸, S S S表示步幅长度。 填充通常在卷积操作期间应用,以确保输入和输出特征图具有相同的尺寸。 填充量取决于内核的大小。 等式(17)用于确定用于填充的行数和列数。

P = ( F − 1 ) / 2 P = (F-1)/2 P=(F1)/2

这里 P P P是填充量, F F F是指内核的维数。 考虑几个标准来比较模型。 但是,在大多数情况下,会考虑网络参数的数量和内存的总量。 第 l l l层的参数( P a r m l Parm_l Parml)的数量基于以下等式计算:

P a r m l = ( F × F × F M l − 1 ) × F M l Parm_l = (F \times F \times FM_{l-1}) \times FM_l Parml=(F×F×FMl1)×FMl
如果偏差与权重相加,则上述等式可写如下:

P a r m l = ( F × ( F + 1 ) × F M l − 1 ) × F M l Parm_l = (F \times (F+1) \times FM_{l-1}) \times FM_l Parml=(F×(F+1)×FMl1)×FMl
这里,第 l l l个车床的参数总数可以用 P l P_l Pl表示, F M l FM_l FMl表示输出特征图的总数, F M l − 1 FM_{l-1} FMl1是输入特征图或通道的总数。 例如,假设第l层具有 F M l − 1 = 32 FM_{l-1} = 32 FMl1=32个输入要素图, F M l = 64 FM_l = 64 FMl=64个输出要素图,并且滤波器大小为 F = 5 F = 5 F=5.在这种情况下,具有此图层偏差的参数总数: P a r m l = ( 5 × 5 × 33 ) × 64 = 528 , 000 Parm_l =(5×5×33)×64 = 528,000 Parml=5×5×33×64=528,000。因此,第 l l l层操作所需的存储量( M e m l Mem_l Meml)可表示为

M e m l = ( N l × N l × F M l ) Mem_l = (N_l \times N_l \times FM_l) Meml=(Nl×Nl×FMl)

受欢迎的CNN架构

在本节中,将研究几种流行的最先进的CNN架构。通常,大多数深度卷积神经网络由一组关键基本层组成,包括卷积层,子采样层,密集层和软最大层。这些体系结构通常由几个卷积层和最大池层组成,最后是完全连接的SoftMax层。这些模型的一些例子是LeNet 2,AlexNet 3,VGG Net [^9],NiN 4和所有卷积(All Conv)5。已经提出了其他替代方案和更有效的高级架构,包括DenseNet 6,FractalNet 7,GoogLeNet和Inception单元[^10] ’ 89以及残余网络10。这些体系结构中的基本构建组件(卷积和池化)几乎相同。然而,在现代深度学习架构中观察到一些拓扑差异。在许多DCNN架构中,AlexNet 3,VGG [^9],GoogLeNet [^10] ’ 89,密集CNN 6和FractalNet 7通常被认为是最受欢迎的架构,因为它们的状态 - 针对对象识别任务的不同基准测试的性能。在所有这些结构中,一些架构专门用于大规模数据分析(例如GoogLeNet和ResNet),而VGG网络被认为是一般架构。一些架构在连接方面很密集,例如DenseNet 6。分形网络是ResNet模型的替代品。

LeNet(1998)

尽管LeNet是在20世纪90年代提出的,但有限的计算能力和内存容量使得该算法在2010年左右难以实现2。 LeCun等2提出了具有反向传播算法的CNN,并在手写数字数据集上进行了实验,以实现最先进的精度。所提出的CNN架构以LeNet-5 2而闻名。 LeNet-5的基本配置如下(见图11):两个卷积(转换)层,两个子采样层,两个完全连接的层和一个带高斯连接的输出层。权重总数和乘法和累加(MAC)分别为431 k和2.3 M.
随着计算硬件能力的提高,CNN越来越受欢迎,成为计算机视觉和机器学习社区中一种有效的学习方法。
在这里插入图片描述

AlexNet(2012)

2012年,Alex Krizhevesky和其他人提出了与LeNet相比更深入,更广泛的CNN模型,并在2012年赢得了称为ImageNet大规模视觉识别挑战(ILSVRC)的视觉对象识别中最困难的ImageNet挑战3。 AlexNet针对所有传统的机器学习和计算机视觉方法实现了最先进的识别准确性。这是视觉识别和分类任务的机器学习和计算机视觉领域的重大突破,也是历史上对深度学习的兴趣迅速增加的重点。

AlexNet的体系结构如图12所示。第一个卷积层使用局部响应标准化(LRN)执行卷积和最大池化,其中使用96个不同的接收过滤器,大小为 11 × 11 11\times11 11×11。使用步幅大小为2的 3 × 3 3\times 3 3×3滤波器执行最大合并操作。在具有 5 × 5 5\times 5 5×5滤滤波器的第二层中执行相同的操作。 3 × 3 3\times 3 3×3滤滤波器分别用于第三,第四和第五卷积层,分别具有384,384和296个特征图。两个完全连接(FC)层使用带有压差,最后是Softmax层。对于该模型,并行训练具有相似结构和相同数量的特征图的两个网络。在该网络中引入了两个新概念,即本地响应规范化(LRN)和丢失。 LRN可以以两种不同的方式应用:首先应用于单通道或特征图,其中从相同的特征图中选择N×N块并基于邻域值进行归一化。其次,LRN可以应用于通道或特征图(沿第三维的邻域,但是单个像素或位置)。
在这里插入图片描述
AlexNet有三个卷积层和两个完全连接的层。处理ImageNet数据集时,第一层的AlexNet参数总数可以如下计算:输入样本为 224 × 224 × 3 224 \times 224 \times 3 224×224×3,过滤器(内核或掩码)或大小为11的感知字段,步幅是4,第一卷积层的输出是 55 × 55 × 96 55 \times 55 \times 96 55×55×96。根据3.1.4节中的方程,我们可以计算出第一层有 290 , 400 ( 55 × 55 × 96 ) 290,400(55 \times 55 \times 96) 290,400(55×55×96)个神经元和364个( 11 × 11 × 3 = 363 + 1 11 \times 11 \times 3 = 363 + 1 11×11×3=363+1个偏差)权重。第一卷积层的参数是 290 , 400 × 364 = 105 , 705 , 600 290,400 \times 364 = 105,705,600 290,400×364=105,705,600。表2显示了每个层的参数数量(以百万计)。整个网络的权重和MAC总数分别为61M和724M。

ZFNet / Clarifai(2013)

2013年,Matthew Zeiler和Rob Fergue凭借CNN架构赢得了2013 ILSVRC,这是AlexNet的延伸。在作者的名字之后,该网络被称为ZFNet [^8]。由于CNN在计算上是昂贵的,因此从模型复杂性的观点来看,需要最佳地使用参数。 ZFNet架构是对AlexNet的改进,通过调整后者的网络参数来设计。 ZFNet使用 7 × 7 7 \times 7 7×7内核而不是 11 × 11 11 \times 11 11×11内核来显着减少权重数量。这大大减少了网络参数的数量,并提高了整体识别准确性。

网络网络(NiN)

这个模型与先前的模型略有不同,后面引入了几个新概念4。第一个概念是使用多层感知卷积,其中使用 1 × 1 1 \times 1 1×1滤波器执行卷积,这有助于在模型中添加更多非线性。这有助于增加网络的深度,然后可以通过丢失来规范化。这个概念经常用在深度学习模型的瓶颈层中。

第二个概念是使用全局平均池(GAP)作为完全连接层的替代方案。这有助于显着减少网络参数的数量。 GAP显着改变了网络结构。通过在大特征映射上应用GAP,我们可以生成最终的低维特征向量,而不会减少特征映射的维度。

VGGNET(2014)

视觉几何组(VGG)是2014年ILSVRC的亚军[^9]。这项工作的主要贡献在于它表明网络的深度是实现CNN更好识别或分类准确性的关键组成部分。 VGG架构由两个卷积层组成,两个层都使用ReLU激活功能。激活功能之后是单个最大池化层和几个完全连接的层也使用ReLU激活功能。模型的最后一层是用于分类的Softmax层。在VGG-E [^9]中,卷积滤波器的大小变为 3 × 3 3 \times 3 3×3滤波器,步长为2.三个VGG-E [^9]模型,VGG-11,VGG-16和VGG-19;提出模型分别有11层,16层和19层。 VGG网络模型如图13所示。
在这里插入图片描述
所有版本的VGG-E型号都以三个完全连接的层结束。然而,卷积层的数量变化VGG-11包含8个卷积层,VGG-16具有13个卷积层,VGG-19具有16个卷积层。 VGG-19是计算量最大的模型,包含138Mweights,有15.5M MAC。

GoogLeNet(2014)

2014年ILSVRC的获胜者GoogLeNet [^10]是Google的Christian Szegedy提出的模型,其目的是与传统的CNN相比降低计算复杂度。提出的方法是合并具有可变接收字段的Inception Layers,这些字段由不同的内核大小创建。这些感知字段创建了在新要素图堆栈中捕获稀疏相关模式的操作。

初始概念的初始层可以在图14中看到.GoogLeNet使用一堆Inception层改进了最先进的识别精度,如图15所示。初始初始层和最终初始层之间的差异是添加 1 × 1 1\times 1 1×1卷积内核。这些内核允许在计算昂贵的层之前降低维数。 GoogLeNet共有22层,远远超过之前的任何网络。在9中提出了该网络的后来改进版本。但是,GoogLeNet使用的网络参数数量远远低于其前身AlexNet或VGG。当AlexNet有60M和VGG-19 138M时,GoogLeNet有7M网络参数。 GoogLeNet的计算也是1.53G MAC,远远低于AlexNet或VGG。

在这里插入图片描述

残差网络(2015年ResNet)

ILSVRC 2015的获胜者是ResNet网络架构,ResNet 10。 Resnet是由Kaiming He开发的,旨在设计超深度网络,而不受前辈所具有的消失梯度问题的影响。 ResNet开发了许多不同数量的层;流行的ResNet50在网络末端包含49个卷积层和1个完全连接的层。整个网络的权重和MAC总数分别为25.5M和3.9M。
ResNet架构的基本框图如图16所示.ResNet是一个传统的前馈网络,具有剩余连接。可以基于来自前一层定义为 x l − 1 x_{l-1} xl1的第 ( l − 1 ) (l-1) (l1)的输出来定义残余层的输出。 F ( x l − 1 ) F(x_{l-1}) F(xl1)是在执行各种操作(例如,具有不同大小的滤波器的卷积,批量标准化(BN)之后是激活功能,例如 x l − 1 x_{l-1} xl1上的ReLU)之后的输出。剩余单位的最终输出是 x l x_l xl,可以用以下等式定义:

x l = F ( x l − 1 ) + x l − 1 x_l = F(x_{l-1}) + x_{l-1} xl=F(xl1)+xl1
在这里插入图片描述
剩余网络由几个基本残差块组成。 然而,残余块中的操作可以根据残余网络的不同架构而变化10。 Zagoruvko等人11提出了更广泛的剩余网络版本。 ,另一种改进的残差网络方法称为聚合残差变换12。 最近,基于残余网络架构131415引入了残差模型的一些其他变体。 此外,还有几种先进的体系结构与Inception和Residual单元相结合。 Inception-Residual单元的基本概念图如下图17所示。

在这里插入图片描述
在数学上,这个概念可以表示为

x l = F ( x l − 1 3 × 3 ⊙ x l − 1 5 × 5 ) + x l − 1 x_l = \mathcal F(x_{l-1}^{3 \times 3} \odot x_{l-1}^{5 \times 5}) + x_{l-1} xl=F(xl13×3xl15×5)+xl1

其中符号 ⊙ \odot 表示来自 3 × 3 3 \times 3 3×3 5 × 5 5 \times 5 5×5滤波器的两个输出之间的浓度操作。之后,使用 1 × 1 1 \times 1 1×1滤波器执行卷积运算。最后,输出与 x l − 1 x_{l-1} xl1的这个块的输入相加。在Inception-v4架构9中引入了具有残余连接的Inception块的概念。还提出了Inception-Residual网络的改进版本1516

密集连接网络(DenseNet)

密集网由Gao等人开发。在2017年6,由密集连接的CNN层组成,每层的输出与密集块中的所有后继层连接6。因此,它形成了层之间密集的连接,奖励它名为DenseNet。此概念对于功能重用非常有效,可显着减少网络参数。 DenseNet由几个密集块和转换块组成,它们位于两个相邻的密集块之间。密集块的概念图如图18所示。
在这里插入图片描述
每个图层都将所有前面的要素图作为输入。 当解构图19时,第l层接收来自先前 x 0 , x 1 , x 2 , … , x l − 1 x_0,x_1,x_2,\dots ,x_{l-1} x0,x1,x2,,xl1层的所有特征图作为输入:

x l = H l ( [ x 0 , x 1 , x 2 , … , x l − 1 ] ) x_l = H_l ([x_0,x_1,x_2,\dots ,x_{l-1}]) xl=Hl([x0,x1,x2,,xl1])

其中 [ x 0 , x 1 , x 2 , … , x l − 1 ] [x_0,x_1,x_2,\dots ,x_{l-1}] [x0,x1,x2,,xl1]是层 0 , 1 , 2 , … , l − 1 0,1,2,\dots ,l-1 0,1,2,,l1的连接特征和 H 1 ( ⋅ ) H_1(\cdot) H1()被认为是单个张量。 它执行三种不同的连续操作:批量标准化(BN)17,然后是ReLU 8 3 × 3 3 \times 3 3×3卷积运算。 在事务块中,用BN执行 1 × 1 1 \times 1 1×1卷积运算,然后是 2 × 2 2 \times 2 2×2平均池层。 这个新模型通过合理数量的对象识别任务的网络参数显示了最先进的精度。

在这里插入图片描述

FractalNet(2016)

这种架构是ResNet模型的一种先进的替代架构,它可以有效地设计具有标称深度的大型模型,但是在训练期间用于梯度传播的路径较短7。 这个概念基于丢弃路径,这是制造大型网络的另一种正规化方法。 因此,这个概念有助于加快速度与准确性之间的权衡。 FractalNet的基本框图如图19所示。

CapsuleNet

与最先进的手工制作的特征检测器相比,CNN是用于检测物体的特征并实现良好识别性能的有效方法。 CNN存在限制,即它没有考虑特征的特殊关系,透视,大小和方向。例如,如果你有一张脸部图像,CNN神经元的不同成分(鼻子,眼睛,嘴巴等)的放置无关紧要,并且在不考虑特殊关系的情况下识别为脸部(方向) ,大小)。现在,想象一个包含特征属性(透视,方向,大小等)的可能性的神经元。这种特殊类型的神经元,胶囊,可以有效地检测面部的不同信息。胶囊网络由几层胶囊节点组成。第一版胶囊网络(CapsNet)由编码单元中的三层胶囊节点组成。
对于MNIST( 28 × 28 28 \times 28 28×28)图像的这种架构,256 9 × 9 9 \times 9 9×9内核应用步幅1,因此输出为(28 - 9 + 1 = 20),具有256个特征映射。然后将输出馈送到主胶囊层,该主胶囊层是修改的卷积层,其产生8-D向量而不是标量。在第一卷积层中, 9 × 9 9 \times 9 9×9内核应用步幅2,输出维数为((20 - 9)/ 2 + 1 = 6)。主要胶囊使用 8 × 32 8 \times 32 8×32个核,产生 32 × 8 × 6 × 6 32 \times 8 \times 6 \times 6 32×8×6×6(32个组,8个神经元, 6 × 6 6 \times 6 6×6大小)。
CapsNet的整个编码和解码过程分别如图20和21所示。我们经常在CNN中使用max-pooling层来处理翻译差异。即使某个功能仍处于最大合并窗口之下,它也会被检测到。由于胶囊包含来自前一层的特征的加权和,因此该方法能够检测对于分割和检测任务重要的重叠特征。
在这里插入图片描述
在传统的CNN中,单个成本函数用于评估在训练期间向后传播的总体误差。 然而,在这种情况下,如果两个神经元之间的权重为零,则神经元的激活不会从该神经元传播。 信号相对于特征参数被路由,而不是在协议的迭代动态路由中的一个尺寸适合所有成本函数。 有关此架构的详细信息,请参见参考资料18。 这种新的CNN架构为MNIST上的手写数字识别提供了最先进的精度。 但是,从应用程序的角度来看,与分类任务相比,此架构更适合于分段和检测任务。

不同模型的比较

表2给出了基于误差,网络参数和最大连接数的最近提出的模型的比较。
在这里插入图片描述

其他DNN型号

还有许多其他网络架构,例如基于快速区域的CNN 19和Xception 20,它们在计算机视觉社区中很流行。 2015年,使用递归卷积层(Recurrent Convolution Neural Network)或RCNN 21提出了一种新模型。该网络的改进版本是初始网络和循环卷积网络中两种最流行的体系结构的组合,初始卷积递归神经网络
网络(IRCNN)22。与RCNN和初始网络相比,IRCNN提供了更好的准确性,具有几乎相同的网络参数。视觉相位引导CNN(ViP CNN)被提出通过相位引导消息传递结构(PMPS)来建立关系组件之间的连接,这显示出更好的加速和识别准确性23。基于CNN的查找24是一种快速,紧凑,准确的模型,可实现高效推理。在2016年,被称为完全卷积网络(FCN)的架构被提议用于分割任务,现在它在25中被普遍使用。其他最近提出的CNN模型包括像素网26,具有随机深度的深度网络,深度监督网络和梯形网络272829。另外,CNN架构模型在30中有解释。有些文章发表在做深网真的需要深入313233。在fitNet命中34,初始化方法35,深度与宽网36,大型训练集上的DL训练37,图形处理38,节能网络架构3940上发表了一些文章。

CNN的应用

解决图形问题的CNN

学习图形数据结构是数据挖掘和机器学习任务中各种应用程序的常见问题。 DL技术在机器学习和数据挖掘组之间架起了一座桥梁。 2016年提出了一种有效的任意图处理CNN 41

图像处理与计算机视觉

我们上面讨论过的大多数模型都适用于不同的应用领域,包括图像分类3 ’ [^8] ’ [^9] ’ [^10] ’ 10,检测,分割,定位,字幕,视频分类等等。对图像处理和计算机视觉相关任务的DL方法进行了很好的调查,包括图像分类,分割和检测42。例如,使用CNN方法的单图像超分辨率43,使用块匹配CNN的图像去噪44,使用A-Lamp(自适应布局感知多片段深度CNN)45的照片美学评估,DCNN用于高光谱成像分割46,图像配准47,快速艺术风格转移48,使用DCNN的图像背景分割49,手写字符识别50,光学图像分类51,使用高分辨率的作物映射卫星图像52,蜂窝同时复发网络的物体识别和CNN 53。与现有方法相比,DL方法大量应用于人类活动识别任务并实现了最先进的性能545556575859。然而,最先进的分类,分割和检测任务模型如下:

  1. 分类问题模型:根据分类模型的结构,输入图像采用卷积和子采样层进行不同步骤编码,最后用SoftMax方法计算类概率。上面讨论的大多数模型都应用于分类问题。然而,这些具有分类层的模型可以用作分割和检测任务的特征提取。分类模型列表如下:AlexNet 2,VGGNet [^9],GoogleNet [^10],ResNet 10,DenseNet 6,FractalNet 7,CapsuleNet 18,IRCNN 22, IRRCNN 16,DCRN 60等。
  2. 分割问题的模型:在过去几年中已经提出了几种语义分割模型。分段模型由两个单元组成:编码和解码单元。在编码单元中,执行卷积和子采样操作以编码到较低维潜在空间,其中当解码单元对来自执行去卷积和上采样操作的潜在空间的图像进行解码。第一个分段模型是完全卷积网络(FCN)2561。后来提出了这个网络的改进版本,命名为SegNet 62。最近提出了几种新模型,包括RefineNet 63,PSPNEt 64,DeepLab 65,UNet 66和R2U-Net 67
  3. 检测问题的模型:与分类和分割问题相比,检测问题略有不同。在这种情况下,模型目标是识别具有其对应位置的目标类型。该模型回答了两个问题:什么是对象(分类问题)?对象(回归问题)在哪里?为了实现这些目标,在特征提取模块的顶部计算分类和回归单元的两个损失,并且关于两个损失更新模型权重。这是第一次,基于区域的CNN(RCNN)被提议用于对象检测任务68。最近,已经提出了一些更好的检测方法,包括密集物体检测器的焦点丢失69,后来该网络的不同改进版本被称为更快的RCNN,快速RCNN 1970。掩模R-CNN 71,你只看一次(YOLO)72,SSD:单次多盒检测器73和UD-Net从病理图像中检测组织60

语音处理

CNN还应用于语音处理,例如使用多模式深度CNN 74的语音增强,以及使用卷积门控递归网络(CGRN)的音频标记75

CNN医学影像学

Litjens等76对医学图像处理的DL进行了很好的调查,包括分类,检测和分割任务。为医学图像分析开发了几种流行的DL方法。例如,MDNet是使用图像和相应的文本描述77开发的医学诊断,使用短轴MRI进行心脏分割78,使用CNN 79分割视盘和视网膜脉管系统,使用随机森林进行脑肿瘤分割用完全卷积神经网络(FCNN)学习的特征80。这些技术已应用于计算病理学领域,并实现了最先进的性能81826083

高级培训技巧

需要仔细考虑的高级培训技术或组件,以便有效地培训DL方法。有更多不同的先进技术可用于更好地训练深度学习模型。这些技术包括输入预处理,更好的初始化方法,批量标准化,替代卷积方法,高级激活函数,替代池化技术,网络正则化方法以及更好的训练优化方法。以下各节将分别讨论各种高级培训技巧。

准备数据集

目前,在将数据馈送到网络之前已经应用了不同的方法。准备数据集的不同操作如下:样本重新缩放,平均减法,随机裁剪,相对于地平线或垂直轴的翻转数据,颜色抖动,PCA / ZCA白化等等。

网络初始化

深度网络的初始化对整体识别准确性有很大影响[^59] ’ [^60]。以前,大多数网络都已使用随机权重进行初始化。对于具有高维度数据训练的复杂任务,DNN变得困难,因为权重不应该由于反向传播过程而对称。因此,有效的初始化技术对于训练这种类型的DNN很重要。但是,在过去几年中提出了许多有效的技术。 LeCun 84和Bengio 85提出了一种简单但有效的方法。在他们的方法中,权重通过层的输入神经元的数量的平方根的倒数来缩放,其可以被陈述为 1 / N l 1 / \sqrt{N_l} 1/Nl ,其中 N l N_l Nl是第l层的输入神经元的数量。基于关于线性假设的对称激活函数,已经提出了Xavier的深度网络初始化方法。这种方法称为Xavier初始化方法。最近,Dmytro M.等人35提出了层序单位不变性(LSUV),它是一种数据驱动的初始化方法,可以在包括ImageNet在内的几个基准数据集上提供良好的识别准确性。 He等人在2015年86提出了一种流行的初始化方法。第 l l l层权重的分布是正态分布,均值为零,方差为 2 n l \frac{2}{n_l} nl2,可表示如下:

w l ∼ N ( 0 , 2 n l ) w_l \sim \mathcal N(0,\frac{2}{n_l}) wlN(0,nl2)

批量标准化

批量标准化通过移动输入样本来减少内部协方差,从而有助于加速DL过程。这意味着输入被线性转换为零均值和单位方差。对于白化输入,网络收敛速度更快,并且在训练期间表现出更好的正规化,这对整体精度有影响。由于数据白化是在网络外部执行的,因此在模型训练期间不会产生白化的影响。在深度递归神经网络的情况下,第n层的输入是第n-1层的组合,其不是原始特征输入。随着训练的进行,归一化或白化的效果分别降低,这导致消失的梯度问题。这可能会减慢整个训练过程并导致饱和。为了更好地训练过程,然后将批量归一化应用于深度神经网络的内部层。这种方法确保了理论上和基准测试实验中更快的收敛。在批量归一化中,层的特征独立地归一化为均值零和方差为1 178788。批量归一化算法在算法1中给出。

在这里插入图片描述
参数 γ \gamma γ β \beta β用于归一化值的标度和偏移因子,因此归一化不仅取决于层值。 如果使用规范化技术,建议在实施过程中考虑以下标准:

  • 提高学习率
  • Dropout(批量规范化做同样的工作)
  • L 2 \mathbf L_2 L2权重正则化
  • 加速学习率下降
  • 删除本地响应规范化(LRN)(如果您使用它)
  • 更彻底地改组训练样本
  • 训练集中的图像无用失真

替代卷积方法

已经提出了将乘法成本降低2.5倍的替代和计算上有效的卷积技术89

激活功能

在过去的几十年中,传统的Sigmoid和Tanh激活函数已被用于实现神经网络方法。 图形和数学表示如图22所示。
在这里插入图片描述
Sigmoid
y = 1 1 + e x y=\frac{1}{1+e^x} y=1+ex1

Tanh
y = e x − e − x e − x + e x y=\frac{e^x-e^{-x}}{e^{-x}+e^x} y=ex+exexex

2010年提出的称为整流线性单元(ReLU)的流行激活函数解决了训练深度学习方法的消失梯度问题。 基本概念很简单,可以将所有值保持在零以上,并将所有负值设置为零,如图23所示[^64]。 ReLU激活最初用于AlexNet 3
在这里插入图片描述
在数学上我们可以表达ReLU如下:

y = max ⁡ ( 0 , x ) y = \max(0,x) y=max(0,x)

因为激活功能在学习深层架构的权重方面起着至关重要的作用。 许多研究人员关注这里,因为在这方面可以做很多事情。 同时,已经提出了几种改进的ReLU版本,与图24所示的ReLU激活功能相比,它提供了更高的精度.ReLU激活函数的有效改进版本被称为Kaiming He提出的参数ReLU(PReLU)。 等。 图25显示了Leaky ReLU和ELU激活功能的图示。 这种技术可以自动地自动学习参数,并以可忽略的额外计算成本提高精度86
在这里插入图片描述
Leaky ReLU
y = max ⁡ ( a x , x ) y = \max(ax,x) y=max(ax,x)

ELU
y = { x , x ≥ 0 a ( e x − 1 ) , x &lt; 0 y= \begin{cases} x&amp;, &amp;x \ge 0 \\ a(e^x-1) &amp;,&amp; x &lt; 0 \end{cases} y={xa(ex1),,x0x<0

最近提出的指数线性单元激活功能,它允许更快,更准确的DCNN结构版本90。 此外,调整激活函数的负部分会产生最近提出的具有多指数线性单位(MELU)的泄漏ReLU 91。 S形整流线性激活装置于2015年提出92。 2015年对现代激活功能进行了调查93

子采样层或池层

目前,已经使用两种不同的技术在子采样或池化层中实现深度网络:平均和最大池化。 平均汇集层的概念首次在LeNet 2中使用,而AlexNet使用Max-pooling层而不是2012年3。 最大池和平均池操作的概念图如图25所示.He等人提出了特殊金字塔池的概念。 2014年,如图26所示94

在这里插入图片描述
多尺度金字塔汇集于2015年提出95。 2015年,Benjamin G.提出了一种具有分数最大池的新架构,该架构为CIFAR-10和CIFAR-100数据集提供了最先进的分类精度。该结构通过考虑子采样层或池化层的两个重要属性来概括网络。首先,非重叠最大池层限制了网络深层结构的推广,本文提出了一个 3 × 3 3 \times 3 3×3重叠最大池,2步而不是 2 × 2 2\times 2 2×2作为子采样层的网络96 。另一篇论文对不同类型的汇集方法进行了研究,包括混合,门控和树作为汇集函数的推广97

DL的正规化方法

在过去几年中,针对深度CNN提出了不同的正则化方法。最简单但有效的方法称为Dropout是由Hinton在2012年提出的98。在Dropout中,随机选择的激活子集在一个层99内设置为零。Dropout概念如图27所示。

在这里插入图片描述
另一种正规化方法称为Drop Connect。在这种情况下,不是丢弃激活,而是将网络层内的权重子集设置为零。结果,每个层从紧接的前一层接收随机选择的单元子集100。还提出了一些其他正则化方法101

DL的优化方法

有不同的优化方法,如SGD,Adagrad,AdaDelta,RMSprop和Adam102。一些激活功能已得到改进,例如在SGD的情况下,其中提出了增加的可变动量,这改善了训练和测试精度。在Adagrad的案例中,主要贡献是在训练期间计算自适应学习率。对于该方法,考虑梯度大小的总和来计算自适应学习率。在具有大量历元的情况下,梯度的大小的总和变大。结果是学习率从根本上降低,这导致梯度快速接近零。这种方法的主要缺点是它在训练期间引起问题。后来,RMSprop被提议仅考虑前一次迭代的梯度的大小,这可以防止Adagrad的问题,并在某些情况下提供更好的性能。基于用于计算类似RMSprop的自适应学习速率的梯度的动量和幅度,提出了Adam优化方法。 Adam提高了整体准确性,并通过深度学习算法的更好融合帮助进行有效的训练103。最近提出了改进版的Adam优化方法,称为EVE。 EVE通过快速准确的收敛提供更好的性能104


  1. 54 ↩︎

  2. 55 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  3. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
  4. 66 ↩︎ ↩︎

  5. 67 ↩︎

  6. 68 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  7. 69 ↩︎ ↩︎ ↩︎ ↩︎

  8. ↩︎ ↩︎ ↩︎
  9. ↩︎ ↩︎ ↩︎ ↩︎
  10. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
  11. 72 ↩︎

  12. 73 ↩︎

  13. 74 ↩︎

  14. 75 ↩︎

  15. 76 ↩︎ ↩︎

  16. 77 ↩︎ ↩︎

  17. ↩︎ ↩︎
  18. 79 ↩︎ ↩︎

  19. 80 ↩︎ ↩︎

  20. 81 ↩︎

  21. 82 ↩︎

  22. 83 ↩︎ ↩︎

  23. 84 ↩︎

  24. 85 ↩︎

  25. 27 ↩︎ ↩︎

  26. 86 ↩︎

  27. 87 ↩︎

  28. 88 ↩︎

  29. 89 ↩︎

  30. 90 ↩︎

  31. 91 ↩︎

  32. 92 ↩︎

  33. 93 ↩︎

  34. 94 ↩︎

  35. 95 ↩︎ ↩︎

  36. 96 ↩︎

  37. 97 ↩︎

  38. 98 ↩︎

  39. 99 ↩︎

  40. 100 ↩︎

  41. 101 ↩︎

  42. 102 ↩︎

  43. 103 ↩︎

  44. 104 ↩︎

  45. 105 ↩︎

  46. 106 ↩︎

  47. 107 ↩︎

  48. 108 ↩︎

  49. 109 ↩︎

  50. 110 ↩︎

  51. 111 ↩︎

  52. 112 ↩︎

  53. 113 ↩︎

  54. 114 ↩︎

  55. 115 ↩︎

  56. 116 ↩︎

  57. 117 ↩︎

  58. 118 ↩︎

  59. 119 ↩︎

  60. 120 ↩︎ ↩︎ ↩︎

  61. 121 ↩︎

  62. 122 ↩︎

  63. 123 ↩︎

  64. 124 ↩︎

  65. 125 ↩︎

  66. 126 ↩︎

  67. 127 ↩︎

  68. 128 ↩︎

  69. 129 ↩︎

  70. 130 ↩︎

  71. 131 ↩︎

  72. 132 ↩︎

  73. 133 ↩︎

  74. 134 ↩︎

  75. 135 ↩︎

  76. 136 ↩︎

  77. 137 ↩︎

  78. 138 ↩︎

  79. 139 ↩︎

  80. 140 ↩︎

  81. 28 ↩︎

  82. 29 ↩︎

  83. 144 ↩︎

  84. 142 ↩︎

  85. 143 ↩︎

  86. 144 ↩︎ ↩︎

  87. 145 ↩︎

  88. 146 ↩︎

  89. 147 ↩︎

  90. 148 ↩︎

  91. 149 ↩︎

  92. 150 ↩︎

  93. 151 ↩︎

  94. 152 ↩︎

  95. 153 ↩︎

  96. 154 ↩︎

  97. 155 ↩︎

  98. 156 ↩︎

  99. 157 ↩︎

  100. 158 ↩︎

  101. 159 ↩︎

  102. 160 ↩︎

  103. 161 ↩︎

  104. 162 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值