卷积神经网络工作原理及应用
卷积神经网络工作原理及应用
卷积神经网络(CNN)是深度学习领域中一种重要的神经网络架构,主要用于处理图像、语音和音频信号等数据。本文将详细介绍CNN的工作原理及其在计算机视觉领域的应用,帮助读者更好地理解这一重要的人工智能技术。
什么是卷积神经网络?
卷积神经网络使用三维数据进行图像分类和对象识别任务。神经网络是机器学习的一个子集,是深度学习算法的核心。它们由节点层组成,包含输入层、一个或多个隐藏层和输出层。每个节点都连接到另一个节点,并具有相关的权重和阈值。如果任何单个节点的输出高于指定的阈值,则该节点被激活,将数据发送到网络的下一层。否则,没有数据传递到网络的上一层。
虽然我们在那篇文章中主要关注前馈网络,但有各种类型的神经网络,用于不同的用例和数据类型。例如,循环神经网络通常用于自然语言处理和语音识别,而卷积神经网络(卷积神经网络或CNN)更常用于分类和计算机视觉任务。在卷积神经网络出现之前,人们使用手动、耗时的特征提取方法来识别图像中的对象。然而,卷积神经网络现在为图像分类和对象识别任务提供了一种更具可扩展性的方法,利用线性代数的原理,特别是矩阵乘法,来识别图像中的模式。也就是说,它们可能对计算要求很高,需要图形处理单元(GPU)来训练模型。
卷积神经网络是如何工作的?
卷积神经网络与其他神经网络的区别在于它们在图像、语音或音频信号输入方面的卓越性能。它们有三种主要类型的层,分别是:
- 卷积层
- 池化层
- 全连接(FC)层
卷积层是卷积网络的第一层。虽然卷积层后面可以是额外的卷积层或池化层,但全连接层是最后一层。对于每一层,CNN的复杂性都会增加,从而识别出图像的更多部分。早期的图层侧重于简单的特征,如颜色和边缘。随着图像数据在CNN的各个层中前进,它开始识别物体的较大元素或形状,直到最终识别出预期的物体。
卷积层
卷积层是CNN的核心构建块,也是大部分计算发生的地方。它需要几个组件,即输入数据、过滤器和特征图。让我们假设输入将是一个彩色图像,它由3D中的像素矩阵组成。这意味着输入将有三个维度——高度、宽度和深度——对应于图像中的RGB。我们还有一个特征检测器,也称为核或滤波器,它将在图像的接收野中移动,检查特征是否存在。这个过程被称为卷积。
特征检测器是一个二维(2-D)权重阵列,代表图像的一部分。虽然它们的大小可以变化,但滤波器的大小通常是3x3矩阵;这也决定了感受野的大小。然后将滤波器应用于图像的某个区域,并计算输入像素和滤波器之间的点积。然后将该点积输入到输出数组中。之后,滤波器移动一步,重复该过程,直到内核扫过整个图像。来自输入和过滤器的一系列点积的最终输出称为特征图、激活图或卷积特征。
请注意,特征检测器中的权重在图像中移动时保持不变,这也被称为参数共享。一些参数,如权重值,在训练过程中通过反向传播和梯度下降进行调整。然而,在神经网络训练开始之前,需要设置三个影响输出体积大小的超参数。这些措施包括:
- 过滤器的数量会影响输出的深度。例如,三个不同的过滤器将产生三个不同特征图,从而创建三个深度。
- 步幅是内核在输入矩阵上移动的距离或像素数。虽然步幅值为2或更大的情况很少见,但步幅越大,输出越小。
- 当滤波器不适合输入图像时,通常使用零填充。这将输入矩阵之外的所有元素设置为零,从而产生更大或大小相等的输出。有三种类型的填充:
- 有效填充:这也称为无填充。在这种情况下,如果维度不对齐,最后一个卷积将被丢弃。
- 相同的填充:此填充确保输出层与输入层具有相同的大小。
- 全填充:这种类型的填充通过在输入的边界添加零来增加输出的大小。
在每次卷积操作之后,CNN对特征图应用校正线性单元(ReLU)变换,为模型引入非线性。
附加卷积层
正如我们之前提到的,另一个卷积层可以跟在初始卷积层之后。当这种情况发生时,CNN的结构可以变得层次化,因为后面的层可以看到前面层的感受场内的像素。作为一个例子,让我们假设我们正在尝试确定图像中是否包含自行车。你可以把自行车看作是零件的总和。它由车架、车把、车轮、踏板等组成。自行车的每个单独部分在神经网络中构成了一个较低级别的模式,其部分的组合代表了一个较高级别的模式。在CNN中创建了一个特征层次结构。最终,卷积层将图像转换为数值,使神经网络能够解释和提取相关模式。
池化层
池化层,也称为下采样,进行降维,减少输入中的参数数量。与卷积层类似,池化操作在整个输入上扫过一个滤波器,但不同的是这个滤波器没有任何权重。相反,内核对感受野内的值应用聚合函数,填充输出数组。池有两种主要类型:
- 最大池化:当过滤器在输入端移动时,它会选择具有最大值的像素发送到输出数组。顺便说一句,与平均池相比,这种方法往往更常用。
- 平均池化:当过滤器在输入端移动时,它会计算接收场内的平均值,以发送到输出数组。
虽然池层丢失了大量信息,但它对CNN也有很多好处。它们有助于降低复杂性,提高效率,并限制过拟合的风险。
全连接层
全连接层的名称恰如其分地描述了它自己。如前所述,输入图像的像素值在部分连接的层中不直接连接到输出层。然而,在全连接层中,输出层中的每个节点都直接连接到前一层中的节点。
该层根据通过前一层及其不同过滤器提取的特征执行分类任务。虽然卷积层和池化层倾向于使用ReLu函数,但FC层通常利用softmax激活函数对输入进行适当分类,产生0到1的概率。
卷积神经网络的类型
Kunihiko Fukushima和Yann LeCun分别在1980年的工作(链接位于ibm.com之外)和1989年的“反向传播应用于手写邮政编码识别”中为卷积神经网络的研究奠定了基础。更著名的是,Yann LeCun成功地应用了反向传播来训练神经网络,以识别和识别一系列手写邮政编码中的模式。他将在整个20世纪90年代继续与他的团队进行研究,最终推出了“LeNet-5”,该系统将先前研究的相同原理应用于文档识别。从那时起,随着新数据集的引入,如MNIST和CIFAR-10,以及类似于ImageNet大规模视觉识别挑战赛(ILSVRC)的比赛,出现了许多不同的CNN架构。其中一些其他架构包括:
- AlexNet(链接位于ibm.com之外)
- VGGNet(链接位于ibm.com之外)
- GoogLeNet(链接位于ibm.com之外)
- ResNet(链接位于ibm.com之外)
- ZFNet
然而,LeNet-5被称为经典的CNN架构。
卷积神经网络与计算机视觉
卷积神经网络为图像识别和计算机视觉任务提供动力。计算机视觉是人工智能(AI)的一个领域,它使计算机和系统能够从数字图像、视频和其他视觉输入中获取有意义的信息,并根据这些输入采取行动。这种提供建议的能力使其有别于图像识别任务。如今,这种计算机视觉的一些常见应用可以在以下方面看到:
- 营销:社交媒体平台提供关于谁可能在个人资料中发布的照片中的建议,使在相册中标记朋友变得更加容易。
- 医疗保健:计算机视觉已被纳入放射学技术,使医生能够更好地识别健康解剖结构中的癌性肿瘤。
- 零售:视觉搜索已被纳入一些电子商务平台,允许品牌推荐可以补充现有衣柜的商品。
- 汽车:虽然无人驾驶汽车的时代还没有完全出现,但底层技术已经开始进入汽车,通过车道线检测等功能提高了驾驶员和乘客的安全性。