Press "Enter" to skip to content

[译]卷积神经网络(CNN)

来源:

 

https://www.analyticsvidhya.com/blog/2021/05/convolutional-neural-networks-cnn/#:~:text=In%20deep%20learning%2C%20a%20convolutional,applied%20to%20analyze%20visual%20imagery.&text=It%20uses%20a%20special%20technique%20called%20Convolution .

 

 

介绍

 

在过去的几十年中,深度学习由于能够处理大量数据而被证明是一种非常强大的工具。使用隐藏层的兴趣已经超越了传统技术,尤其是在模式识别方面。卷积神经网络是最受欢迎的深度神经网络之一。

 

 

自 1950 年代(即 AI 的早期)以来,研究人员一直在努力打造一个可以理解视觉数据的系统。在随后的几年中,该领域被称为计算机视觉。 2012 年,多伦多大学的一组研究人员开发了一个 AI 模型,该模型超越了最佳的图像识别算法,而且也大大超越了 AI ,因此计算机视觉发生了巨大的飞跃。

 

被称为 AlexNet (以其主要创建者 Alex Krizhevsky 命名)的 AI 系统,以惊人的 85 %的精度赢得了 2012 年 ImageNet 计算机视觉大赛。季军在测试中得分仅为 74 %。

 

AlexNet 的核心是卷积神经网络,一种特殊的神经网络,可以粗略地模仿人类的视觉。多年来, CNN 已成为许多计算机视觉应用程序中非常重要的一部分。因此,让我们看一下 CNN 的工作原理。

 

CNN 的背景

 

CNN 最早是在 1980 年代左右开发和使用的。当时 CNN 最多能做的就是识别手写数字。它主要用于邮政部门中以读取邮政编码,个人识别码等。对于任何深度学习模型,要记住的重要一点是,它需要训练大量的数据,并且还需要大量的计算资源。这是当时的 CNN 的主要缺点,因此 CNN 仅限于邮政部门,因此未能进入机器学习领域。

 

 

在 2012 年, Alex Krizhevsky 意识到是时候重新使用多层神经网络的深度学习分支了。大量数据的可用性,更具体的 ImageNet 数据集以及数百万个带有标签的图像以及丰富的计算资源,使研究人员能够复兴 CNN 。

 

CNN 到底是什幺?

 

在深度学习中,卷积神经网络( CNN / ConvNet )是一类 深度神经网络 ,最常用于分析视觉图像。现在,当我们想到神经网络时,我们想到的是矩阵乘法,但 ConvNet 并非如此。它使用一种称为卷积的特殊技术。现在,在数学中, 卷积 是对两个函数的数学运算,它产生一个第三个函数,该函数表示一个函数的形状如何被另一个函数修改。

 

 

但是,我们真的不需要深入研究数学部分来了解什幺是 CNN 或 CNN 的工作原理。

 

最重要的是, ConvNet 的作用是将图像缩小为易于处理的形式,而又不会丢失对获得良好预测至关重要的功能。

 

它是如何工作的?

 

在开始 CNN 的工作之前,我们先介绍一下什幺是图像及其表示方式等基本知识。 RGB 图像不过是具有三个平面的像素值矩阵,而灰度图像是相同的,但是只有一个平面。看一下这张图片,以了解更多信息。

 

 

为方便理解,我们使用灰度图像来说明 CNN 的工作方式。

 

 

上图显示了卷积。我们采用一个过滤器 / 内核( 3×3 矩阵),并将其应用于输入图像以获得卷积特征。该卷积特征将传递到下一层。

 

 

对于 RGB 颜色,无非是 3 个通道一起运算,如下面的动态图所示。

标题

卷积神经网络由多层人工神经元组成。人工神经元是其生物学对应物的粗略模仿,是一种数学函数,可计算多个输入的加权总和并输出激活值。在 ConvNet 中输入图像时,每一层都会生成多个激活函数,这些激活函数会传递到下一层。

 

第一层通常提取基本特征,例如水平或对角线边缘。此输出将传递到检测更复杂特征(例如拐角或组合边)的下一层。随着我们深入网络,它可以识别甚至更复杂的特征,例如对象,面部等。最终,提取的就是高级特征,甚至可能我们都无法理解的抽象特征。

 

 

基于最终卷积层的激活图,分类层输出一组置信度分数(值在 0 和 1 之间),这些置信度分数指定图像属于 “ 类 ” 的可能性。例如,如果您有一个 ConvNet 可以检测猫,狗和马,那幺最后一层的输出就是输入图像包含其中任何动物的可能性。

 

 

什幺是池化层?

 

与卷积层相似,池化层负责减小卷积特征的空间大小。这是通过减小尺寸来减少 处理数据所需的计算能力 。平均池化和最大池化有两种类型。

 

需要注意,这里的右侧图是原始图像,在每个工作区域内找他的最大值,作为处理结果,如左边的结果所示。

 

 

因此,我们在 “ 最大池化 ” 中所做的就是从内核覆盖的图像的一部分中找到一个像素的最大值。 Max Pooling 还可以用作 噪声抑制器 。它完全丢弃了嘈杂的激活,并且还执行了降噪以及降维。

 

另一方面, “ 平均池化 ” 从内核覆盖的图像部分返回 所有值 的 平均值 。平均池化只是将降维作为一种噪声抑制机制。因此,可以说 Max Pooling 的性能要比 Average Pooling 好得多 。

 

 

局限性

 

尽管 CNN 的功能和资源很复杂,但它们提供了深入的结果。归根结底,它只是识别模式和细节,这些细节和细节是如此微弱和不起眼,以至于人眼无法察觉。或者说,我们人类无法理解这些高级特征。或者说,这些特征并不很直观。

 

总是,当要 了解 图像的内容时,这些特征可能,就失败了。

 

让我们看一下这个例子。当我们将下图传递给 CNN 时,它检测到一个 30 岁左右的人和一个大概 10 岁左右的孩子。但是,当我们看同一张图片时,我们开始考虑多种不同的情况。也许是父子俩出门,野餐,或者他们正在露营。也许是在校园里,孩子打进了一球,他父亲很高兴,所以他举起了他。

 

简单说,它能理解对象,但是不能理解语义。

 

 

在实际应用中,这些局限性是显而易见的。例如, CNN 广泛用于管理社交媒体上的内容。但是,尽管经过大量培训的图像和视频资源仍然无法完全阻止和删除不当内容。事实证明,它在 Facebook 上删除了一幅 30000 年前的裸露雕像,因为它可能涉嫌传播不当内容。

 

多项研究表明,在 ImageNet 和其他流行的数据集上训练的 CNN 在不同照明条件下从新角度看到物体时,无法检测到物体。

 

这是否意味着 CNN 毫无用处?尽管卷积神经网络有局限性,但不可否认的是,它们已经引起了人工智能领域的革命。如今, CNN 已用于许多 计算机视觉应用程序中, 例如面部识别,图像搜索和编辑,增强现实等等。正如卷积神经网络的进步所表明的那样,我们的成就令人瞩目且有用,但我们距离 复制人类智能的关键组成部分 还很遥远。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注