卷积神经网络 (CNN):简介

卷积神经网络(CNN)为物体辨识与图像分类提供了更具扩展性的解决方案。

科技领域日新月异,人工智能(AI)与机器学习(ML)是人们耳熟能详的热门话题。

现今,这些技术已渗透到各行各业,从市场营销、电子商务、软件开发,到银行、金融和医疗等领域,应用范围广泛。

人工智能和机器学习是庞大的领域,它们致力于拓展应用范围,以解决诸多现实问题。正因如此,这些技术衍生出许多分支;机器学习本身就是人工智能的一个子集。

卷积神经网络是当前炙手可热的人工智能分支之一。

本文将深入探讨CNN的定义、工作原理及其在现代社会中的应用。

让我们开始探索吧!

什么是卷积神经网络?

卷积神经网络(Convolutional Neural Network,简称ConvNet或CNN)是一种人工神经网络(Artificial Neural Network,简称ANN),它采用深度学习算法来分析图像、进行视觉分类,并执行计算机视觉任务。

CNN运用线性代数原理(例如矩阵乘法)来识别图像中的模式。由于这些过程涉及复杂的计算,因此需要图形处理器(GPU)来训练模型。

简而言之,CNN使用深度学习算法来接收图像等输入数据,并赋予图像的不同部分以不同的权重和可学习的偏差。通过这种方式,CNN能够区分图像或对其进行分类。

CNN:简史

鉴于卷积神经网络属于人工神经网络,有必要重申神经网络的概念。

在计算机科学中,神经网络是机器学习(ML)的一部分,它采用深度学习算法。它模拟人脑中神经元之间的连接模式。人工神经网络的设计也受到了视觉皮层的排列方式的启发。

因此,不同类型的人工神经网络(ANN)被用于不同的目的。其中之一便是用于图像检测和分类的CNN。它在1980年代由博士后研究员Yann LeCun提出。

CNN的早期版本,即以LeCun命名的LeNet,能够识别手写数字。随后,它被应用于银行和邮政服务,用于读取支票上的数字和信封上的邮政编码。

然而,这个早期版本的可扩展性不足。因此,CNN在人工智能和计算机视觉领域的应用并不广泛。此外,它需要大量的计算资源和数据才能更有效地处理较大的图像。

直到2012年,AlexNet重新审视了利用由多层组成的神经网络进行深度学习的方法。大约在这个时期,技术得到了改进,大量的数据集和计算资源使得创建能够有效执行计算机视觉活动的复杂CNN成为可能。

CNN中的层

下面我们来了解CNN中的不同层。增加CNN中的层数会提高其复杂性,使其能够检测图像的更多方面或区域。从简单的特征开始,它逐步变得能够检测物体的形状和更大的元素等复杂特征,直到最终能够识别整个图像。

卷积层

CNN的第一层是卷积层。它是CNN的主要组成部分,大部分计算都发生在这里。它需要一些组件,例如输入数据、特征图和过滤器。

CNN可以包含额外的卷积层。这使得CNN结构具有层次性,因为后续层可以可视化先前层感受野内的像素。卷积层随后将给定的图像转换为数值,从而允许网络理解和提取有价值的模式。

池化层

池化层用于减少维度,也被称为下采样。它减少了输入中使用的参数数量。池化操作类似于卷积层,在整个输入上移动过滤器,但没有权重。在这里,过滤器将联合函数应用于感受野中的数值,以填充结果数组。

池化有两种类型:

  • 平均池化:计算过滤器在扫描输入以传输到输出数组的感受野中的平均值。
  • 最大池化:当过滤器扫描输入时,它选择最大像素值并将其发送到输出数组。最大池化比平均池化更常用。

尽管池化过程中会丢失大量数据,但它仍然为CNN带来了许多好处。它有助于降低过拟合的风险和复杂性,同时提高效率。它还增强了CNN的稳定性。

全连接层 (FC)

顾名思义,输出层中的所有节点都直接连接到全连接层中的前一层节点。它基于先前层及其过滤器提取的特征对图像进行分类。

此外,全连接层通常使用softmax激活函数来正确分类输入,而不是像池化层和卷积层那样使用ReLU函数。这有助于产生0或1的概率值。

CNN的工作原理

卷积神经网络由多个层组成,有时甚至有数百层。这些层学习识别给定图像的各种特征。

尽管CNN是神经网络,但它们的架构与常规的ANN有所不同。

后者将输入通过许多隐藏层进行转换,每一层由一组人工神经元创建,并与同一层中的每个神经元完全连接。最后,有一个全连接层或输出层来显示结果。

另一方面,CNN在三个维度上组织层——宽度、深度和高度。在这里,来自一个神经元层只连接到一个小区域中的神经元,而不是与下一层中的每个神经元相关联。最后,最终结果由具有概率分数的单个向量表示,并且仅具有深度维度。

现在,您可能会问CNN中的“卷积”是什么意思。

实际上,卷积是指合并两个数据集的数学运算。在CNN中,卷积的概念应用于输入数据,通过过滤信息输出特征图。

这引出了CNN中使用的一些重要概念和术语。

  • 过滤器:也称为特征检测器或内核,过滤器可以具有一定的维度,例如3×3。它遍历输入图像以对每个元素执行矩阵乘法以应用卷积。以不同的分辨率将过滤器应用于每个训练图像,加上卷积图像的输出将作为后续层的输入。
  • 填充:它用于通过插入虚拟像素将输入矩阵扩展到矩阵的边界。这样做是为了抵消卷积减少矩阵大小的事实。例如,一个9×9的矩阵经过滤波可能会变成一个3×3的矩阵。
  • 跨步:如果您希望获得小于输入的输出,可以执行跨步。它允许在过滤器在图像上滑动时跳过某些区域。通过跳过两个或三个像素,可以通过降低空间分辨率来生成更高效的网络。
  • 权重和偏差:CNN在其神经元中具有权重和偏差。模型可以在训练时学习这些值,并且对于所有神经元,这些值在给定层中保持相同。这意味着每个隐藏的神经元在图像的不同区域检测到相同的特征。结果,网络在将对象转换为给定图像时变得更加宽容。
  • ReLU:它代表整流线性单元(ReLu),用于更有效和更快的训练。它将负值映射为0并保持正值。它也称为激活,因为网络仅将激活的图像特征携带到后续层。
  • 感受野:在神经网络中,每个神经元从前一层接收来自不同位置的输入。在卷积层中,每个神经元仅接收来自前一层的受限区域的输入,称为神经元的感受野。在全连接层的情况下,整个前一层是感受野。

在现实世界的计算任务中,通常在需要3D滤波器的3D图像中执行卷积。

回到CNN,它包含不同的部分或节点层。每个节点层都有一个阈值和权重,并相互连接。一旦超过阈值限制,数据就会被发送到该网络的下一层。

这些层可以执行操作来更改数据以学习相关特征。此外,这些操作重复数百个不同的层,这些层不断学习检测图像的其他特征。

CNN的组成部分包括:

  • 输入层:这是进行输入的地方,例如图像。它将是一个具有定义的高度、宽度和深度的3D对象。
  • 一个或多个隐藏层或特征提取阶段:这些层可以是卷积层、池化层和全连接层。
  • 输出层:在这里,将显示结果。

图像通过卷积层转换为特征图或激活图。在对输入进行卷积之后,各层对图像进行卷积并将结果传递给后续层。

CNN将在特征提取阶段执行许多卷积和池化技术来检测特征。例如,如果您输入一只猫的图像,CNN将识别它的四条腿、颜色、两只眼睛等。

接下来,CNN中的全连接层将充当提取特征的分类器。根据深度学习算法对图像的预测,这些层将产生结果。

CNN的优势

更高的准确度

与不使用卷积的常规神经网络相比,CNN可以提供更高的准确度。当任务涉及大量数据、视频和图像识别等时,CNN尤其有用。它们可以产生高度精确的结果和预测;因此,它们在不同部门的应用正在增加。

计算效率

CNN提供了比其他常规神经网络更高的计算效率。这得益于卷积过程的应用。它们还使用降维和参数共享来使模型更快、更容易部署。这些技术还可以优化以在不同的设备上工作,无论是您的智能手机还是笔记本电脑。

特征提取

CNN可以轻松学习图像的特征,而无需手动工程。您可以利用预训练的CNN,并通过在处理新任务时向其提供数据来调整权重,CNN将无缝地适应新任务。

CNN的应用

CNN被广泛应用于许多不同行业的用例。CNN的一些实际应用包括:

图像分类

CNN广泛用于图像分类。它们可以识别有价值的特征并识别给定图像中的物体。因此,它被应用于医疗保健等领域,特别是MRI。此外,该技术还用于手写数字识别,这是CNN在计算机视觉中最早的用例之一。

物体检测

CNN可以实时检测图像中的物体,并对它们进行标记和分类。因此,该技术在自动驾驶汽车中得到广泛应用。它还使智能家居和行人能够识别车主的面部。此外,它还被应用于人工智能驱动的监控系统来检测和标记物体。

视听匹配

CNN在视听匹配方面的帮助,有助于改进Netflix、YouTube等视频流媒体平台,也能满足“埃尔顿·约翰的情歌”等用户需求。

语音识别

除了图像,CNN还有助于自然语言处理(NLP)和语音识别。谷歌在其语音识别系统中使用CNN就是一个真实的例子。

对象重建

CNN可用于对数字环境中的真实对象进行3D建模。CNN模型也可以使用图像创建3D人脸模型。此外,CNN可用于构建生物技术、制造、生物技术和建筑领域的数字双胞胎。

CNN在不同领域的使用包括:

  • 医疗保健:计算机视觉可用于放射学,以帮助医生更有效地检测人体内的癌性肿瘤。
  • 农业:网络可以利用来自LSAT等人造卫星的图像,并利用这些数据对肥沃的土地进行分类。这也有助于预测土地肥力水平并制定有效策略以最大限度地提高产量。
  • 营销:社交媒体应用程序可以在某人的个人资料上张贴的图片中推荐某人。这有助于您在相册中标记人物。
  • 零售:电子商务平台可以使用视觉搜索来帮助品牌推荐目标客户想要购买的相关商品。
  • 汽车:CNN被应用于汽车,以提高乘客和驾驶员的安全性。它通过车道线检测、物体检测和图像分类等功能来实现这一目标。这也使得自动驾驶汽车的世界进一步发展。

学习CNN的资源

课程:

Coursera开设了关于CNN的课程,您可以考虑参加。本课程将教您计算机视觉多年来的发展历程以及CNN在现代世界中的一些应用。

书籍:

您可以阅读以下书籍和讲座,以了解更多关于CNN的信息:

  • 《神经网络与深度学习》:本书涵盖了深度学习和神经网络的模型、算法以及相关理论。
  • 《计算机视觉卷积神经网络指南》:本书将教您CNN的应用及其概念。
  • 《Tensorflow实践卷积神经网络》:借助本书,您可以使用Python和TensorFlow解决计算机视觉中的各种问题。
  • 《高级深度学习应用》:本书将帮助您了解CNN、深度学习及其高级应用,包括目标检测。
  • 《卷积神经网络和循环神经网络》:本书将教您关于CNN和RNN以及如何构建这些网络。

结论

卷积神经网络是人工智能、机器学习和深度学习领域的新兴领域之一。它在当今世界的几乎所有领域都有着各种各样的应用。鉴于其不断增长的应用,预计它将进一步扩展,并在解决现实世界的问题方面发挥更大的作用。