1 掌握卷积计算的基本过程
1.1 单通道单卷积核
如图3所示,现在有一张形状为[5,5,1]
的灰度图,我们需要用图3右边的卷积核对其进行卷积处理,同时再考虑到偏置的作用。计算过程如下:
1.2 单通道多卷积核
如下图所示,左边为输入矩阵,我们现在要用右边所示的两个卷积核对其进行卷积处理。
最后我们便能得到下图右边所示的,形状为[3,3,2]
的卷积特征图,其中2表示两个特征通道。
1.3 多通道单卷积核
对于多通道的卷积过程,总体上还是还是同之前的一样,都是每次选取特定位置上的神经元进行卷积,然后依次移动直到卷积结束。下面我们先来看看多通道单卷积核的计算过程。
左边为包含有三个通道的输入,右边为一个卷积核和一个偏置。注意,强调一下右边的仅仅只是一个卷积核,不是三个。因为输入是三个通道,所以在进行卷积的时候,对应的每一个卷积核都必须要有三个通道才能进行卷积。下面我们就来看看具体的计算过程。
1.4 多通道多卷积核
其他计算
-
通道:需要10个 5×5 的卷积核,每个卷积核的深度等于输入通道数,即3。
-
填充(Padding):对于 5×5 的卷积核,为了保持宽高不变,应使用
padding = (kernel_size - 1) / 2。
因此,padding = (5 - 1) / 2 = 2
。 -
步幅可设置为1
-
总参数数量:
-
每个卷积核的参数数量是:5×5×3+1(其中+1是因为每个卷积核还有一个偏置项)。
-
因此,对于10个这样的卷积核,总的参数数量是10×(5×5×3+1)=760
-
-
乘法次数
- 每个位置上的乘法次数为:5×5×3=75
- 输入特征图的每个位置都会被卷积操作覆盖一次,因此总的乘法次数为: 75×640×480×10=230,400,000
padding,stride的作用
填充(Padding)和步幅(Stride)是卷积神经网络(CNN)中两个非常重要的超参数,它们对卷积层的输出特征图尺寸有直接影响。理解这两个参数的作用对于设计有效的卷积神经网络至关重要。
填充
- 是什么:Padding是指在输入数据(通常是图像)的边界周围添加额外的填充层。这个填充层可以是零值(称为零填充,zero-padding),也可以是其他类型的值。
- 作用:① 保持输入和输出的空间尺寸一致
② 防止信息在边界处丢失 。
③ 控制感受野:我们可以控制覆盖输入区域的大小。
步幅
- 是什么:指卷积核在输入数据上移动的步长。具体来说,就是每次卷积操作后,卷积核沿宽度和高度方向移动的像素数量。
- 作用:① 减少空间尺寸 ② 控制模型复杂度 :较大的步幅可以减少模型的参数数量和计算量,有助于防止过拟合,并加速训练过程。
③ 增加感受野:较大的步幅意味着每个输出单元覆盖更大的输入区域,因此可以捕捉更广泛的信息。