深度学习(2)——感受野

深度学习(2)——感受野

最近在组会讲解框架时,在感受野这个小知识点,大家开始产生歧义,今天我就简单的给大家讲解下这个小知识点,也给初学者带来一个对Receptive Field崭新的认识,如果对只是有深入了解的你,就可以直接跳过O(∩_∩)O~~!

现在开始进入正题!!!

以前我的理解就是,感受野嘛,其实那就是一个视觉感受区域大小。对于单层网络来说,下一层的一个像素点其感受野大小也就是卷积层滤波器的大小,想想其实很明了的就理解了,但对于多层,那就有一点点(也就那么一点点复杂而已)!

正式定义:

在神经网络中,感受野的定义是:
卷积神经网络的每一层输出的特征图(Feature ap)上的像素点在原图像上映射的区域大小。

自己随便画了一个例图,主要看内容,O(∩_∩)O谢谢!

链接: pan.baidu.com/s/1nvMzrO 密码: 2ehd

有读者说有动图就好了,我就截取了一个,请大家欣赏!

现在就开始来说怎么计算吧!(看点来了)其实很简单!

首先可以简单知道(前面也提及到了),第一层卷积层的输出特征图像素的感受野的大小就等于等于卷积层滤波器的大小;然后其继续进行前向传播,这样的话,后面深层的卷积层感受野大小就和之前所有网络层的滤波器大小和步长有关系了,在计算的时候,忽略图像Padding的大小。网络中的每一个层有一个strides,该strides是之前所有层stride的乘积,即:

stride\left( i\right) =stride(1)\ast stride(2)\ast ...\ast stride\left( i-1 \right)

查资料知,感受野大小的计算采用从深层到前层的方式计算, 即先计算最深层在前一层上的感受野,然后逐渐反馈到第一层,公式具体记如下:

V^{'} _{receptive field} = ( (V _{receptive field} -1 )\ast stride  )+Size_{Conv}

其中V^{'} _{receptive field} 为得的感受野大小, V_{receptive field} 为最后层在前一层的感受野大小,Size_{Conv}  为卷积层滤波器大小。

通过这样反复迭代就可以得到每一层的感受野。具体代码我看网上也有,我就顺便附一下吧,原件请在链接里下载,谢谢!

链接: pan.baidu.com/s/1jIHLGJ 密码: ayuc

具体仿真结果我是用Windows版的Python 3.5 (32-bit)运行得到的,具体如下图:

编辑于 2016-11-02

文章被以下专栏收录

    “计算机视觉战队”微信公众平台已经上线。计算机视觉战队成立于2017年,主要由来自于大学的研究生组成的团队,目前已得到较大关注与支持,该平台从事机器学习与深度学习领域,主要在人脸检测与识别,多目标检测研究方向。每日通过计算机视觉平台分享最近的成果,分析现在流行的模型、算法与思路。本团队想通过计算机视觉平台打造属于自己的品牌,让更多相关领域的人了解本团队,也希望通过本平台认识更过志趣道合的朋友,让我们共同去学习该领域的知识,一起来学习最新的AI科技,创造美好未来!