探索卷积神经网络(CNNs)的世界,它们在深度学习和计算机视觉任务中的作用,以及使用它们的优点和缺点。在这份全面的指南中,了解不同类型的CNN,它们的应用,以及它们的潜在局限性。
什么是深度学习中的卷积神经网络?
卷积神经网络用于计算机视觉任务中,它采用卷积层从输入数据中提取特征。
卷积神经网络(CNNs)是一类深度神经网络,常用于计算机视觉任务,如图像和视频识别、物体检测和图像分割。
神经网络是由相互连接的节点组成的机器学习模型,这些节点处理信息以做出决策,而深度神经网络有多个隐藏层,使它们能够为各种任务学习复杂的表示。它们都模仿了人脑的结构和功能。计算机视觉是人工智能(AI)的一个领域,重点是使机器能够解释和理解来自世界的视觉数据。
尽管图像和视频识别涉及对照片或视频中的物体、场景或动作进行分类或识别,但物体检测涉及在图像或视频中定位某些东西。图像分割涉及将图像划分为有意义的片段或区域,以便进一步分析或处理。
CNNs使用几个卷积层来自动从输入数据中提取特征。输入数据经过卷积层的过滤,产生的特征图被传递到进一步的处理层。卷积层是CNNs的构建模块,对输入数据进行过滤和特征提取操作。
滤波是用滤波器对图像进行卷积以提取特征的过程,而特征提取则是从卷积的图像中识别相关模式或特征的过程。
除了卷积层之外,CNNs中还经常包括汇集层,它对卷积层的输出进行降样,以降低计算成本并提高网络对新输入的概括能力。其他典型的层包括归一化层,它有助于降低过拟合度并提高网络的性能,以及全连接层,它被用于分类或预测任务。
许多应用,如面部识别、自动驾驶汽车、医学图像分析和自然语言处理(NLP),已广泛使用CNNs。它们还被用来在图像分类任务中取得最先进的结果,如ImageNet挑战。
卷积神经网络是如何工作的?
卷积神经网络的工作原理是通过卷积层从输入数据中提取特征,并通过全连接层学习对输入数据进行分类。
卷积神经网络的工作步骤包括以下内容:
- 输入层: 输入层–CNN的第一层–将原始数据作为输入,如图像或视频,并将其发送到下一层进行处理。
- 卷积层: 特征提取发生在卷积层。该层应用一系列的过滤器或内核,从输入数据中提取特征,如边缘、角落和形状。
- ReLU层: 为了给输出提供非线性并提高网络的性能,在每个卷积层之后经常实施整顿线性单元(ReLU)激活函数。如果输入是正的,ReLU直接输出,如果是负的,则输出零。
- 池化层: 卷积层的特征图是由池化层形成的,它降低了其维度。最大池化是一种常用的技术,在特征图的每个补丁中的最大值被作为输出。
- 全连接层: 全连接层取池化层的扁平化输出,并应用一组权重来产生最终输出,可用于分类或预测任务。
下面是一个关于CNNs如何对猫和狗的图片进行分类的说明:
- 第1步:输入层接收狗或猫的3通道(RGB)图像和其他原始图像数据。3通道(RGB)是一种标准格式,用于在神经网络中表示彩色图像,每个像素由三个值表示,分别代表红、绿和蓝颜色通道的强度。
- 第2步:卷积层对输入图像应用一系列的过滤器,以提取边缘、角落和形状等特征。
- 第3步:由于ReLU层的作用,卷积层的输出变得非线性。
- 第4步:通过取每个特征图斑中的最大值,池化层降低了卷积层创建的特征图的维度。
- 第5步:许多卷积层和池化层被堆叠起来,从输入图像中逐步提取复杂的特征。
- 第6步:扁平化层将前一层的输出转换为一维或一维矢量(一串排列在单行或单列的数字,每个代表一个特征或特性)。然后,一个全连接层接收最后一个汇集层的扁平化输出,并应用一组权重产生最终输出,识别图像是猫还是狗。
CNN使用一组标记的图像进行训练,在训练过程中调整过滤器和全连接层的权重,以尽量减少预测和实际标签之间的误差。一旦训练完成,卷积神经网络就能准确地对新的、未见过的猫和狗的图像进行分类。
卷积神经网络的类型有哪些?
存在几种类型的卷积神经网络,包括传统的CNNs、递归神经网络、完全卷积网络和空间变换网络–等等。
传统的CNNs
传统的CNNs,也被称为 “vanilla” CNNs,由一系列的卷积层和池化层组成,然后是一个或多个全连接层。如前所述,该网络中的每个卷积层都运行一系列的卷积与可教的过滤器集合,从输入图像中提取特征。
Lenet-5架构是最早用于手写数字识别的有效CNNs之一,说明了一个传统的CNNs。它有两套卷积层和池化层,紧随两个全连接层。Lenet-5架构证明了CNNs在图像识别方面的效率,这也使其在计算机视觉任务中得到更广泛的应用。
递归神经网络
递归神经网络(RNN)是一种神经网络,它可以通过跟踪先前输入的背景来处理连续的数据。递归神经网络可以处理不同长度的输入,并产生依赖于先前输入的输出,这与典型的前馈神经网络不同,后者只按固定顺序处理输入数据。
例如,RNNs可以在文本生成或语言翻译等NLP活动中得到利用。递归神经网络可以在两种不同语言的句子对上进行训练,以学习在这两种语言之间进行翻译。
递归神经网络一次处理一个句子,根据每一步的输入句子和前面的输出,产生一个输出句。由于RNN一直在跟踪过去的输入和输出,所以即使是复杂的文本也能产生正确的翻译。
全卷积网络
全卷积网络(FCNs)是一种神经网络架构,通常用于计算机视觉任务,如图像分割、物体检测和图像分类。FCNs可以使用反向传播进行端到端的训练,以对图像进行分类或分割。
逆向传播是一种训练算法,计算损失函数相对于神经网络权重的梯度。一个机器学习模型预测给定输入的预期输出的能力由损失函数来衡量。
FCNs完全基于卷积层,因为它们没有任何全连接层,这使得它们比传统的卷积神经网络更具适应性和计算效率。一个接受输入图像并输出图像中物体的位置和分类的网络是FCN的一个例子。
空间变换网络
空间变换网络(STN)被用于计算机视觉任务中,以提高网络所学特征的空间不变性。神经网络识别图像中的图案或物体而不受其地理位置、方向或比例影响的能力被称为空间不变性。
一个在进一步处理输入图像之前将学习到的空间转换应用于输入图像的网络是STN的一个例子。该转换可用于对齐图像中的物体,纠正透视变形或执行其他空间变化以提高网络在特定工作上的性能。
变换是指以某种方式修改图像的任何操作,如旋转、缩放或裁剪。对齐指的是确保图像中的物体以一致和有意义的方式居中、定向或定位的过程。
当图像中的物体由于拍摄角度或距离而出现歪斜或变形时,就会出现透视变形。对图像进行几种数学变换,如仿生变换,可以用来纠正透视失真。仿射变换保留了平行线和各点之间的距离比率,以纠正透视失真或图像中的其他空间变化。
空间变换是指对图像的空间结构的任何修改,如翻转、旋转或平移图像。这些变化可以增加训练数据或解决任务中的具体挑战,如照明、对比度或背景变化。
CNNs的优势是什么?
由于CNNs的优势,包括翻译不变性、参数共享、分层表示、对变化的适应性和端到端训练,CNNs在计算机视觉任务中是首选。
卷积神经网络有几个优点,使它们成为各种计算机视觉任务的有吸引力的选择。它们的主要优势之一是翻译不变性,这是CNNs的一个特点,使它们能够识别图像中的物体,而不管其位置如何。卷积层是通过对完整的输入图像应用过滤器来实现这一点的,这样网络就可以学习具有翻译不变性的特征。
使用参数共享,即在输入图像的所有区域共享同一组参数,是CNNs的另一个好处。因此,网络的参数较少,可以更好地概括新的数据,这在处理巨大的数据集时是至关重要的。
CNNs还可以学习输入图像的分层表示,上层学习更复杂的特征,如物体碎片和形状,而下层则学习更简单的元素,如边缘和纹理。对于像物体检测和分割这样具有挑战性的任务,这种分层模型使网络能够学习许多抽象层次上的特征。
CNNs适合于现实世界的应用,因为它们对输入图像中的光照、颜色和微小的扭曲的变化都有弹性。最后,卷积神经网络可以进行端到端的训练,允许梯度下降同时优化网络的所有参数,以获得性能和更快的收敛。梯度下降是一种优化算法,用于通过最小化负梯度方向的损失函数来迭代调整模型参数。
CNNs的缺点是什么?
CNNs有一些缺点,如训练时间长,需要大量的标记数据集,容易出现过拟合的情况。网络的复杂性也会影响性能。然而,CNNs仍然是计算机视觉中广泛使用和有效的工具,包括物体检测和分割,尽管在像NLP这样需要上下文知识的任务中存在局限。
卷积神经网络有几个缺点,会使它们在一些机器学习应用中难以使用。例如,CNNs的训练可能需要一段时间,特别是对于大型数据集,因为CNN的计算成本很高。此外,创建CNNs架构可能具有挑战性,需要对人工神经网络的基本思想有一个全面的理解。
另一个缺点是,CNNs需要大量的标记数据来有效训练。在可用数据很少的情况下,这可能是一个严重的制约因素。在需要更多上下文知识的任务中,如NLP,CNNs也不总是成功的,即使它们在图像识别任务中相当出色。
CNNs设计中采用的层数和种类会影响性能。例如,添加更多的层可能会提高准确性,但同时也会增加网络的复杂性和计算成本。深度学习的CNN架构也很容易受到过度拟合的影响,这种情况发生在网络对训练数据过于专门化,而在新的、未经训练的数据上表现不佳。
尽管有这些缺点,CNNs仍然是人工神经网络领域的深度学习和机器学习算法的一个广泛使用和非常有效的工具,包括分割、物体检测和图像识别。也就是说,CNNs仍将是计算机视觉中的一个重要角色。
小结
卷积神经网络(CNNs)是一类深度神经网络,主要用于计算机视觉任务,如图像和视频识别、物体检测和图像分割。CNNs由几个卷积层组成,可以自动从输入数据中提取特征。它们具有翻译不变性、参数共享、分层表示、对变化的复原力和端到端训练等优点。尽管它们的缺点包括冗长的训练时间,需要大量的标记数据集,以及容易过度拟合,但CNNs仍然是计算机视觉任务中广泛使用的有效工具。