学深度学习必须知道的五大卷积神经网络!发展历程、网络结构、模型特点统统涵盖!
本文介绍了深度学习中五种重要的卷积神经网络模型:1)LeNet-5(1998)作为CNN鼻祖,采用交替的卷积层和池化层结构;2)AlexNet(2012)引入ReLU激活、Dropout和多GPU训练;3)VGGNet(2014)以3×3小卷积核和16-19层深度著称;4)GoogLeNet(2014)创新性提出Inception模块;5)ResNet(2015)通过残差连接解决深度网络梯度问题。
卷积神经网络(Convolutional Neural Network,简称 CNN)已然成为图像识别、视频分析以及自然语言处理等诸多领域的核心技术手段。在当前的研究与应用场景中,CNN 的重要性愈发凸显。
今天为大家介绍五种在深度学习领域常见的CNN模型,分别是LeNet、AlexNet、VGGNet、GoogLeNet和ResNet。

在开始介绍之前,为了让大家可以更好的 学习深度学习神经网络,我为大家准备了一些相关资料,包括深度学习神经网络从基础到进阶的学习资料,还有神经网络各种变体论文、代码,可以让大家更好的找到论文创新点。

大家可以添加我的小助手让她及时无偿分享给你奥(微信扫码维码图片添加即可)
记得发送暗号【32】给小助手哦!
1. LeNet:卷积神经网络(CNN)的鼻祖
LeNet网络作为最早的卷积神经网络之一,由Yann LeCun等人于1998 年提出。该网络主要应用于手写数字识别任务,在深度学习与卷积神经网络发展历程中,占据着举足轻重的地位,堪称这一领域的重要里程碑 。
该模型的提出主要应用于手写数字的识别任务

其网络结构如下:

-
输入层:承担着接收原始图像数据的任务。该层作为整个网络处理流程的起始点,为后续的分析提供基础数据。
-
卷积层:此层运用多个卷积核(亦称为滤波器)对输入图像进行操作,旨在提取图像中的局部特征。LeNet网络通常配备两个卷积层,这些卷积层通过卷积核在图像上的滑动,不断挖掘图像中蕴含的丰富细节信息,为后续的特征处理奠定基础。
-
池化层:紧跟在卷积层之后,通过池化操作来实现对特征图空间维度的降低。在这一过程中,池化层能够在保留关键特征信息的前提下,减少数据量,从而提升网络的计算效率和对不同尺度变化的适应性。
-
全连接层:经过卷积层和池化层提取的特征,会被展平后传输至一个或多个全连接层。这些全连接层的主要职责是对之前提取的特征进行更高层次的整合,将不同局部的特征信息进行综合分析,挖掘特征之间的内在联系。
-
输出层:最后一个全连接层的输出会被输送至一个分类层,该分类层通常采用softmax层。softmax层的作用是将输入数据转换为各类别的概率分布,从而生成最终的分类结果,为整个图像识别任务提供明确的输出。
LeNet 的典型结构如下:卷积层1+池化层1+卷积层2+池化层2+全连接层1+全连接层2+输出层。

卷积层1:使用6个5x5的卷积核,步长为1,输出6个特征图。
池化层1:使用2x2的池化窗口,步长为2。
卷积层2:使用16个5x5的卷积核,步长为1,输出16个特征图。
池化层2:使用2x2的池化窗口,步长为2。
全连接层1:将特征图展平并连接到120个神经元。
全连接层2:将120个神经元的输出连接到84个神经元。
输出层:将84个神经元的输出连接到10个神经元,对应于数字0到9的分类。
LeNet的架构虽简单,却为后续卷积神经网络(CNN)的发展夯实了基础。
2. AlexNet:深度学习的开山之作
2012 年,由 Alex Krizhevsky 等人提出的 AlexNet 在 ImageNet 竞赛中斩获了具有突破性意义的成果,有力地推动了深度学习领域的发展进程。AlexNet 是一个架构包含 8 层的深度网络,采用了 ReLU 激活函数以及局部响应归一化(Local Response Normalization,简称为 LRN)技术,并开创性地引入了多 GPU 训练这一概念 。

AlexNet 架构具备以下特点:
-
深度结构:AlexNet 为拥有 8 层的深度网络,其中卷积层共计 5 层,全连接层有 2 层,池化层为 3 层。
-
ReLU 激活函数:在卷积层与全连接层之后,采用 ReLU(Rectified Linear Unit,修正线性单元)作为激活函数。此函数能够有效解决梯度消失问题,进而加快训练进程。
-
局部响应归一化:在池化层之后运用局部响应归一化(LRN)技术,该技术有助于提升模型的泛化能力。数据增强:借助随机裁剪、水平翻转等技术,对训练图像实施数据增强操作,以此降低过拟合现象的发生概率。
-
Dropout:在训练过程中应用 Dropout 技术,即随机舍弃部分神经元的输出,从而避免模型对训练数据出现过度拟合的情况。
-
多GPU训练:AlexNet 作为首个运用多个 GPU 进行训练的卷积神经网络(CNN)模型,极大地提高了训练效率 。
AlexNet的具体结构如下:卷积层1+池化层1+卷积层2+池化层2+卷积层3+卷积层4+卷积层5+池化层3+全连接层1+全连接层2+输出层。

卷积层1:96个滤波器,11x11大小,步长4,后跟ReLU激活函数。
池化层1:3x3大小,步长2。
局部响应归一化1
卷积层2:256个滤波器,5x5大小,步长1,后跟ReLU激活函数。
池化层2:3x3大小,步长2。
局部响应归一化2
卷积层3:384个滤波器,3x3大小,步长1,后跟ReLU激活函数。
卷积层4:384个滤波器,3x3大小,步长1,后跟ReLU激活函数。
卷积层5:256个滤波器,3x3大小,步长1,后跟ReLU激活函数。
池化层3:3x3大小。
全连接层1:4096个神经元,后跟ReLU激活函数和Dropout。
全连接层2:4096个神经元,后跟ReLU激活函数和Dropout。
输出层:1000个神经元,使用softmax激活函数进行分类。
3. VGGNet:深度与简洁的结合
由牛津大学视觉几何组于 2014 年提出的 VGGNet,凭借其深层架构以及 3×3 规格的小卷积核而声名远扬。VGGNet 通过实践表明,增加网络深度并运用小卷积核能够切实有效地提升模型性能。在 ImageNet 竞赛中,VGGNet 斩获了优异成绩,且因其设计简洁、性能卓越,而备受青睐 。

VGGNet 的主要特点如下:
-
深层结构:VGGNet 采用了更为深邃的网络架构。其最初版本拥有 16 层,即 VGG - 16;另有一个规模稍小的版本,层数为 13 层,记作 VGG - 13。网络深度是 VGGNet 得以学习更为复杂特征的关键要素。
-
小卷积核:有别于 AlexNet 所采用的大卷积核,VGGNet 运用了尺寸为 3×3 的小卷积核。通过堆叠多个这样的卷积层,VGGNet 能够捕获更为广泛的空间特征。
-
连续的卷积层:在每个卷积层之后,VGGNet 通常会连续设置更多的卷积层。这与 AlexNet 在卷积层和池化层之间交替设置的方式有所不同。
-
池化层:在连续的卷积层之后,VGGNet 会采用尺寸为 2×2 的池化层,步长设定为 2。这一操作旨在减小特征图的空间尺寸。
-
全连接层:经过卷积和池化层处理后,VGGNet 会使用若干个全连接层。最终的输出层采用 softmax 激活函数,以实现分类任务。
-
网络初始化:VGGNet 采用了一种特定的权重初始化方法。该方法有助于加速训练进程,同时提升模型的性能表现。
-
数据增强:与其他模型类似,VGGNet 也运用了数据增强技术,其中包括随机裁剪和水平翻转等操作,以此提高模型的泛化能力。

卷积层1(64个3x3卷积核)+ReLU激活函数+卷积层2(64个3x3卷积核)+ReLU激活函数+2x2池化层1
+卷积层3(128个3x3卷积核)+ReLU激活函数+卷积层4(128个3x3卷积核)+ReLU激活函数+2x2池化层2
+卷积层5(256个3x3卷积核)+ReLU激活函数+卷积层6(256个3x3卷积核)+ReLU激活函数+2x2池化层3
+卷积层7(512个3x3卷积核)+ReLU激活函数+卷积层8(512个3x3卷积核)+ReLU激活函数+2x2池化层4
+卷积层9(512个3x3卷积核)+ReLU激活函数+卷积层10(512个3x3卷积核)+ReLU激活函数+2x2池化层5
+全连接层1(4096个神经元)+全连接层2(4096个神经元)+输出层(1000个神经元)+ softmax激活函数(分类)。
4.GoogLeNet:Inception模块的创新
GoogLeNet,又被称作 Inception 网络,由 Google 研究人员于 2014 年提出。该网络引入了一种全新的网络设计理念——Inception 模块。此模块能够让网络依据实际情况,自动判定在不同尺度下应采用何种类型的卷积或池化操作,从而显著提升了模型的运行效率与性能表现 。
Inception 模块的核心思想,是在同一网络层中并行运用不同尺寸的卷积核,随后将所得结果在深度维度上进行合并。如此操作的优势在于,该模块能够自动捕获不同尺度的特征,而无需研究人员手动设计特定的网络结构来适配不同尺寸的特征 。

一个典型的Inception模块包含以下部分:
1x1卷积:用于跨通道降维或升维,有助于减少计算量和控制模型大小。
3x3卷积:首先通过1x1卷积降维,然后应用3x3卷积。
5x5卷积:首先通过1x1卷积降维,然后应用5x5卷积,通常5x5卷积之前会先应用一个3x3的最大池化来减小计算区域。
3x3最大池化:直接在输入上应用3x3的最大池化,然后通过1x1卷积进行升维。
GoogLeNet的整体架构如下:

-
输入层:接收原始图像数据。
-
卷积层:设置一个含有 64 个滤波器的卷积层,采用 7×7 尺寸的卷积核,步长设定为 2,其后紧跟 ReLU 激活函数。
-
池化层:运用 5×5 的最大池化操作,步长为 3。
-
Inception 模块:将多个 Inception 模块进行堆叠。每个模块均包含不同尺寸的卷积与池化操作。
-
辅助分类器:在网络的中间部分增设辅助分类器。这一举措能够助力网络更早地学习特征,同时提供额外的损失信号,对防止过拟合现象的发生具有积极作用。
-
全连接层:在经过多个 Inception 模块后,借助全连接层对特征进行整合。
-
输出层:构建一个拥有 1000 个神经元、采用 softmax 激活函数的输出层,以此实现分类功能。
GoogLeNet 的创新点在于其 Inception 模块的设计。这一设计理念极具开创性与影响力,在后续发展中,被广泛应用于其他网络架构,诸如 Inception - v2、Inception - v3 等。GoogLeNet 通过实践充分证明,通过并行开展不同尺寸的卷积操作,能够切实有效地提升网络的性能与运行效率。
此外,辅助分类器的引入亦是 GoogLeNet 的一项重要特性。这一设计有助于增强模型的泛化能力,提升训练过程的稳定性 。
5. ResNet:残差学习的革命
2015 年,微软研究院提出残差网络(Residual Networks,简称 ResNet)。该网络通过引入残差学习框架,成功攻克了深层网络训练过程中面临的梯度消失难题。在 2015 年的 ImageNet 与 COCO 竞赛里,ResNet 凭借卓越表现斩获优异成绩。鉴于其在解决深层网络训练难题方面展现出的强大能力,ResNet 受到了广泛关注 。

残差学习:
ResNet的核心创新是残差学习框架,它通过引入跳跃连接(skip connections)或快捷连接(shortcut connections)来解决随着网络深度增加时训练难度增大的问题。这些连接允许网络中的信号绕过一层或多层直接传递,从而帮助梯度在网络中更有效地传播。
残差块:
ResNet的基本单元是残差块(residual block),它包含两个卷积层,以及一个跳跃连接,该连接将块的输入直接添加到块的输出。如果输入和输出的维度不匹配,会在跳跃连接上使用1x1卷积来进行维度调整。

一个典型的残差块结构呈现如下:
首先,输入数据进入卷积层 1。在该卷积层中,通常会执行批量归一化操作,并应用 ReLU 激活函数。
随后,数据流入卷积层 2。此卷积层同样配备批量归一化操作与 ReLU 激活函数,不过在进入卷积层 2 之前,并不会应用 ReLU 激活函数。
之后,若有需求,输入数据会通过 1×1 卷积进行维度调整。经过维度调整后的输入数据,将与卷积层 2 的输出结果进行相加运算。最后,相加后的结果会通过 ReLU 激活函数进行处理。
ResNet的不同版本

ResNet-18:含有18层的残差网络。
ResNet-34:含有34层的残差网络。
ResNet-50:含有50层的残差网络,是最常见的ResNet版本之一。
ResNet-101:含有101层的残差网络。
ResNet-152:含有152层的残度网络。
ResNet的架构特点
-
批量归一化:ResNet在每个卷积层之后使用批量归一化,有助于加速训练过程并提高模型的稳定性。
-
ReLU激活函数:在卷积层之后使用ReLU作为激活函数。残差块:通过残差块结构,ResNet可以有效地训练非常深的网络。
-
全局平均池化:在残差块之后,ResNet使用全局平均池化来减少全连接层的参数数量。
-
全连接层和输出层:在全局平均池化之后,使用全连接层进行特征整合,最终输出层使用softmax激活函数进行分类。
ResNet 的成功之处,在于其提供了一种行之有效的深层网络训练方法。凭借这一方法,网络能够在不断增加深度的情况下,有效避免遭遇梯度消失或梯度爆炸等问题。
此外,ResNet 的架构设计为后续众多其他网络架构的发展提供了重要启发。诸如 DenseNet、ResNeXt 等网络架构,均在一定程度上借鉴了 ResNet 的设计理念与思路 。
更多推荐
所有评论(0)