在卷积神经网络中,感受野定义:CNN每一层输出的特征图上的像素点在原始图像
上的映射的区域大小。
RF (receptive field)描述了两个特征映射(Feature Maps)上神经元的关系,在进行 CNN 可视化的过程中非常有用。他也可以从侧面让我们了解,
为什么神经网络偏向于选择小的 Filter 和 Stride。假设,A 经过一系列的操作之后得到 B,那么 B 上的一个区域就只和 A 上的一个区域相关。
一个输入大小为 11×11的A, 经过一个过滤器大小为 3×3,步长为 1 的卷积核卷积之后,得到一个大为9×9的特征映射。
可以看到在 B 中一个 3×3 的区域,在 A 中的感受视野为 5×5。B 经过一个大小为 3×3 ,步长为 1 的卷积核卷积之后,得到一个 7×7 的特征映射。
因此在 A 中的一个 5×5 的区域在 B 中的视野就为 3×3。因此,C 中一个 1×1 的区域在 A 的视野就为 5×5。
计算公式为:
其中 表示第 i 层输入的一个区域, 表示第 i 层的步长, 表示第 i 层卷积核的大小(filter size)。此计算不需要考虑 padding size。
高层在低层中的视野
计算 C 在 B 中的视野
如我们想计算 C 的一个 1×1 的区域在 B 上的接受视野,从上图可以知道一共三层(两个卷基层一个输入层,此处将输入层的 i 当做0处理),此时我们求的是 在 上的感受视野。
由上图可以知道, 的值为 1 因为第一层的步长为 1 ; 的值为 3 ,因为卷积核的大小为 3×3;此时选择的 区域大小为 1×1,因此它的值为 1 。
通过上述公式计算可得:
即 在 的接受视野为 3×3 的区域。
计算 B 在 A 中的视野
计算 B 中一个 3×3 的区域在 A 中接受视野。可知 为 1; 为 3,因为我们选择的 B 的区域为 3×3; 为 3。
因此 B 在 A 中的接受视野为:
计算 C 在 A 中的视野
计算 C 中一个1×1的区域在 A 中的接受视野。
通过以上的计算,我们可以通过如下过程推断:
- 计算 C 在 B 中的接受视野
2.计算 B 在 A 中的接受视野
此阶段需要将上面计算出来的结果当做 B 中需要计算的区域,因此就有:
因此可以得到 C 中一个 1×1 的区域在 A 中的接受视野为 5×5
注:以上的计算适用于卷积层和池化层,在激活层中
conv5:
conv4:
conv3:
pool2:
conv2:
pool1:
conv1:
因此第5层卷积在输入层的感受视野为 163。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CNN 卷积神经网络中的 接受视野(Receptive Field) - Python技术站