基本概念
(1)The receptive field is defined as the region in the input space that a particular CNN’s feature is looking at (i.e. be affected by). 用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。
(2)感受野是指输出特征图中1个像素点,映射到原始图片的区域大小。(更容易理解)
(1)为什么神经元无法接收所有的原始图像信息?
答:网络结构中普遍使用卷积层和pooling层,在层与层之间均为局部相连(通过sliding filter)。
(2)感受野大小代表什么?
a. 感受野的值越大表示其能接触到的原始图像范围就越大,也意味着他可能蕴含更为全局、语义层次更高的特征;
b. 感受野的值越小表示其所包含的特征越趋向于局部和细节。
总结:因此感受野的值可以大致用来判断每一层的抽象层次。
参考文章:(1)https://zhuanlan.zhihu.com/p/28492837
(3)感受野如何计算?
(4)样例
上述过程用了两次3*3 的卷积核,得到了一个1 *1 矩阵,其感受野为5。如果直接用一个5 *5 的卷积核,经过一步卷积也可以得到一个 1 *1 矩阵,其感受野为5。这里就引出一个问题:应该用3 *3卷积核,经过2次卷积效果好,还是直接用5 * 5的卷积核,经过一次卷积的效果好呢?先说答案:大部分情况下,用3 *3 卷积核,经过2次卷积的效果,好于1次。
(5)为什么大多情况下,两层3*3 卷积的效果好于一层5 * 5卷积后的效果
不妨设输入特征图的宽、高均为 x,卷积计算的步长为 1,显然,两个 3 * 3 卷积核的参数量为 9 + 9 = 18,小于 5 * 5 卷积核的 25,前者的参数量更少。
在计算量上,根据图 5-8 所示的输出特征尺寸计算公式,对于 5 * 5 卷积核来说,输出特征图共有(x – 5 + 1)^2 个像素点,每个像素点需要进行 5 * 5 = 25 次乘加运算,则总计算量为 25 * (x – 5 + 1)^2 = 25x^2 – 200x + 400;
对于两个 3 * 3 卷积核来说,第一个 3 * 3 卷积核输出特征图共有(x – 3 + 1)^2 个像素点,每个像素点需要进行 3 * 3 = 9 次乘加运算,第二个 3 * 3 卷积核输出特征图共有(x – 3 + 1 – 3+ 1)^2 个像素点,每个像素点同样需要进行 9 次乘加运算,则总计算量为 9 * (x – 3 + 1)^2 +9 * (x – 3 + 1 – 3 + 1)^2 = 18 x^2 – 108x + 180;
对二者的总计算量(乘加运算的次数)进行对比,18 x^2 – 200x + 400 < 25x^2 – 200x +400,经过简单数学运算可得 x < 22/7 or x > 10,x 作为特征图的边长,在大多数情况下显然会是一个大于 10 的值(非常简单的 MNIST 数据集的尺寸也达到了 28 * 28),
结论:所以两层 3 *3 卷积核的参数量和计算量,在通常情况下都优于一层 5 * 5 卷积核,尤其是当特征图尺寸比较大的情况下,两层 3 * 3 卷积核在计算量上的优势会更加明显。