CNN 计算2025 年 1 月 7 日 | 阅读 9 分钟 引言CNN 是当今深度学习技术或神经网络的支柱,尤其是在需要图像输入数据(如图像识别、分类和分割)的情况下。它们以卷积层和应用于输入的卷积运算为特征,这些运算可以提取图像的层次结构和特征;这使得检测图像中的结构变得更容易。 CNN 计算的关键组成部分本节解释说,CNN 计算由四个关键组件组成:变换、核、偏差和非线性。 卷积层滤波器/核: 卷积器(或核)是放置在输入数据上并滑动(卷积)的小矩阵。在此操作中,每个滤波器对输入信号执行逐元素乘法,然后通过取结果的总和来形成特征图。每个滤波器都是为特定特征创建的,例如边缘或其他纹理。 步长: 步长定义了滤波器在输入数据中如何移动以及它采取的步数。这意味着,虽然较大的步长一次可以捕获更大的区域,但在该过程中它会覆盖较小的特征图,从而减小空间维度和所需的计算量。 填充: 填充是在输入数据的边缘周围放置附加像素(通常使用零)的做法。它有助于调节该特定维度上的输出特征图的大小。在大多数情况下,有两种主要的填充方式:'valid',它不进行填充,使输出的大小小于输入;而 'same' 则确保输出的维度等于输入的维度。 激活函数通过激活函数为 CNN 增加非线性,CNN 学习更复杂模式的可能性就随之而来。激活函数根据 CNN 的要求帮助校正数据值。最受欢迎的激活函数是 **ReLU(整流线性单元)**,如果输入值大于 0,它就返回原始值;否则,它返回 0。这种非线性是使更深层的神经网络能够准确预测输入的关键因素。 池化层最大池化: 最大池化再次降低了特征图在空间上的分辨率,它只选择每个窗口(例如 2x2)中的最大值。此操作有助于下采样,即降低参数的过程,并缓解与过拟相关的问题。 平均池化: 平均池化也减小了空间维度的大小;但是,它不是选择池化窗口中的最大元素,而是计算神经元权重的平均值。虽然不如最大池化普遍,但在某些情况下,当平均特征表示可能更可取时,它也有其应用。 全连接层之后,卷积层和池化层会跟随之前的层,并且可能恢复的特征图会通过一个全连接层。这些是传统的 MFFNN(多层前馈神经网络)结构,其中每个节点都连接到前一层中的每个节点。全连接层通常位于网络的最后阶段,作为分类或回归网络的最终决策层。 归一化层批量归一化: 批量归一化对每层的输入应用缩放和平移,使大部分输入接近于 1,这可以加快训练数据处理速度。它还有助于正则化,避免过拟合,从而提高准确性。 历史背景与演变CNN 的起源CNN 方法最初是由 Yann LeCun 在 20 世纪 80 年代末至 90 年代初提出的,当时设计了 LeNet,一个用于手写数字识别(如 MNIST 数据集)的 CNN 基本架构。这项工作催生了如今更加先进和高效的 CNN。 CNN 发展中的里程碑 AlexNet (2012): 被认为是计算机视觉领域的一项重大进步,它在 ImageNet 大规模视觉识别挑战赛 ILSVRC 中以巨大优势获胜。这主要归功于深度架构的可用性和用于训练的 GPU。 VGGNet (2014): 通过在整个神经网络中使用 3x3 滤波器,可以使 CNN 更深。 GoogLeNet (Inception, 2014): 提出了 Inception 层,该层能够同时在多个尺度上进行特征提取。 ResNet (2015): 提出了残差学习,这使得网络可以非常深。作者们训练了高达 152 层的深度网络。 CNN 的具体应用
技术增强和变体
CNN 计算的好处特征提取通过前馈网络的训练,CNN 还可以从原始输入数据中自学习特征,而无需进行特征工程。这种从数据本身学习的能力对于图像识别等任务特别有用,因为在阅读材料时,您可能甚至不知道要查找哪种类型的特征。 平移不变性CNN 中的某些函数具有匹配平移的效果。因此,即使对象在图像中移动,模型也可以识别它们。此属性增强了模型,并降低了错误标记潜在对象的可能性。 参数共享它采用应用于整个输入数据的滤波器,并具有参数共享的功能。CNN 不会将一层中的每个神经元连接到下一层的所有神经元,而仅将相邻层中的神经元连接起来,从而减少了参数的总数,因此 CNN 的计算成本更低,且不易出现过拟合问题。 分层特征学习CNN 寻求输入数据的表示层次结构。低级层存储简单的属性,如边缘和低纹理,而高级层存储复杂的属性,如构图和对象。这种分层学习过程有助于对数据进行分类以及解释以图片形式提供的信息。 CNN 计算的缺点计算复杂性关于 CNN 训练,值得注意的是,即使在最简单的情况下,尤其是在考虑大型数据集时,也需要高性能 GPU 或 TPU 等外围设备以及大量时间。这种计算需求可能是一个挑战,特别是对于预算和资源有限的研究人员和从业人员。 数据要求CNN 通常涉及大量的训练数据以及适当的标签以提高效率。收集和标记如此大的数据集可能非常困难、耗时,有时甚至非常昂贵。 过拟合CNN 通常具有许多参数,因此非常容易过拟合,特别是当数据集很小时。当模型专注于训练数据时,它们会过拟合,并包含数据集的每个细节,从而在新数据上表现不佳。作为这些问题的解决方案,有一些称为预防方法的技术,包括:dropout、数据增强和正则化。 可解释性CNN 被专门讨论为黑盒模型,它们有自己的问题。区分实际学习到的特征以及网络实际得出结论的方式可能相当复杂。它缺乏简单的结构——这对于随机森林算法来说不是一个缺点,因为在解释模型决策至关重要的情况下,拥有一个易于解释的模型可能是一个劣势。 对超参数的敏感性这些 CNN 有时需要设置许多参数,例如网络的深度、每层滤波器的尺寸、学习率以及非凸优化的方法。确定超参数的适当值通常更具挑战性,并且总是需要大量的时间和精力,这会消耗时间和资源。 CNN 计算的高级主题这些是模型开发完成后通常计算的一些最常见但复杂的 CNN 计算。 迁移学习迁移学习允许利用在各种图像上进行特别训练的 CNN,这些图像大多来自 ImageNet 等大型图像数据集。然后,模型会针对具有较小数据集的预期任务进行进一步微调。与其他人相比,训练时间稍长,但这种方法分析了大量数据并利用了从中获得的知识。尽管如此,在执行目标任务时,效果可能很好。 架构创新研究人员付出了很多努力来开发新的深度 CNN 结构,以改进算法及其功能。值得注意的创新包括 ResNet(残差网络): 在其图标中,Caicedo 等人使用跳跃连接来缓解梯度消失问题,并使开发深度网络成为可能。Inception 网络可以使用不同的卷积计算在假设层中同时发生,从而使网络一次在不同类型的特征上进行训练。 DenseNet: 这种限制机制通过特征重用机制,避免了单层与前馈模式中的其余层之间的耦合;从而减少了参数化问题。 注意力机制通过将注意力机制与 CNN 结合,模型在训练期间将注意力集中在输入中的特定显著点;这在图像字幕和目标检测等领域提供了更好的性能。其他特性包括优化 CNN 中特征权重的动态性,同时使其相对容易解释和简化计算复杂性,并增强并行性。 高效 CNN 架构MobileNet: 该模型的结构采用深度可分离卷积,有助于降低计算成本并提高效率,使其非常适合在移动和边缘设备上使用。MobileNet 还平衡了速度和最少计算量,因此适用于实时系统。 EfficientNet: 该网络架构同时进行超采样、加厚和锐化,并减少了高性能和计算负载所需的参数数量。EfficientNet 的维度以复合方式进行缩放,从而形成了一个既高效又有效的架构。 结论CNN 计算是计算机视觉应用可行性的重要组成部分。由于 CNN 需要大量的计算能力来训练和提取原始输入的特征,因此它们是深度学习系统中最受欢迎的网络。**CNN 计算**领域充满了创新和应用,并且在不断发展,不仅在计算机视觉领域,在许多其他领域也产生了新的想法和不同的可能性。让我们回想一下,如今,CNN 已在许多领域展现了其有效性,从历史事件到现代算法成就。目前,源于计算复杂性、对大量数据的需求以及结果可解释性的担忧,正在通过新的架构变体、优化方法和跨学科方法得到有效解决。未来展望——该领域的当前研究将揭示 CNN 应用的新能力和前景,CNN 将在人工智能的持续演进中继续成为重要的工具。 下一主题Seaborn 颜色面板 |
我们请求您订阅我们的新闻通讯以获取最新更新。