文章目录

  • 基础部分:CNN
  • AlexNet
  • VGG
  • NIN
  • GoogleNet
  • ResNet
  • DenseNet


最近人工智能课上学习了这六种改进型的卷积神经网络,但是发现网上很多一部分的教程都花费大量时间来介绍这些网络的详细结构和参数等部分,这就对我这样数学和推理比较差的新手不太友好,因此我便用尽量通俗易懂的方式定性地总结了这四种网络的特点,对于初学者应该是足够用了。

基础部分:CNN

基本CNN模型图像分类:CNN模型接收一张图片作为输入,在输出中给出了该图片属于各个类别的概率,其中各个类别的概率之和为1。最后,CNN模型选择概率最大的类别作为图像分类的结果。

CNN模型的四大组成部分

  • 卷积层、非线性激活函数(例如ReLU)、池化层(下采样)、全连接层(用于最终的分类)。
  • 卷积层和池化层交替构成了CNN的特征提取器,而全连接层构成了CNN的分类器。
  • 只有卷积层会带有非线性激活函数,池化层不带有激活函数。

下采样:在深度学习中,下采样(Downsampling)是一种常用的操作,它可以将输入数据的分辨率降低,并且减小数据的大小。下采样通常用于卷积神经网络(Convolutional Neural Network,CNN)中,以减少网络的复杂性和计算量,从而提高模型的训练速度和准确率。在卷积神经网络中,下采样通常是通过池化(Pooling)层来实现的。

卷积神经网络和传统神经网络的数据区别:卷积神经网络输入输出的数据往往是一个张量;而传统神经网络中的输入输出数据往往是一个向量。

卷积神经网络发展过程中的重要历史节点

  • 1989年:Yann LeCun等人提出了第一个卷积神经网络模型LeNet-5,用于手写数字识别。该模型采用了卷积层、池化层和全连接层,成为了卷积神经网络的重要里程碑。
  • 2012年:AlexNet模型的出现使得卷积神经网络在计算机视觉领域获得了重大突破。AlexNet模型采用了深度卷积神经网络结构,包括5个卷积层和3个全连接层,同时使用了ReLU激活函数、Dropout正则化等技术,达到了当时的最好效果,赢得了ImageNet图像分类比赛的冠军。
  • 2014年:VGGNet模型提出,采用了更加深层的卷积神经网络结构,包含16或19个卷积层,通过加深网络结构来增强特征提取的能力,进一步提升了图像分类的准确率。
  • 2015年:GoogLeNet(Inception)模型提出,通过引入Inception结构来提高网络的效率和准确率。Inception结构使用了并行的卷积层和池化层,并使用1x1的卷积核来减少参数数量,从而实现更高效的特征提取

AlexNet

AlexNet的提出:AlexNet是一种深度卷积神经网络,由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton(Alex的老师)于2012年提出。该卷积神经网络在2012年的ImageNet比赛中获得冠军。

AlexNet的历史地位:AlexNet是第一个成功应用于大规模图像分类任务的深度学习模型,其对于深度学习发展历史具有重要的意义。该网络结构在ImageNet图像识别竞赛中的表现得到了广泛的认可,其精度相较于之前的图像识别模型,得到了极大的提升,同时也为深度学习技术的应用带来了新的突破和发展。

AlexNet的基本结构

  • 输入图像大小:输入图像的大小固定,为3×224×224。
  • 网络层的类型:5个卷积层和3个全连接层,最后一个全连接层的输出作为softmax函数的输入,产生1000个类别标签各自的概率。前两层卷积层后都接有局部响应归一化层。
  • 卷积核大小:卷积核大小依次递减,分别为11×11,5×5,3×3。

Softmax函数:该函数用于多分类问题中。它将多个神经元的输出映射到0到1区间内,看成概率来理解,并且所有概率之和为1。最终,选择概率最大的类别作为分类结果。

AlexNet的技术特点

  • 采用ReLU激活函数:AlexNet中使用ReLU函数代替传统的激活函数Sigmoid,解决了Sigmoid函数在网络层数较深时出现的梯度消失问题,并提高了网络的训练速度。虽然ReLU激活函数很早就被提出了,但是直到AlexNet才将其发扬光大。
  • 采用多GPU分组卷积:利用了GPU强大的计算能力加速网络的训练过程,使得网络在多块GPU上并行训练,解决了显存对网络规格的限制。
  • 进行随机裁剪数据增强:由于ImageNet是256×256的大小,因此AlexNet在进行处理前首先从原始图片中裁剪出224×224大小的图片进行训练。
  • 层叠池化:相比于LeNet中池化是不重叠的,AlexNet中的池化操作是可重叠的,也就是池化过程中,每次移动的步长小于池化的窗口长度。同时,相较于传统的偏爱平均池化的CNN网络,AlexNet都使用的是最大池化方法。
  • 使用ReLU激活函数:在神经网络中,ReLU激活函数可以更好地处理梯度消失和模型训练速度问题。
  • 局部响应归一化层(LRN):在局部范围内对激活值进行归一化,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,从而提高模型的泛化能力和抗扰性。
  • Dropout层:可以有效地避免过拟合现象的发生,提高了模型的泛化性能。

备注:AlexNet中并非没有池化层,而是每一个卷积层后都连接有一个池化层,但是在计算卷积神经网络的总层数时一般不考虑池化层,这是因为池化层一般不增加网络的深度,只是作为一种下采样的方法来减小特征图的尺寸

VGG

VGG的提出:VGG是由Simonyan和Zisserman于2014年提出的一种深度卷积神经网络模型,其命名来源于其作者所在的牛津大学视觉几何组(Visual Geometry Group)。该神经网络在2014年的ImageNet比赛中获得了第二名的成绩。

VGG的历史地位:VGG模型在多项视觉任务中均取得了优秀的表现,成为了深度学习领域的里程碑之一。

VGG的技术特点

  • 卷积和池化的大小固定:网络中全部采用3×3的小尺寸卷积核以及2×2的最大池化方法。
  • 采用卷积层堆叠策略:采用多个具有小卷积核的卷积层进行串联。一方面减少了网络参数,另一方面提升了感受野范围,增强了网络的学习能力和特征表达能力。网络中包含5组卷积操作,每一个卷积操作使用1-4层卷积层;每一组的卷积层具有相同的结构。由于网络的参数主要集中于全连接层,因此不同级别的VGG网络的参数数量相差不大。
  • 使用ReLU激活函数:在每一个卷积层后都使用ReLU非线性激活函数。

VGG训练和测试过程的特点

  • 训练过程:首先将输入的图像缩放到不同尺寸,之后随机从图像中裁剪出224×224大小的训练样本。
  • 测试过程:将图像缩放到指定尺寸,并对网络最后的卷积层使用滑动窗口取平均值的方式进行预测。

VGG的优点和缺点:VGG模型的优点在于其简单直观的设计,网络结构清晰易懂,同时在图像分类等任务中表现出了非常好的性能。缺点则是模型相对较大,训练和推理的时间和计算资源成本都比较高。

NIN

NIN的提出:NIN(Network In Network)是一种卷积神经网络的改进模型,由Min Lin等人在2013年提出。

NIN的历史地位:NIN在很多图像分类任务上都表现得非常出色,甚至比一些更深层次的卷积神经网络模型表现还要好。NIN的成功也启发了后来很多卷积神经网络模型的设计,例如ResNet和DenseNet等。

NIN的技术特点

  • 采用多层感知机卷积:NIN中的卷积与传统的卷积相比,在卷积之后加入了两个全连接层。这样的思路使得该模型在网络中构建微型网络,提高了单个卷积的有效性。
  • 采用全局均值池化:NIN中移除了传统神经网络中占据大部分网络参数的全连接层,将每一幅特征图像池化为单个输出,用于表示该类的特征输出。并且实现了减少模型参数和防止过拟合。也就是说,全局均值池化层的输出直接作为分类结果。

NIN的优点:NIN的优点在于使用1×1卷积来增加网络的非线性表达能力,同时可以减少模型参数的数量。这种方法可以有效地提高网络的性能,并且可以使用更少的参数来达到更好的分类效果。另外,NIN的结构比较简单,易于实现和训练。

GoogleNet

GoogleNet的提出:GoogleNet是由Google公司的研究人员在2014年提出的一种深度卷积神经网络模型,其全名为Inception V1。

GoogleNet的历史地位:GoogleNet在2014年的ImageNet比赛中取得了第一名,并且启发了后来许多深度卷积神经网络模型的设计。

GoogleNet的基本结构:GoogleNet的设计最大的特点是使用了一种称为Inception module的网络结构,该结构可以同时使用不同大小的卷积核和池化层来提取特征,并将不同尺寸的特征图连接起来进行特征提取。相比于之前的卷积神经网络模型,GoogleNet的设计更加灵活,可以更好地处理不同尺寸和不同方向的特征,从而在ImageNet等数据集上取得了优异的表现。

GoogleNet的主要特点

  • 使用Inception module进行特征提取:Inception module是GoogleNet中使用的一种特殊的卷积层结构,相当于一个子网络,可以同时使用不同大小的卷积核和池化层来提取特征,并将不同尺寸的特征图连接起来进行特征提取。这种结构可以提高网络的非线性表达能力,同时减少模型的参数量。
  • 使用平均池化层:在最后的分类层之前,GoogleNet使用了一个全局平均池化层来替代全连接层,这可以使得模型更加简单,并且可以减少过拟合的风险。
  • 使用辅助分类器:在网络中加入了两个辅助分类器,用于增强梯度信号的传递和网络的鲁棒性。
  • 使用ReLU激活函数:GoogleNet也采用了ReLU激活函数来更好地处理梯度消失和模型训练速度问题。

GoogleNet的优点和缺点

  • 优点:GoogleNet的优点在于其使用了Inception module来提高网络的非线性表达能力,同时使用平均池化层和辅助分类器来增强模型的鲁棒性和泛化能力。
  • 缺点:缺点则是模型较大,训练和推理的时间和计算资源成本都比较高。

ResNet

ResNet的提出:ResNet(Residual Network)是由何凯明等人在2015年提出的一种深度卷积神经网络模型,其主要目的是解决在深度卷积神经网络中出现的梯度消失和网络退化的问题。

ResNet的基本思想:在传统的深度卷积神经网络中,随着网络层数的增加,往往会出现梯度消失和网络退化的问题,即在反向传播过程中,梯度信息难以传递到浅层网络中,从而导致浅层网络的参数无法得到更新。ResNet通过使用残差块(Residual Block)来解决这个问题,这些残差块允许网络直接学习到残差信息,从而使得网络的深度可以进一步加深。

ResNet的基本结构:ResNet使用残差块来替代传统的卷积层,每个残差块由两个卷积层和一个跳跃连接(Shortcut Connection)组成。跳跃连接允许网络直接从前面的层中跳过一些卷积层,直接将输入传递到后面的层中,从而使得梯度信息能够更好地传递到浅层网络中。

ResNet的历史地位:ResNet在多个计算机视觉领域的任务中都表现出了很好的性能,例如图像分类、目标检测和图像分割等。其在2015年的ImageNet图像分类比赛中获得了冠军,成为了当时最先进的卷积神经网络模型之一,为深度学习研究和应用开拓了新的方向。

DenseNet

DenseNet的提出:DenseNet(Dense Convolutional Network)是2017年由黄俊等人提出的一种深度卷积神经网络模型。

DenseNet的基本结构:DenseNet采用了一种密集连接(Dense Connection)的方式来组合不同的卷积层。在DenseNet中,每个卷积层都会接收之前所有层的输出作为输入,从而使得网络的信息流动更加充分,提高了网络的特征提取能力。

DenseNet的历史地位:DenseNet已经被应用于多个计算机视觉领域的任务中,例如图像分类、目标检测和图像分割等,取得了很好的效果,并在多个领域的比赛中获得了冠军。