基本 CNN 架构:解释 5 层卷积神经网络
已发表: 2020-12-07目录
介绍
在 IT 行业的最后几年中,对曾经被称为深度学习的特定技能组合的需求巨大。 深度学习是机器学习的一个子集,由受人脑或神经网络功能启发的算法组成。
这些结构称为神经网络。 它教计算机做人类自然会做的事情。 深度学习,有几种类型的模型,例如人工神经网络 (ANN)、自动编码器、循环神经网络 (RNN) 和强化学习。 但是有一种特殊的模型在计算机视觉和图像分析领域做出了很大贡献,那就是卷积神经网络 (CNN) 或 ConvNets。
CNN 是一类深度神经网络,可以识别和分类图像中的特定特征,广泛用于分析视觉图像。 它们的应用范围包括图像和视频识别、图像分类、医学图像分析、计算机视觉和自然语言处理。
CNN 中的术语“卷积”表示卷积的数学函数,它是一种特殊的线性运算,其中两个函数相乘以产生第三个函数,该函数表示一个函数的形状如何被另一个修改。 简单来说,可以将两个可以表示为矩阵的图像相乘以给出用于从图像中提取特征的输出。
从世界顶级大学在线学习机器学习——硕士、高级管理人员研究生课程和 ML 和 AI 高级证书课程,以加快您的职业生涯。
学习:深度学习和神经网络简介

基本架构
CNN 架构有两个主要部分
- 一种卷积工具,用于分离和识别图像的各种特征,以便在称为特征提取的过程中进行分析
- 一个完全连接的层,它利用卷积过程的输出,并根据前一阶段提取的特征预测图像的类别。
资源
卷积层
构成 CNN 的层由三种类型的层组成,它们是卷积层、池化层和全连接 (FC) 层。 当这些层堆叠起来时,就会形成一个 CNN 架构。 除了这三层之外,还有两个更重要的参数,即 dropout 层和下面定义的激活函数。
1.卷积层
该层是用于从输入图像中提取各种特征的第一层。 在这一层中,在输入图像和特定大小 MxM 的滤波器之间执行卷积的数学运算。 通过在输入图像上滑动过滤器,就过滤器的大小 (MxM) 在过滤器和输入图像的各个部分之间进行点积。
输出称为特征图,它为我们提供有关图像的信息,例如角和边缘。 稍后,这个特征图被馈送到其他层以学习输入图像的其他几个特征。
2. 池化层
在大多数情况下,卷积层之后是池化层。 该层的主要目的是减小卷积特征图的大小以降低计算成本。 这是通过减少层之间的连接并在每个特征图上独立操作来执行的。 根据使用的方法,有几种类型的池化操作。
在 Max Pooling 中,最大的元素取自特征图。 平均池计算预定义大小的图像部分中元素的平均值。 预定义部分中元素的总和在 Sum Pooling 中计算。 池化层通常充当卷积层和 FC 层之间的桥梁
必读:神经网络项目理念
3. 全连接层
全连接(FC)层由权重和偏差以及神经元组成,用于连接两个不同层之间的神经元。 这些层通常放置在输出层之前,形成 CNN 架构的最后几层。
在此,来自先前层的输入图像被展平并馈送到 FC 层。 然后,扁平化的向量会经历更多的 FC 层,通常会在这些层中进行数学函数运算。 在这个阶段,分类过程开始发生。
4.辍学
通常,当所有特征都连接到 FC 层时,可能会导致训练数据集过拟合。 当特定模型在训练数据上运行良好时,就会发生过度拟合,从而在用于新数据时对模型的性能产生负面影响。
为了克服这个问题,使用了一个 dropout 层,其中在训练过程中从神经网络中删除了一些神经元,从而减小了模型的大小。 在通过 0.3 的 dropout 时,30% 的节点会从神经网络中随机删除。
5. 激活函数
最后,CNN 模型最重要的参数之一是激活函数。 它们用于学习和逼近网络变量之间的任何类型的连续和复杂关系。 简而言之,它决定模型的哪些信息应该在前向触发,哪些不应该在网络末端。
它增加了网络的非线性。 有几种常用的激活函数,例如 ReLU、Softmax、tanH 和 Sigmoid 函数。 这些功能中的每一个都有特定的用途。 对于二元分类 CNN 模型,sigmoid 和 softmax 函数是首选,对于多类分类,通常使用 softmax。

LeNet-5 CNN 架构
1998 年,Yann LeCun、Leon Bottou、Yoshua Bengio 和 Patrick Haffner 在题为“Gradient-Based Learning Applied to Document Recognition”的研究论文中介绍了 LeNet-5 架构。 它是最早、最基本的 CNN 架构之一。
它由7层组成。 第一层由尺寸为 32×32 的输入图像组成。 它与 6 个大小为 5×5 的过滤器进行卷积,得到 28x28x6 的尺寸。 第二层是池化操作,过滤大小为 2×2,步幅为 2。因此,生成的图像尺寸将为 14x14x6。
类似地,第三层还涉及卷积操作,包含 16 个大小为 5×5 的过滤器,然后是第四个池化层,过滤器大小相似,为 2×2,步幅为 2。因此,生成的图像尺寸将减少到 5x5x16。
一旦图像尺寸减小,第五层是一个全连接卷积层,具有 120 个过滤器,每个过滤器大小为 5×5。 在这一层中,这一层中的 120 个单元中的每一个都将连接到前一层的 400 个(5x5x16)单元。 第六层也是一个全连接层,有 84 个单元。
最后的第七层将是一个 softmax 输出层,具有“n”个可能的类,具体取决于数据集中的类数。
资源
上图是 LeNet-5 CNN 架构的 7 层的表示。
下面是使用 keras 库和 TensorFlow 框架构建 LeNet-5 CNN 架构的 Python 代码快照

在 Python 编程中,最常用的模型类型是 Sequential 类型。 这是在 keras 中构建 CNN 模型的最简单方法。 它允许我们逐层构建模型。 'add()' 函数用于向模型添加层。 如上所述,对于 LeNet-5 架构,有两个 Convolution 和 Pooling 对,后跟一个 Flatten 层,该层通常用作 Convolution 和 Dense 层之间的连接。
密集层是主要用于输出层的层。 使用的激活是“Softmax”,它为每个类提供一个概率,它们总和为 1。该模型将基于概率最高的类进行预测。
该模型的摘要显示如下。
结论
因此,在本文中,我们了解了 CNN 的基本结构、架构和构成 CNN 模型的各个层。 此外,我们还看到了一个非常著名的传统 LeNet-5 模型及其 Python 程序的架构示例。
如果您有兴趣了解有关机器学习课程的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和 AI 执行 PG 计划,该计划专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业, IIIT-B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
CNN 中的激活函数是什么?
激活函数是 CNN 模型中最重要的组成部分之一。 它们用于学习和逼近任何形式的网络变量与变量之间的关联,这种关联既连续又复杂。 简单来说,它决定了哪些模型信息应该向前流动,哪些不应该在网络端流动。 它赋予网络非线性。 ReLU、Softmax、tanH 和 Sigmoid 函数是一些最常用的激活函数。 所有这些功能都有不同的用途。 对于 2 类 CNN 模型,sigmoid 和 softmax 函数更受青睐,而 softmax 通常用于多类分类。
卷积神经网络架构的基本组成部分是什么?
一个输入层、一个输出层和多个隐藏层组成了卷积网络。 与标准神经网络中的神经元(宽度、高度和深度)不同,卷积网络层中的神经元以三个维度排列。 这使 CNN 能够将 3D 输入体积转换为输出体积。 卷积、池化、归一化和全连接层构成了隐藏层。 CNN 中使用多个卷积层将输入量过滤到更高的抽象级别。
标准 CNN 架构有什么好处?
虽然传统的网络架构仅由堆叠的卷积层组成,但较新的架构研究了构建卷积层的新方法,以提高学习效率。 这些架构为机器学习从业者提供了通用的架构建议,以适应各种计算机视觉问题。 这些架构可用作图像分类、对象识别、图片分割和各种其他高级任务的丰富特征提取器。