卷积神经网络(Convolutional Neural Network,简称CNN)是一类特别适用于处理具有网格结构数据的深度学习模型,例如图像数据。
CNN在计算机视觉、图像分类、对象检测等领域表现尤为出色。
CNN 的基本构成
卷积神经网络主要由以下层组成。
1. 卷积层
卷积层是 CNN 的核心组件,用于提取输入数据的特征。
卷积层通过滤波器(卷积核)在输入数据上滑动,进行卷积操作,生成特征图(Feature Map)。每个卷积核负责捕捉图像的不同特征,如边缘、纹理等。
- 卷积核,一个小的矩阵,通常为 3x3、5x5 等,它在图像上滑动,对应位置的像素进行逐元素相乘并求和。
- 步幅(stride),卷积核在输入图像上滑动的步长,步幅越大,输出的特征图尺寸越小。
- 填充(padding),为保持卷积后特征图的尺寸,可以在输入图像边缘添加额外的像素。
下面显示了 CNN 如何执行步幅和填充等于 1 的卷积操作。
2. 池化层(Pooling Layer)
池化层通常用于降低特征图的空间尺寸(高度和宽度),减少参数数量和计算复杂性,同时使特征检测更加鲁棒。
最常见的池化操作是最大池化和平均池化。
- 最大池化,从特征图的每个窗口取最大值
- 平均池化,从特征图的每个窗口取平均值
3. 全连接层(Fully Connected Layer)
在多个卷积和池化层之后,网络通常包含一个或多个全连接层,用于基于提取的特征进行最终的分类或其他预测任务。
这些层将扁平化的特征图作为输入。
下面,我们通过一个具体的案例来进行说明,假设我们创建一个卷积神经网络模型,该模型用于确定图像是否代表 X。
对于一张图像来说,我们都知道它是由一个个像素组成的。
由于我们的 X 是一张简单的黑白图像,我们将每个像素指定为 1(代表黑色像素)或 0(代表白色像素)。