初窥卷积网络感受野

来源:互联网 发布:淘宝卖家店铺装修教程 编辑:程序博客网 时间:2024/05/22 00:23

感受野(receptive field)作为卷积神经网络(CNN)中最重要的概念之一,我们对它的重视程度是远远不够的! 学了这么久的网络,突然间发现自己好像啥也不是很透彻,啥都能扯点。。这样的学习方式应该受到批评! 导师教导我们:工作不细就是失误,操作失误就是犯罪 。哈哈 。。。泄密必被抓。。抓住必杀头。。蜜汁尴尬 好了现在来说说卷积网络的感受野到底是什么吧。

感受野是指CNN结构中某个特征映射到输入空间的区域大小。对于某一特征的感受野,可以通过它的中心位置和它的尺寸大小来描述。 相对直观的理解就是 某个特征 映射 到输入空间的区域大小。 这里的映射 是 自上而下的 迭代。就是说 通过最后一层的特征映射到上一层,上一层映射到上上一层。。。
感受野我们可以分为 局部感受野 和 全局感受野 。
局部感受野大小就是对应那层卷积核的大小。
全局感受野则是 积神经网络的每一层输出的特征图(Feature ap)上的像素点在原图像上映射的区域大小。

通过对5×5的输入图做一个核大小k=3×3,填充大小p=1×1,步长s=2×2的卷积运算C,我门能够得到一个大小为3×3的输出特征图(如图1绿色图所示)。对该3×3的特征图继续进行同样的卷积运算,我们将会得到大小为2×2的特征图(如图1橙色图所示)。每个维度的输出特征数可以通过以下公式计算得出,详细解释请参见[1]。
这里写图片描述

感受野表示输入空间中一个特定CNN特征的范围区域(The receptive field is defined as the region in the input space that a particular CNN’s feature is looking at)。一个特征的感受野可以采用区域的中心位置和特征大小进行描述。图1展示了一些感受野的例子,采用核大小(kernel size)k=3*3,填充大小(padding size)p=1*1,步长(stride)s=2*2的卷积核C对5*5大小的输入图进行卷积操作,将输出3*3大小的特征图(绿色图)。对3*3大小的特征图进行相同的卷积操作,将输出2*2的特征图(橙色)。输出特征图在每个维度上的大小可以采用下面的公式进行计算([1603.07285] A guide to convolution arithmetic for deep learning):
这里写图片描述

感受野的计算(Receptive Field Arithmetic)
除了每个维度上特征图的个数,还需要计算每一层的感受野大小,因此我们需要了解每一层的额外信息,包括:当前感受野的尺寸r,相邻特征之间的距离(或者jump)j,左上角(起始)特征的中心坐标start,其中特征的中心坐标定义为其感受野的中心坐标(如上述固定大小CNN特征图所述)。假设卷积核大小k,填充大小p,步长大小s,则其输出层的相关属性计算如:![这里写图片描述](http://img.blog.csdn.net/20171205210425739?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvend3Mjc1MjUw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast::
:公式一基于输入特征个数和卷积相关属性计算输出特征的个数
公式二计算输出特征图的jump,等于输入图的jump与输入特征个数(执行卷积操作时jump的个数,stride的大小)的乘积
公式三计算输出特征图的receptive field size,等于k个输入特征覆盖区域加上边界上输入特征的感受野覆盖的附加区域。
公式四计算第一个输出特征的感受野的中心位置,等于第一个输入特征的中心位置,加上第一个输入特征位置到第一个卷积核中心位置的距离,再减去填充区域大小。注意:这里都需要乘上输入特征图的jump,从而获取实际距。。。这里写图片描述或间隔。

原创粉丝点击