一、感受野(receptive field)
这里先给出概念,感受野:在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野(receptive field)。
输出特征图上每个点的数值,是由输入图片上大小为的区域的元素与卷积核对应每个元素相乘再相加得到的,所以输入图像上区域内每个元素数值的改变,都会影响输出点的像素值。==我们将这个区域叫做输出特征图上对应点的感受野。==感受野内每个元素数值的变动,都会影响输出点的数值变化。比如卷积对应的感受野大小就是,如下图所示:
而通过两层卷积之后,感受野的大小将会增加到,如下图所示:
因此,当增加卷积网络深度的同时,感受野将会增大,输出特征图中的一个像素点将会包含更多的图像语义信息。
二、多输入通道、多输出通道和批量操作
前面几篇文章的卷积计算过程比较简单,实际应用时,处理的问题要复杂的多。例如:对于彩色图片有RGB三个通道,需要处理多输入通道的场景。输出特征图往往也会具有多个通道,而且在神经网络的计算中常常是把一个批次的样本放在一起计算,所以卷积算子需要具有批量处理多输入和多输出通道数据的功能,下面将分别介绍这几种场景的操作方式。
2.1 多输入通道场景
在上面的例子中,卷积层的数据是一个2维的数组,但实际上一张图片往往含有RGB三个通道,要计算卷积的输出结果,卷积核的形式也会发生改变,假设输入图片的通道数为,输入数据的形式是,计算过程如下图所示。
步骤如下:
- 对每个通道分别设计一个2维数组作为卷积核,卷积核数组的形状为。
- 对任意一个通道,分别用大小为的卷积核在大小为的二维数组上做卷积。
- 将这个通道的计算结果相加,得到的是一个形状为的二维数组。
2.2 多输出通道场景
一般来说,卷积操作的输出特征图也会具有多个通道,这时候我们需要设计个维度为的卷积核,卷积核数组的维度是,如下图所示:
步骤如下:
- 将任意一输出通道,分别使用上面描述的形状为的卷积核对输入图片进行卷积。
- 对这个形状为的
说明:
通常将卷积核的输出通道数叫做卷积核的个数。
2.3 批量操作
在卷积神经网络的计算中,通常将多个样本放在一起形成一个mini-batch进行批量操作,即输入数据的维度是 。由于会对每张图片使用同样的卷积核进行卷积操作,卷积核的维度与上面多输出通道的情况一样,仍然是,输出特征图的维度是,如下图所示: