AI red teamer (人工智能红队)系列18 - 人工智能基础 - 卷积神经网络
卷积神经网络
卷积神经网络
(CNNs
)是一种专门用于处理网格状数据(如图像)的神经网络。它们擅长捕捉空间层次特征,因此在图像识别、物体检测和图像分割等任务中非常有效。
典型的卷积神经网络(CNNs)由三种主要类型的层组成:
卷积层:
这些是CNN
的核心构件。它们使用一组可学习的滤波器对输入数据进行卷积。每个滤波器在输入数据上滑动,计算滤波器权重与每个位置的输入值之间的点积。这一过程可提取输入数据的特征,如边缘、角落和纹理。卷积层的输出是特征图
,它突出显示了输入中学习到的特征。每个层中使用多个过滤器来检测不同类型的特征。池化层:
这些层降低了特征图的维度,从而降低了网络的计算成本,并减少了过度拟合的可能性。它们对每个特征图进行独立操作,通过提取小窗口内的最大值或平均值来降低采样率。常见的池化类型包括最大池化
和平均池化
。全连接层:
这些层与MLPs
中的层类似。它们将一层中的每个神经元与下一层中的每个神经元连接起来。这些层通常用于网络的末端,以执行高级推理并根据提取的特征进行预测。
卷积层和汇集层交替堆叠,形成一个特征层次。最后池化层的输出会被扁平化,并输入一个或多个全连接层进行分类或回归。
这种分层结构可让 CNNs 从图像数据中学习复杂的模式和表征。卷积层提取局部特征,池化层降低采样率并汇总这些特征,全连接层结合高级特征进行预测。
特征图和分层特征学习
在 CNNs
中,特征图
由卷积层生成。每个卷积滤波器都会生成相应的特征图,突出显示输入图像中特定视觉模式的位置和强度。例如,一个滤波器可以检测边缘,另一个滤波器可以检测角落,还有一个滤波器可以检测纹理。
神经网络在训练过程中通过调整滤波器权重来学习这些特征。随着它接触到更多的数据,它将这些滤波器细化,使其能够检测到越来越复杂的视觉元素。
这种学习过程是分层次的:
初始层:
这些层倾向于学习简单、低级的特征,如边缘和 方块。例如,卷积层可以检测图像中的垂直或水平边缘。中间层:
随着神经网络的发展,后续层将结合这些基本特征来检测更复杂的模式。例如,一个中间层可能会通过结合前几层的边缘检测来识别角落。最深层:
这些层可学习高级特征,如形状和物体部件。例如,在图像识别任务中,深度卷积层可以识别车轮、车窗或整辆汽车。
举例:手写数字识别
为了说明这种分层特征提取,以手写数字 "7"举例。输入图像经过多个卷积层处理,每个卷积层提取不同层次的特征。
第一个卷积层侧重于边缘和边界等低级特征。例如,它可以检测构成数字 "7 "的垂直和水平边缘。
在这张照片中,可以清楚地看到数字 7 的边界和边缘。滤镜突出了颜色的急剧变化,这与数字的边界相对应。
第二层卷积层以第一层提取的特征为基础。它结合这些边缘检测来识别更复杂的模式,例如数字的内部结构。
在这里,可以看到数字 7 的内部而不仅仅是边缘。滤镜检测到了构成数字的连续线条和曲线,从而提供了更细致的表现。
这种分层特征提取允许 CNNs
以结构化和高效的方式表示复杂的视觉信息。在前几层所学特征的基础上,更深层次的特征可以捕捉到输入数据中越来越抽象和有意义的表征。这就是为什么 CNN
在需要理解复杂视觉场景的任务(如图像分类、物体检测和分割)中如此有效的原因。
图像识别
为了说明这一过程,以一个图像识别任务为例,在该任务中,要训练一个 CNN
来对不同动物的图像进行分类:
输入层:
输入是原始图像,通常以 3D 张量(高度、宽度、通道)表示。卷积层:
第 1 层:
检测边缘和简单纹理等低级特征。第 2 层:
结合这些功能,检测更复杂的模式,如拐角和曲线。第 3 层:
识别更高层次的结构,如形状和对象部件。
池化层:
降低特征图的空间维度,从而降低网络的计算成本,并使其对输入图像的微小偏移具有更强的健壮性。全连接层:
- 对最后汇集层的输出结果进行扁平化处理。
- 根据提取的特征进行高级推理和预测,例如将图像分类为猫、狗或鸟。
通过堆叠这些层,CNNs
可以学习识别复杂的视觉模式并做出准确的预测。这种分层神经网络结构是它们在各种计算机视觉任务(图像识别,特别是验证码识别)中表现优秀的关键。
CNNs 的数据假设
卷积神经网络
(CNNs
)已经被证明是图像识别和其他计算机视觉任务的强大工具,但其有效性依赖于对输入数据的某些假设。
网格状数据结构
CNNs 本身就是为处理网格结构的数据而设计的。这种网格状结构是 CNNs 处理信息的基础。常见的例子包括:
图像:
以二维网格表示,其中每个网格单元包含一个像素值。尺寸通常包括高度、宽度和通道(如红、绿、蓝)。视频:
以三维网格表示,通过添加时间维度扩展了图像概念。这就形成了高度、宽度、时间和通道结构。
网格结构非常重要,因为它允许 CNNs 利用局部卷积神经网络操作。
特征的空间层次结构
CNNs在以下假设下运行:数据中的特征是有层次组织的。
较低层次的特征
,如边缘、角落或纹理,是简单的局部特征。它们通常在网络的早期层中捕获。高级特征
更加复杂和抽象,建立在这些低级特征之上。它们代表更大的模式、形状甚至整个物体,并在卷积神经网络的更深层进行检测。
这种分层特征提取是 CNNs 的一个显著特点,它使 CNNs 能够学习越来越复杂的输入数据表示。
特征局部性
CNNs 利用了特征局部性原则,即假设数据点之间的相关关系主要局限于局部邻域。例如:
- 在图像中,相邻像素比相距甚远的像素更有可能相互关联并形成有意义的图案。
- 卷积滤波器是 CNNs 的核心构件,其设计旨在关注输入的小局部区域(称为感受野)。这样,卷积神经网络就能有效捕捉这些局部依赖关系。
特征静止性
另一个重要假设是特征静止性,这意味着无论特征在输入数据中的位置如何,其意义或重要性都保持一致。
- 这意味着,一个特征(如垂直边缘)无论在图像的左边、右边还是中间,都应被识别为相同的特征。
- CNNs 通过卷积层中的权重共享来实现这一目标。相同的滤波器适用于输入的所有位置,从而使卷积神经网络能够检测数据中任何位置的相同特征。
足够且归一化的数据
CNNs的有效训练取决于两个实际考虑因素:
足够的数据:
CNNs 和大多数深度学习模型一样,都是数据饥渴型的。它们需要大量的标注数据集来学习复杂的模式并泛化到未见过的数据。数据不足会导致过拟合,即模型在训练数据上表现良好,但在新数据上表现不佳。归一化的数据:
输入数据应归一化为标准范围(例如,将像素值缩放至 0 和 1 之间,或-1 和 1 之间)。这样可以防止输入值的巨大变化干扰学习过程,从而确保稳定高效的训练。
小结
在图像分类、物体检测和自然语言处理等各种任务中,遵循这些假设已被证明是非常成功的。了解这些假设对于设计、训练和部署有效的 CNNs 模型非常重要。
Comments NOTHING