主页 topics 什么是卷积神经网络(CNN)? 什么是卷积神经网络 (CNN) 
了解卷积神经网络(CNN)如何使用三维数据,执行图像分类和对象识别任务
如何发现复杂关系并从中获取更大价值 新一代企业级 AI 开发平台 watsonx.ai
黑色和蓝色背景
什么是卷积神经网络 (CNN)?

卷积神经网络 (CNN) 使用三维数据,执行图像分类和对象识别任务。

神经网络是机器学习的一个子集,是深度学习算法的核心。它们由节点层构成,包含一个输入层、一个或多个隐藏层和一个输出层。每个节点都与另一个节点相连,具有一个关联的权重和阈值。如果任何单个节点的输出高于指定的阈值,那么该节点将被激活,并将数据发送到网络的下一层。否则,不会将数据传递到网络的下一层。

虽然我们在那篇文章中主要关注前馈网络,但还有各种不同类型的神经网络,它们用于不同的用例和数据类型。例如,循环神经网络通常用于自然语言处理和语音识别,而卷积神经网络(ConvNet 或 CNN)则更常用于分类和计算机视觉任务。在卷积神经网络出现之前,人们通常使用耗时的人工特征抽取方法来识别图像中的对象。现在,卷积神经网络 (CNN) 提供更加可扩展的方法来执行图像分类和对象识别任务:它们利用线性代数原理(特别是矩阵乘法)来识别图像内的图案。也就是说,它们对计算力的要求可能很高,需要图形处理单元 (GPU) 来训练模型。

AI 数据存储

了解将数据湖仓一体策略集成到您的数据架构的强大功能,包括扩展 AI 的增强功能和成本优化机会。

相关内容

阅读数据领导者指南

卷积神经网络 (CNN) 如何工作?

卷积神经网络 (CNN) 从其他神经网络中脱颖而出的地方在于:它们在图像、语音或音频信号输入方面表现出超级的性能。它们具有三个主要类型的层,分别是:

  • 卷积层
  • 池化层
  • 全连接 (FC) 层

卷积层是卷积网络的第一层。虽然卷积层可以后跟另外的卷积层或池化层,但全连接层肯定是最后一层。随着层级的递进,卷积神经网络 (CNN) 的复杂性也逐步增加,能够识别图像的更多部分。靠前的层关注于简单的特征,比如颜色和边缘。随着图像数据沿着卷积神经网络 (CNN) 的层级逐渐推进,它开始识别对象中更大的元素或形状,直到最终识别出预期的对象。

卷积层

卷积层是卷积神经网络 (CNN) 的核心构建块,负责执行大部分计算。它需要几个组件,包括输入数据、过滤器和特征图。假设输入是彩色图像,由三维的像素矩阵组成。这意味着,输入具有三个维度:高度、宽度和深度,对应于图像中的 RGB。我们还有一个特征检测器,也称为内核或过滤器,它在图像的各个感受野中移动,检查是否存在特征。这个过程称为卷积。

特征检测器是个二维权重数组,表示部分图像。虽然它们的大小可能各不相同,但过滤器大小通常为 3×3 的矩阵;这也决定了感受野的大小。然后,过滤器应用于图像的某个区域,并计算输入像素和过滤器的点积。此点积会进而提供给输出数组。接下来,过滤器移动一个步幅,重复这个过程,直到内核扫描了整个图像。来自输入和过滤器的一系列点积的最终输出称为特征图、激活图或卷积特征。

请注意,特征检测器中的权重在图像上移动时保持不变,这也称为参数共享。一些参数(如权重值)会在训练过程中通过反向传播和梯度下降过程进行调整。但是,在神经网络训练开始之前,需要设置三个影响输出卷容量的超参数。其中包括:

1. 滤波器的数量会影响输出的深度。例如,三个不同的滤波器会产生三个不同的特征图,形成三个不同的深度。

2. 步幅是内核在输入矩阵上移动的距离或像素数。虽然步幅值不低于 2 较为罕见,但步幅越大,输出就越小。

3. 当滤波器不适合输入图像时,通常会使用零填充。这会将输入矩阵之外的所有元素设置为零,从而产生更大或相同大小的输出。填充有三种类型:

  • 有效填充:也称为无填充。在这种情况下,如果维度不一致,最后一个卷积就会被丢弃。
  • 相同填充:此填充确保输出层的大小与与输入层相同。
  • 完全填充:这种填充方式是通过在输入的边界上添加零来增加输出的大小。

在每次卷积运算之后,CNN 对特征图应用修正线性单元 (ReLU) 转换,为模型引入非线性特性。

附加卷积层

如前所述,初始卷积层可以后跟另一个卷积层。如果是这种情况,CNN 的结构就变成一个分层结构,因为后面层可以看到前面层的感受野中的像素。 例如,假设我们尝试确定图像中是否包含自行车。可将自行车视为各种零件的总和,它由车架、车把、车轮、踏板等组成。自行车的每个零件构成神经网络中一个较低层次的模式,而零件的组合则表示一个较高层次的模式,从而在 CNN 中形成特征层次结构。最终,卷积层将图像转换为数值,允许神经网络解释和提取相关模式。

池化层

池化层也称为下采样层,它执行降维操作,旨在减少输入中参数的数量。与卷积层类似,池化运算让过滤器扫描整个输入,但区别在于,这个过滤器没有权重。内核对感受野中的值应用聚集函数,填充输出数组。有两种主要的池化类型:

  • 最大池化:当筛选器在输入中移动时,它选择具有最大值的像素,将其发送给输出数组。顺便说一句,与平均池化相比,这种方法往往更为常用。
  • 平均池化:当筛选器在输入中移动时,它计算接收字段中的平均值,将其发送给输出数组。

虽然池化层中会丢失大量信息,但它还是给 CNN 带来的许多好处。该层有助于降低复杂性、提高效率,并限制过度拟合的风险。 

全连接层

全连接层的名称恰如其分地描述了它的含义。如前所述,输入图像的像素值并不直接连接到部分连接层的输出层。而在完全连接层中,输出层中的每个节点都直接连接到上一层中的一个节点。

该层根据通过先前层及其不同的过滤器提取的特征,执行分类任务。虽然卷积层和池化层一般使用 ReLu 函数,但完全连接层通常利用 softmax 激活函数对输入进行适当分类,从而产生 0 到 1 之间的概率。

什么是卷积神经网络(CNN)?

重申神经网络学习中心文章的观点:神经网络是机器学习的子集,是深度学习算法的核心。它们由节点层构成,包含一个输入层、一个或多个隐藏层和一个输出层。每个节点都与另一个节点相连,具有一个关联的权重和阈值。如果任何单个节点的输出高于指定的阈值,那么该节点将被激活,并将数据发送到网络的下一层。否则,不会将数据传递到网络的下一层。

虽然我们在那篇文章中主要关注前馈网络,但还有各种不同类型的神经网络,它们用于不同的用例和数据类型。例如,循环神经网络通常用于自然语言处理和语音识别,而卷积神经网络(ConvNet 或 CNN)则更常用于分类和计算机视觉任务。

在卷积神经网络 (CNN )出现之前,人们通常使用耗时的人工特征抽取方法来识别图像中的对象。现在,卷积神经网络提供更加可扩展的方法来执行图像分类和对象识别任务:卷积神经网络利用线性代数原理(特别是矩阵乘法)来识别图像内的图案。也就是说,卷积神经网络对计算力的要求可能很高,需要图形处理单元 (GPU) 来训练模型。

卷积神经网络 (CNN) 的类型

Kunihiko Fukushima 和 Yann LeCun 分别在 1980 年 (链接位于 IBM 外部)发表论文和 1989 年发表“反向传播在手写邮政编码识别中的应用”,奠定了卷积神经网络研究的基础。Yann LeCun 更有名,他成功应用反向传播来训练神经网络,以识别一系列手写邮政编码中的图案。在整个 1990 年代,他与自己的团队一起继续开展研究,最终发布“LeNet-5”,将先前研究中的相同原理应用于文档识别。从那之后,随着 MNIST 和 CIFAR-10 等新数据集的推出,以及 ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 等竞争产品的出现,各种不同的卷积神经网络架构不断涌现。其他一些架构包括:

  • AlexNet (链接位于 IBM 外部)
  • VGGNet (链接位于 IBM 外部)
  • GoogLeNet (链接位于 IBM 外部)
  • ResNet (链接位于 IBM 外部)
  • ZFNet

然而,LeNet-5 被公认为经典的卷积神经网络架构。

卷积神经网络 (CNN) 与计算机视觉

卷积神经网络 (CNN) 有力地推动了影像识别和计算机视觉任务的执行。计算机视觉是人工智能 (AI) 的一个领域,让计算机和系统能够从数字图像、视频和其他视觉输入中获取有意义的信息,并根据这些输入采取行动。这种提供建议的能力让它有别于图像识别任务。目前可以看到的计算机视觉的一些常见应用领域包括:

  • 营销:社交媒体平台可以提示谁可能出现在已发布在个人档案中的照片上,从而更轻松地在相册中标记朋友。
  • 医疗保健:计算机视觉已纳入放射学技术,帮助医生在健康的解剖结构中更有效地识别肿瘤。
  • 零售:视觉搜索已纳入一些电子商务平台,帮助品牌企业建议在现有衣橱中补充哪些商品。  
  • 汽车:虽然无人驾驶汽车时代还未完全到来,但底层技术已开始在汽车中应用:通过车道线检测等功能,提高驾驶员和乘客的安全性。
相关解决方案
IBM SPSS Neural Networks

IBM SPSS Neural Networks 可以帮助您发现复杂关系并从数据中获取更大的价值。

探索 IBM SPSS Neural Networks
IBM Watson® Studio

在任何云端构建和扩展可信 AI。实现 ModelOps 的 AI 生命周期自动化。

了解 IBM Watson Studio
IBM watsonx.ai 

新一代企业级 AI 开发平台,支持机器学习和生成式 AI。

了解 IBM watsonx.ai
资源 使用 Python 的卷积神经网络 (CNN)

使用 Python 实现对手写数字进行分类的简单网络。

卷积神经网络 (CNN) 简介

深入探索创建卷积神经网络 (CNN) 的不同步骤。

双卷积神经网络

在本论文中,IBM 研究提出双卷积神经网络(DCNN) 可以显著提高卷积神经网络 (CNN) 的性能。

学习具有深度结构嵌入层的卷积神经网络 (CNN)

IBM 研究人员提出了深度结构嵌入层 (DPE) 的全新概念,可用于了解不同类别的新的卷积神经网络(CNN)。

使用 Python 训练 YOLOv8 对象检测模型

微调预训练物体检测模型。

采取后续步骤

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

深入了解 watsonx.ai 预约实时演示