基本 CNN 架构:解释 5 层卷积神经网络 [美国]

已发表: 2023-04-16

CNN(卷积神经网络)是一种深度学习神经网络,它使用卷积层和子采样层的组合从大型数据集中学习特征。 它通常用于图像识别和分类任务。 卷积层对输入数据应用过滤器,子采样层减少输入数据的大小。 卷积神经网络架构旨在从数据中学习可用于分类或检测输入对象的特征。 下面是解释的 5 个 CNN 层

报名参加世界顶尖大学的机器学习课程获得硕士、行政 PGP 或高级证书课程,以快速推进您的职业生涯。

目录

5 层卷积神经网络

1. 卷积层:

该层对输入数据执行卷积运算,从数据中提取各种特征。

CNN 模型架构中的卷积层CNN 层最重要的组件之一 这些层负责从输入数据中提取特征并形成进一步处理和学习的基础。

卷积层由一组以滑动窗口方式应用于输入数据的过滤器(也称为内核)组成。 每个过滤器根据与其关联的权重从输入数据中提取一组特定的特征。

卷积层中使用的滤波器数量是架构中的关键超参数之一。 它是根据正在处理的数据类型以及模型所需的精度来确定的。 通常,更多的过滤器会导致从输入数据中提取更多的特征,从而允许更复杂的网络架构更好地理解数据。

卷积运算包括将每个过滤器与滑动窗口内的数据相乘并对结果求和。 对所有过滤器重复此操作,从而为单个卷积层生成多个特征图。 然后将这些特征映射用作后续层的输入,使网络能够从数据中学习更复杂的特征。

卷积层是深度学习架构的基础,用于各种应用,例如图像识别、自然语言处理和语音识别。 通过从输入数据中提取最关键的特征,卷积层使网络能够学习更复杂的模式并做出更好的预测。

2.池化层:

该层对特征图进行下采样操作,减少了所需的计算量,也有助于减少过拟合。

池化层是CNN 架构的重要组成部分 它通常用于减少输入量大小,同时从数据中提取有意义的信息。 池化层通常用在 CNN 的后期阶段,使网络能够专注于图像或其他类型输入的更抽象的特征。 池化层通过在输入量上滑动窗口并计算窗口内值的汇总统计信息来运行。

常见的统计信息包括获取窗口内值的最大值、平均值或总和。 这减少了输入量的大小,同时保留了有关数据的重要信息。

池化层通常还用于引入空间不变性,这意味着无论输入在图像中的位置如何,网络都会产生相同的输出。 这允许网络继承关于图像的更多一般特征,而不是简单地记住它的确切位置。

3.激活层:

该层通过应用 ReLU 或 tanh 等非线性激活函数为模型添加非线性。

CNN 中的激活层是用作对卷积层输出进行非线性变换的层。 它是网络的主要组成部分,允许它学习输入和输出数据之间的复杂关系。

激活层可以被认为是一个函数,它获取卷积层的输出并将其映射到一组不同的值。 这使网络能够学习数据中更复杂的模式并更好地概括。

CNN 中常用的激活函数包括 ReLu(整流线性单元)、sigmoid 和 tanh。 每个激活函数都有不同的用途,可用于不同的场景。

ReLu 是大多数卷积网络中最常用的激活函数。 它是一种非线性变换,对所有负值输出 0,对所有正值输出与输入相同的值。 这允许网络吸收数据中更复杂的模式。

Sigmoid 是另一种常用的激活函数,它对任何给定的输入输出介于 0 和 1 之间的值。 这有助于网络理解输入和输出数据之间的复杂关系,但计算成本高于 ReLu。

Tanh 是最不常用的激活函数,对于任何给定的输入,它的输出值都在 -1 和 1 之间。

激活层是 CNN 的重要组成部分,因为它可以防止线性并增强输出中的非线性。 为网络选择正确的激活函数至关重要,因为每个激活函数都有不同的用途,可用于不同的场景。 选择合适的激活函数可以使CNN 结构具有更好的性能

4.全连接层:

该层将一层中的每个神经元连接到下一层中的每个神经元,从而形成一个完全连接的网络。

CNN 中的全连接层是连接到网络中前一层中每个神经元的神经元层。 这与卷积层形成对比,在卷积层中,神经元仅根据特定模式连接到前一层中的神经元子集。

通过将一层中的每个神经元连接到下一层中的每个神经元,全连接层允许来自上一层的信息在整个网络中共享,从而为更全面地理解数据提供了机会。

CNN 中的全连接层通常用于CNN 模型架构的末尾,在卷积层和池化层之后,因为它们有助于识别卷积层可能无法识别的模式和相关性。

此外,全连接层用于生成可用于分类的非线性决策边界。 总之,全连接层是任何 CNN 不可或缺的一部分,并为识别数据中的模式和相关性提供了强大的工具。

5.输出层:

这是网络的最后一层,它产生输出标签或值。

CNN 的输出层是网络中的最后一层,负责产生输出。 该层采用从先前层中提取的特征并以允许它产生所需输出的方式组合它们。

当输出是单个值时,例如分类或回归问题,通常使用全连接层。 当结果是向量(例如概率分布)时,通常使用单个神经元层。

当输出是概率分布时(例如类别概率分布),将使用 softmax 激活函数。 CNN 的输出层还负责执行必要的计算以获得所需的输出。 这包括完成输入的必要线性或非线性转换以接收所需的输出。

最后,CNN 的输出层也可用于执行正则化技术,例如 dropout 或 batch normalization,以提高网络的性能。

结论

CNN架构是图像和视频处理任务的强大工具。 它是卷积层、池化层和全连接层的组合。 它允许从图像、视频和其他数据源中提取特征,可用于各种任务,例如对象识别、图像分类和面部识别。 总的来说,这种类型的架构在应用于合适的功能和数据集时非常有效。

通过 upGrad 获得精通 ML 和 DL 的技能

通过IIIT-B 提供的upGrad机器学习和深度学习高级证书课程,您可以熟练掌握机器学习和深度学习。 该计划涵盖 ML 和 DL 的基础知识,包括监督和无监督学习、线性和逻辑回归、卷积神经网络、强化学习和自然语言处理等主题。 您还将学习在 Python 和 TensorFlow 中构建和部署 ML 和 DL 模型,并通过处理真实世界的项目获得实践经验。

本课程还包括以下好处:

  • 来自行业专家的指导和指导
  • 安置援助,以帮助您找到合适的工作
  • IIT Bangalore 的高级证书

您还可以查看upGrad 在管理、数据科学、机器学习、数字营销和技术方面提供的免费课程 所有这些课程都有一流的学习资源、每周现场讲座、行业作业和课程结业证书——全部免费!

可用于 CNN 的 Python 库有哪些?

可用于 CNN 的 Python 库包括 TensorFlow、Keras、PyTorch、Caffe、Theano、Scikit-learn、MxNet、CNTK、OpenCV 和 SciPy。 这些库可用于获取预构建模块以创建应用程序并轻松实现 CNN 算法。

CNN 层有多少个维度?

卷积神经网络包含按 3 个维度排列的神经元:宽度、高度和深度。 这种神经元的三维结构存在于卷积层中,卷积层通过给定输入的计算过程工作以提供结果输出。

我可以在 R 中开发 CNN 吗?

是的,可以使用 Python 和 R 开发 CNN。R 提供了非常详细的库,使用 R 创建卷积神经网络非常容易。