不同类型的 CNN 架构

2024年11月18日 | 阅读4分钟

引言

在深度神经网络中,卷积神经网络 (CNN) 特别擅长处理类似于网格的输入,例如照片。它们改变了自然语言处理、语音识别、计算机视觉和其他学科。卷积层是 CNN 的基本组成部分,它应用滤波器来提供数据,并使网络能够自行学习不同大小的边缘、纹理和序列等特征。由于 CNN 具有分层特征学习能力,因此可以很好地表示数据中的复杂结构。

卷积层和池化层逐渐减小输入的空间维度,同时增加其深度,是 CNN 架构的主要组成部分。激活函数(如 ReLU(修正线性单元))经常与这些层交织在一起以创建非线性,从而提高模型理解数据中复杂相关性的能力。

此外,dropout 正则化和批量归一化是 CNN 经常用来减少过拟合和增强泛化性能的两种方法。完全连接层和用于分类等任务的回归层或 softmax 激活函数通常构成 CNN 的最终层。

CNN 架构的重要组成部分

  • 输入层

    初始输入信息被发送到该层,通常是照片或其他类似于网格的数据结构。

  • 卷积层
    这些层使用可学习的滤波器(内核)来对输入数据应用卷积运算。每个滤波器提取输入的不同特征,包括边缘、纹理或模式。
  • 激活函数
    在卷积过程之后,使用激活函数(例如 ReLU(修正线性单元))逐个元素地引入非线性,这使网络能够发现输入中复杂的相互关系。
  • 池化层
    池化层用于控制过拟合并最大限度地减少计算复杂度,方法是减小卷积层生成的特征图的地理范围。最大池化和正常池化是两种常见的池化方法。
  • 完全连接的层
    这些层也称为稠密层,将前一层中的每个神经元连接到后一层中的每个神经元。它们有助于将获得的特征映射到预期的输出空间,包括分类任务中的类别标签,并且通常位于网络的末尾。
  • 展平
    在将特征图发送到完全连接的层作为卷积/池化层的输出之前,通常将它们展平成一维向量。
  • 输出层
    网络的输出(例如,分类任务中类别的可能性)由网络的最后一层生成。根据手头的任务,该层使用不同的激活函数(例如,用于回归的线性函数和用于分类的 softmax 函数)。

几种 CNN 架构类型

  • LeNet-5
    LeNet-5 是 Yann LeCun 在 1990 年代创建的第一个 CNN 设计之一。主要用于涉及手写数字识别的任务。由卷积层后的完全连接层和平均池化层组成。使用基于梯度的优化技术,例如 SGD(随机梯度下降)和 tanh 激活函数。
  • AlexNet
    由 Geoffrey Hinton、Ilya Sutskever 和 Alex Krizhevsky 于 2012 年提出。比 LeNet-5 更深入,并且具有比以前更多的池化和卷积层。使用数据增强方法、dropout 正则化和 ReLU 激活函数。成功完成了 2012 年 ImageNet 大规模视觉识别竞赛 (ILSVRC),展示了深度 CNN 的能力。
  • 视觉几何组 (VGG) 网络
    由牛津大学视觉几何组于 2014 年创建。其特点是设计简单,具有更深层的堆栈和微小的 (3x3) 卷积滤波器。由许多具有不同层数(例如,VGG16、VGG19)的变体组成。在 ImageNet 数据库上显示出出色的结果,并且设置起来相当简单。
  • GoogleNet (启动时)
    2014 年由 Google 的 Szegedy 等人推出。具有创造性的架构,通过 inception 模块实现相同层内可能存在许多滤波器尺寸。有效利用计算机资源,使用较少的参数来实现很高的精度。使用辅助分类器来解决梯度消失问题。
  • 残差网络或 ResNet
    由 Kaiming He 等人于 2015 年提出。使用剩余连接来解决深度网络中梯度消失的问题。使用快捷方式连接绕过一个或多个层,这有助于梯度流过训练过程。允许训练具有 100 多层的极其复杂的网络,而不会看到效率下降。
  • DenseNet
    由 Gao Huang 等人于 2016 年提出。通过在每一层与其他所有层之间创建前馈连接,扩展了剩余连接的概念。增加了网络传播特征的能力,并鼓励重复使用它们。与传统设计相比,需要更多设置才能获得最先进的性能。