卷积神经网络用于计算机视觉任务,它使用卷积层从输入数据中提取特征。卷积神经网络 (CNN) 是一类深度神经网络,常用于图像和视频识别、目标检测和图像分割等计算机视觉任务。

CNN 使用多个卷积层自动从输入数据中提取特征。输入数据由卷积层进行过滤,生成的特征图传递到进一步的处理层。卷积层是 CNN 的构建,可对输入数据执行过滤和特征提取操作。滤波是用滤波器对图像进行卷积以提取特征的过程,而特征提取是从卷积图像中识别相关模式或特征的过程。除了卷积层之外,CNN 中还经常包含池化层,它对卷积层的输出进行下采样以降低计算成本并增加网络泛化到新输入的能力。其他典型层包括有助于降低过度拟合和增强网络性能的归一化层,以及用于分类或预测任务的全连接层。
许多应用程序,例如面部识别、自动驾驶汽车、医学图像分析和自然语言处理 (NLP),都广泛使用了 CNN。它们还被用于在图像分类任务(例如 ImageNet 挑战)中取得最先进的结果。
卷积神经网络如何工作?

卷积神经网络的工作原理是通过卷积层从输入数据中提取特征,并通过全连接层学习对输入数据进行分类。卷积神经网络工作涉及的步骤包括:
输入层:输入层——CNN 中的第一层——将原始数据(如图像或视频)作为输入,并将其传输给到下一层进行处理。
卷积层:特征提取发生在卷积层中。该层应用一组过滤器或内核来从输入数据中提取边缘、角和形状等特征。
ReLU 层:为了为输出提供非线性并增强网络性能,在每个卷积层之后经常实施整流线性单元 (ReLU) 激活函数。如果输入为正,ReLU 直接输出输入,如果为负,则输出零。
池化层:卷积层的特征图由池化层组成,降低了它们的维度。最大池化是一种常用的技术,其中将特征图的每个补丁中的最大值作为输出。
全连接层:全连接层采用池化层的扁平化输出并应用一组权重来产生最终输出,可用于分类或预测任务。
卷积神经网络有哪些类型?
包括传统的 CNN、递归神经网络、完全卷积网络和空间变换网络等等。
传统 CNN:传统的 CNN,由一系列卷积层和池化层组成,然后是一个或多个完全连接的层。如前所述,该网络中的每个卷积层都运行一系列带有可训练过滤器集合的卷积,以从输入图像中提取特征。
递归神经网络:递归神经网络 (RNN) 是一种神经网络,可以通过跟踪先前输入的上下文来处理顺序数据。循环神经网络可以处理不同长度的输入并根据先前的输入产生输出,这与典型的前馈神经网络不同,前馈神经网络仅按固定顺序处理输入数据。
全卷积网络:全卷积网络 (FCN) 是一种神经网络架构,常用于图像分割、目标检测和图像分类等计算机视觉任务。可以使用反向传播对 FCN 进行端到端训练以对图像进行分类或分割。反向传播是一种训练算法,它计算损失函数相对于神经网络权重的梯度。机器学习模型预测给定输入的预期输出的能力由损失函数衡量。FCN 完全基于卷积层,因为它们没有任何完全连接的层,这使得它们比传统的卷积神经网络更具适应性和计算效率。接受输入图像并输出图像中对象的位置和分类的网络是 FCN 的一个示例。
空间变换网络:空间变换网络 (STN) 用于计算机视觉任务,以提高网络学习到的特征的空间不变性。神经网络独立于地理位置、方向或比例识别图像中的图案或对象的能力称为空间不变性。变换是指以某种方式修改图像的任何操作,例如旋转、缩放或裁剪。对齐是指确保图像中的对象以一致且有意义的方式居中、定向或定位的过程。
当图像中的对象由于拍摄图像的角度或距离而出现倾斜或变形时,就会发生透视失真。对图像应用多种数学变换,例如仿射变换,可用于校正透视失真。仿射变换保留平行线和点之间的距离比,以校正图像中的透视失真或其他空间变化。
空间变化是指对图像空间结构的任何修改,例如翻转、旋转或平移图像。这些变化可以增加训练数据或解决任务中的特定挑战,例如光照、对比度或背景变化。

CNN 的优点
CNN 在计算机视觉任务中是首选,因为它们具有平移不变性、参数共享、层次表示、变化弹性和端到端训练等优势。
卷积神经网络有几个优点,使它们成为各种计算机视觉任务的有吸引力的选择。它们的主要优势之一是平移不变性,这是 CNN 的一个特性,它允许它们识别图像中的物体,而不管它们的位置如何。卷积层用于通过对完整输入图像应用过滤器来实现这一点,以便网络可以学习平移不变的特征。
参数共享的使用,其中同一组参数在输入图像的所有区域共享,是 CNN 的另一个好处。因此,网络的参数更少,可以更好地泛化新数据,这在处理庞大的数据集时至关重要。
CNN 还可以学习输入图像的层次表示,上层学习更复杂的特征,如对象片段和形式,而下层学习更简单的元素,如边缘和纹理。对于目标检测和分割等具有挑战性的任务,这种分层模型使网络能够在多个抽象层次上学习特征。
CNN 适用于现实世界的应用,因为它们对输入图像中的光照、颜色和微小失真的变化具有弹性。最后,卷积神经网络可以进行端到端训练,允许梯度下降同时优化网络的所有参数以提高性能和加快收敛速度。梯度下降是一种优化算法,用于通过在负梯度方向上最小化损失函数来迭代调整模型参数。
CNN 的缺点
CNN 具有训练时间长、需要大量标记数据集以及容易过度拟合等缺点。网络复杂性也会影响性能。然而,尽管在 NLP 等需要上下文知识的任务中存在局限性,但 CNN 仍然是计算机视觉(包括对象检测和分割)中广泛使用且有效的工具。
卷积神经网络有几个缺点,可能使它们难以在某些机器学习应用程序中使用。例如,CNN 训练可能需要一段时间,尤其是对于大型数据集,因为 CNN 的计算成本很高。此外,创建 CNN 架构可能具有挑战性,需要透彻理解人工神经网络的基本思想。
另一个缺点是 CNN 需要大量标记数据才能有效训练。在可用数据很少的情况下,这可能是一个严重的限制。CNN 在需要更多上下文知识的任务(例如 NLP)上也并不总是成功,即使它们在图像识别任务上相当出色。
CNN 设计中使用的层数和种类会影响性能。例如,添加更多层可能会提高准确性,但同时会增加网络复杂性和计算成本。深度学习 CNN 架构也容易受到过度拟合的影响,当网络过度专注于训练数据并且在新的、未经训练的数据上表现不佳时,就会发生这种情况。
尽管存在这些缺点,CNN 仍然是人工神经网络领域中用于深度学习和机器学习算法(包括分割、对象检测和图像识别)的广泛使用且非常有效的工具。也就是说,CNN 仍将是计算机视觉领域的关键角色。