卷积神经网络 (CNN) 使用三维数据,执行图像分类和对象识别任务。
神经网络是机器学习的一个子集,是深度学习算法的核心。它们由节点层构成,包含一个输入层、一个或多个隐藏层和一个输出层。每个节点都与另一个节点相连,具有一个关联的权重和阈值。如果任何单个节点的输出高于指定的阈值,那么该节点将被激活,并将数据发送到网络的下一层。否则,不会将数据传递到网络的下一层。
虽然我们在那篇文章中主要关注前馈网络,但还有各种不同类型的神经网络,它们用于不同的用例和数据类型。例如,循环神经网络通常用于自然语言处理和语音识别,而卷积神经网络(ConvNet 或 CNN)则更常用于分类和计算机视觉任务。在卷积神经网络出现之前,人们通常使用耗时的人工特征抽取方法来识别图像中的对象。现在,卷积神经网络 (CNN) 提供更加可扩展的方法来执行图像分类和对象识别任务:它们利用线性代数原理(特别是矩阵乘法)来识别图像内的图案。也就是说,它们对计算力的要求可能很高,需要图形处理单元 (GPU) 来训练模型。
了解将数据湖仓一体策略集成到您的数据架构的强大功能,包括扩展 AI 的增强功能和成本优化机会。
阅读数据领导者指南
卷积神经网络 (CNN) 从其他神经网络中脱颖而出的地方在于:它们在图像、语音或音频信号输入方面表现出超级的性能。它们具有三个主要类型的层,分别是:
卷积层是卷积网络的第一层。虽然卷积层可以后跟另外的卷积层或池化层,但全连接层肯定是最后一层。随着层级的递进,卷积神经网络 (CNN) 的复杂性也逐步增加,能够识别图像的更多部分。靠前的层关注于简单的特征,比如颜色和边缘。随着图像数据沿着卷积神经网络 (CNN) 的层级逐渐推进,它开始识别对象中更大的元素或形状,直到最终识别出预期的对象。
卷积层是卷积神经网络 (CNN) 的核心构建块,负责执行大部分计算。它需要几个组件,包括输入数据、过滤器和特征图。假设输入是彩色图像,由三维的像素矩阵组成。这意味着,输入具有三个维度:高度、宽度和深度,对应于图像中的 RGB。我们还有一个特征检测器,也称为内核或过滤器,它在图像的各个感受野中移动,检查是否存在特征。这个过程称为卷积。
特征检测器是个二维权重数组,表示部分图像。虽然它们的大小可能各不相同,但过滤器大小通常为 3×3 的矩阵;这也决定了感受野的大小。然后,过滤器应用于图像的某个区域,并计算输入像素和过滤器的点积。此点积会进而提供给输出数组。接下来,过滤器移动一个步幅,重复这个过程,直到内核扫描了整个图像。来自输入和过滤器的一系列点积的最终输出称为特征图、激活图或卷积特征。
请注意,特征检测器中的权重在图像上移动时保持不变,这也称为参数共享。一些参数(如权重值)会在训练过程中通过反向传播和梯度下降过程进行调整。但是,在神经网络训练开始之前,需要设置三个影响输出卷容量的超参数。其中包括:
1. 滤波器的数量会影响输出的深度。例如,三个不同的滤波器会产生三个不同的特征图,形成三个不同的深度。
2. 步幅是内核在输入矩阵上移动的距离或像素数。虽然步幅值不低于 2 较为罕见,但步幅越大,输出就越小。
3. 当滤波器不适合输入图像时,通常会使用零填充。这会将输入矩阵之外的所有元素设置为零,从而产生更大或相同大小的输出。填充有三种类型:
在每次卷积运算之后,CNN 对特征图应用修正线性单元 (ReLU) 转换,为模型引入非线性特性。
如前所述,初始卷积层可以后跟另一个卷积层。如果是这种情况,CNN 的结构就变成一个分层结构,因为后面层可以看到前面层的感受野中的像素。 例如,假设我们尝试确定图像中是否包含自行车。可将自行车视为各种零件的总和,它由车架、车把、车轮、踏板等组成。自行车的每个零件构成神经网络中一个较低层次的模式,而零件的组合则表示一个较高层次的模式,从而在 CNN 中形成特征层次结构。最终,卷积层将图像转换为数值,允许神经网络解释和提取相关模式。
池化层也称为下采样层,它执行降维操作,旨在减少输入中参数的数量。与卷积层类似,池化运算让过滤器扫描整个输入,但区别在于,这个过滤器没有权重。内核对感受野中的值应用聚集函数,填充输出数组。有两种主要的池化类型:
虽然池化层中会丢失大量信息,但它还是给 CNN 带来的许多好处。该层有助于降低复杂性、提高效率,并限制过度拟合的风险。
全连接层的名称恰如其分地描述了它的含义。如前所述,输入图像的像素值并不直接连接到部分连接层的输出层。而在完全连接层中,输出层中的每个节点都直接连接到上一层中的一个节点。
该层根据通过先前层及其不同的过滤器提取的特征,执行分类任务。虽然卷积层和池化层一般使用 ReLu 函数,但完全连接层通常利用 softmax 激活函数对输入进行适当分类,从而产生 0 到 1 之间的概率。
重申神经网络学习中心文章的观点:神经网络是机器学习的子集,是深度学习算法的核心。它们由节点层构成,包含一个输入层、一个或多个隐藏层和一个输出层。每个节点都与另一个节点相连,具有一个关联的权重和阈值。如果任何单个节点的输出高于指定的阈值,那么该节点将被激活,并将数据发送到网络的下一层。否则,不会将数据传递到网络的下一层。
虽然我们在那篇文章中主要关注前馈网络,但还有各种不同类型的神经网络,它们用于不同的用例和数据类型。例如,循环神经网络通常用于自然语言处理和语音识别,而卷积神经网络(ConvNet 或 CNN)则更常用于分类和计算机视觉任务。
在卷积神经网络 (CNN )出现之前,人们通常使用耗时的人工特征抽取方法来识别图像中的对象。现在,卷积神经网络提供更加可扩展的方法来执行图像分类和对象识别任务:卷积神经网络利用线性代数原理(特别是矩阵乘法)来识别图像内的图案。也就是说,卷积神经网络对计算力的要求可能很高,需要图形处理单元 (GPU) 来训练模型。
Kunihiko Fukushima 和 Yann LeCun 分别在 1980 年 (链接位于 IBM 外部)发表论文和 1989 年发表“反向传播在手写邮政编码识别中的应用”,奠定了卷积神经网络研究的基础。Yann LeCun 更有名,他成功应用反向传播来训练神经网络,以识别一系列手写邮政编码中的图案。在整个 1990 年代,他与自己的团队一起继续开展研究,最终发布“LeNet-5”,将先前研究中的相同原理应用于文档识别。从那之后,随着 MNIST 和 CIFAR-10 等新数据集的推出,以及 ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 等竞争产品的出现,各种不同的卷积神经网络架构不断涌现。其他一些架构包括:
然而,LeNet-5 被公认为经典的卷积神经网络架构。
卷积神经网络 (CNN) 有力地推动了影像识别和计算机视觉任务的执行。计算机视觉是人工智能 (AI) 的一个领域,让计算机和系统能够从数字图像、视频和其他视觉输入中获取有意义的信息,并根据这些输入采取行动。这种提供建议的能力让它有别于图像识别任务。目前可以看到的计算机视觉的一些常见应用领域包括: