卷积神经网络¶
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习的架构,特别适用于处理具有网格拓扑结构的数据,如图像(2D网格)和音频(1D序列),它在计算机视觉、图像和视频识别、图像分类、医学图像分析等领域中非常流行且有效。
1. 卷积层¶
卷积层通过一组可学习的过滤器(或称核)对输入数据进行滤波操作,每个过滤器负责从原始图像数据中提取特定的特征。当过滤器在输入数据上滑动(或卷积)时,它计算过滤器与输入数据的局部区域之间的点积,生成输出中的一个激活值。这个过程在整个输入数据上重复进行,形成特征图(Feature Map)。
参数共享 和 局部连接 是 CNN 中使用的两个原则。特征图中的所有神经元共享权重,这称为参数共享。局部连接是指每个神经元仅连接到输入图像的一部分(与所有神经元完全连接的神经网络相反),这减少了系统中的参数数量并加快了计算速度。
2. 填充和步幅¶
在卷积神经网络(CNN)中,填充(Padding)和 步幅(Stride)是两个关键的参数,它们影响卷积层如何在输入数据上应用滤波器。这两个参数对输出特征图的尺寸、模型的 感受野 大小以及总体网络结构的性能有重要作用。
填充的工作原理是增加卷积神经网络的处理区域。卷积核是一个神经网络过滤器,它在图片中移动,扫描每个像素并将数据转换为更小或更大的格式。将填充添加到图像帧中,通过为卷积核提供更多空间来覆盖图像来帮助卷积核处理图像。
步长决定滤波器如何在输入矩阵上进行卷积,即移动多少像素。当步长设置为 1 时,过滤器一次移动一个像素,当步长设置为 2 时,过滤器一次移动两个像素。步幅值越小,输出越小,反之亦然。
3. 池化层¶
池化层用于降低特征图的空间尺寸,从而减少参数数量和计算复杂度,同时使特征检测更加鲁棒。常见的池化操作包括最大池化(取区域内的最大值)和平均池化(计算区域内的平均值)。
4. 全连接层(Fully Connected Layer)¶
在卷积和池化层提取并组合特征后,全连接层用于对这些特征进行分类或回归分析。全连接层的每个神经元都与前一层的所有激活值相连,其输出通过权重总和计算得到。