卷积神经网络(CNN)是一种机器学习模型,具体来说,它是一种深度学习算法,特别适合分析视觉数据。CNN通常用于处理图像和视频任务。由于CNN在识别物体方面的高效性,它们常被用于计算机视觉任务,例如图像识别和物体识别,常见的应用场景包括自动驾驶汽车、人脸识别和医学图像分析。
早期的神经网络通常需要逐步处理视觉数据,采用分段或低分辨率的输入图像。CNN对图像识别的全面方法使其在一系列图像相关任务中优于传统神经网络,在语音和音频处理方面的优势则相对较小。
CNN架构的灵感来自人脑的连接模式,特别是视觉皮层,它在感知和处理视觉刺激中起着重要作用。CNN中的人工神经元排列得当,以有效地解释视觉信息,使这些模型能够处理整个图像。
CNN还利用线性代数的原理,尤其是卷积运算,从图像中提取特征并识别模式。尽管CNN主要用于处理图像,但也可以调整以处理音频和其他信号数据。
本文为
什么是企业人工智能?企业的完整指南
- 还包括:
- 人工智能如何推动收入?这里有10种方法
- 8个人工智能无法取代的工作及原因
- 2024年十大人工智能和机器学习趋势
卷积神经网络是如何工作的?
CNN具有一系列层,每一层检测输入图像的不同特征。根据其预期用途的复杂性,CNN可以包含数十、数百,甚至在少数情况下,数千层,每一层都在前一层的输出基础上构建,以识别详细的模式。
该过程开始时,使用一个设计用于检测特定特征的滤波器在输入图像上滑动,这个过程称为卷积运算,因此得名卷积神经网络。这个过程的结果是一个特征图,突出显示了图像中检测到的特征的存在。这个特征图随后作为下一层的输入,使CNN能够逐步建立图像的层次表示。
初始滤波器通常检测基本特征,例如线条或简单纹理。后续层的滤波器则更复杂,将早期识别的基本特征结合起来,以识别更复杂的模式。例如,在初始层检测到边缘后,深层可以利用该信息开始识别形状。
在这些层之间,网络采取措施减少特征图的空间维度——高度和宽度,以提高效率和准确性。在CNN的最后几层中,模型根据前一层的输出做出最终决策,例如对图像中的物体进行分类。
解构CNN的架构
CNN通常由多个层组成,可以大致分为三组:卷积层、池化层和全连接层。随着数据通过这些层的传递,CNN的复杂性增加,这使得CNN能够逐步识别图像的更大部分以及更抽象的特征。
CNN由三个核心层组成:卷积层、池化层和全连接层。
卷积层
卷积层是CNN的基本部分,也是大多数计算发生的地方。该层使用滤波器或内核——一个小的权重矩阵——在输入图像的感受野上移动,以检测特定特征的存在。
该过程开始时,内核在图像的宽度和高度上滑动,最终在多个迭代中遍历整个图像。在每个位置,计算内核权重与图像中对应像素值之间的点积。这将输入图像转换为一组特征图或卷积特征,每个特征图表示在图像不同点上某一特征的存在和强度。
CNN通常包括多个堆叠的卷积层。通过这种分层架构,CNN逐步解释原始图像数据中包含的视觉信息。在早期层中,CNN识别基本特征,例如边缘、纹理或颜色。更深层从前一层的特征图中获取输入,使其能够检测更复杂的模式、物体和场景。
池化层
CNN的池化层是紧随卷积层之后的一个关键组成部分。与卷积层类似,池化层的操作也涉及在输入图像上进行滑动处理,但其功能有所不同。
池化层的目的是减少输入数据的维度,同时保留关键信息,从而提高网络的整体效率。这通常通过下采样来实现,即减少输入中数据点的数量。
对于CNN而言,这通常意味着减少用于表示图像的像素数量。最常见的池化形式是最大池化,它在特定窗口内保留最大值——即内核大小——同时丢弃其他值。另一种常见的技术是平均池化,它采用类似的方法,但使用平均值而不是最大值。
下采样显著减少了整体参数和计算的数量。除了提高效率外,这增强了模型的泛化能力。具有更高特征的较少复杂模型通常不太容易过拟合——过拟合是指模型学习噪声和训练数据中过于特定的细节,从而对新、未见过的信息的泛化能力产生负面影响。
减少表示的空间大小确实有潜在的缺点,即某些信息的丢失。然而,仅学习输入数据中最显著的特征通常对于物体检测和图像分类等任务来说是足够的。
全连接层
全连接层在CNN的最后阶段起着关键作用,负责根据前一层提取的特征对图像进行分类。“全连接”一词意味着一层中的每个神经元都与下一层中的每个神经元相连。
全连接层整合了在前面的卷积和池化层中提取的各种特征,并将其映射到特定类别或结果。来自前一层的每个输入都连接到全连接层中的每个激活单元,使CNN在做出最终分类决策时能够同时考虑所有特征。
并非所有CNN中的层都是全连接的。由于全连接层具有许多参数,在整个网络中应用这种方法会造成不必要的密度,增加过拟合的风险,并使网络在内存和计算方面的训练成本高昂。限制全连接层的数量在计算效率和泛化能力与学习复杂模式的能力之间取得平衡。
附加层
卷积层、池化层和全连接层被视为CNN的核心层。然而,CNN可能还有其他附加层:
- 激活层是CNN中常见的附加层,也同样重要。激活层使非线性成为可能——这意味着网络可以学习更复杂(非线性)模式。这对于解决复杂任务至关重要。该层通常位于卷积层或全连接层之后。常见的激活函数包括ReLU、Sigmoid、Softmax和Tanh函数。
- 丢弃层是另一种附加层。丢弃层的目标是在训练期间通过丢弃神经元来减少过拟合。这减少了模型的规模并有助于防止过拟合。
CNN与传统神经网络的比较
一种更传统的神经网络形式称为多层感知器,完全由全连接层组成。这些神经网络虽然多功能,但并未针对空间数据(如图像)进行优化。当使用它们处理更大、更复杂的输入数据时,这可能会产生许多问题。
对于较小的图像和较少的色彩通道,传统神经网络可能会产生令人满意的结果。但是,随着图像大小和复杂性的增加,所需的计算资源也随之增加。另一个主要问题是过拟合的倾向,因为全连接架构不会自动优先考虑最相关的特征,更容易学习噪声和其他无关信息。
CNN与传统神经网络在几个关键方面有所不同。重要的是,在CNN中,并非每一层的每个节点都与下一层的每个节点相连。由于卷积层的参数比传统神经网络的全连接层少,因此CNN在图像处理任务上表现得更高效。
CNN使用一种称为参数共享的技术,使其在处理图像数据时更加高效。在卷积层中,使用相同的滤波器(固定权重)扫描整个图像,与传统神经网络的全连接层相比,显著减少了参数数量。池化层进一步减少了数据的维度,以提高CNN的整体效率和泛化能力。
CNN与RNN的比较
递归神经网络(RNN)是一种深度学习算法,旨在处理序列或时间序列数据。它们能够识别数据的顺序特征,并利用模式预测下一个可能的情况。RNN常用于语音识别和自然语言处理(NLP)。
RNN和CNN都是深度学习算法的形式。它们在人工智能(AI)领域都具有重要的发展意义。尽管它们的缩写相似,但它们在擅长的任务上各有不同。RNN非常适合用于NLP、情感分析、语言翻译、语音识别和图像字幕生成等任务,在这些任务中,数据的时间序列特别重要。相比之下,CNN主要专注于处理空间数据,例如图像。它们在图像相关任务(如图像识别、物体分类和模式识别)方面表现出色。
它们的架构也不同。CNN使用前馈神经网络,利用滤波器和多种层,而RNN则将结果反馈到网络中。
尽管CNN和RNN都是深度学习算法的一种,但每种都有其独特的功能。
使用CNN进行深度学习的好处
深度学习是机器学习的一个子类别,使用多层神经网络,相较于简单的单层网络,提供了多种好处。特别是,CNN作为深度学习过程提供了多种优势:
- 在计算机视觉任务中表现强劲。CNN在计算机视觉任务(如图像识别和分类)中尤其有用,因为它们设计用于学习特征的空间层次,通过在早期层捕捉基本特征和在更深层捕捉复杂模式。
- 在自动化过程中表现强劲。CNN的一个显著优势是其自动特征提取或特征学习的能力。这消除了手动提取特征的需要,这在历史上是一个劳动密集型和复杂的过程。
- 可重用。CNN还非常适合迁移学习,即对预训练模型进行微调以适应新任务。这种可重用性使CNN多功能且高效,特别适合于训练数据有限的任务。在现有网络的基础上,机器学习开发人员能够在各种现实场景中部署CNN,同时最大限度地降低计算成本。
- 高效。正如上文所述,得益于参数共享,CNN比传统的全连接神经网络在计算上更高效。由于其精简的架构,CNN可以在各种设备上部署,包括移动设备(如智能手机)和边缘计算场景。
使用CNN的缺点
然而,使用CNN可能会面临以下困难:
- 训练困难。训练CNN需要大量的计算资源,并可能需要广泛的调整。
- 所需训练数据量大。CNN通常需要大量标记数据,以便训练到可接受的性能水平。
- 可解释性。可能很难理解CNN是如何得出特定预测或输出的。
- 过拟合。如果没有丢弃层,CNN可能会变得容易过拟合。
卷积神经网络的应用
由于处理和解释视觉数据是如此常见的任务,CNN在医疗、汽车、社交媒体和零售等多个领域有广泛的现实应用。
CNN使用最常见的领域包括:
- 医疗。在医疗行业,CNN用于辅助医学诊断和成像。例如,CNN可以分析医学图像,如X光片或病理切片,以检测指示疾病的异常,从而帮助诊断和治疗规划。
- 汽车。汽车行业在自动驾驶汽车中使用CNN,通过解释摄像头和传感器数据来导航环境。CNN在非自动驾驶汽车的AI驱动功能中也很有用,例如自动巡航控制和停车辅助。
- 社交媒体。在社交媒体平台上,CNN被用于各种图像分析任务。例如,一家社交媒体公司可能会使用CNN建议在照片中标记的人,或标记可能冒犯的图像以进行审核。
- 零售。电子商务零售商在视觉搜索系统中使用CNN,让用户可以使用图像而不是文本搜索产品。在线零售商还可以利用CNN来改善推荐系统,通过识别与购物者感兴趣的产品在视觉上相似的产品。
- 虚拟助手。尽管CNN最常用于处理图像数据,但虚拟助手是将CNN应用于音频处理问题的一个好例子。CNN可以识别口语关键词,并帮助解释用户的命令,增强虚拟助手理解和响应用户的能力。
CNN在许多不同的情况下都可以发挥作用。了解更多关于CNN和其他类型深度学习方法在医疗领域的应用。
此内容最后更新于2024年11月