1. 阅读论文:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解感受野

  • 定义receptive field, or field of view (感受野)

A unit in convolutional networks only depends on a region of the input. This region in the input is the receptive field for that unit. (一个神经节点只从输入中的一个局部区域中获取信息,这个局部区域称为当前神经节点的感受野)。由于输入中感受野之外的区域不影响当前神经节点的值,所以要合理地控制感受野的大小,让感受野覆盖整个相关的区域,特别是在一些密集预测的任务上,比如:语义分割,深度估计和光流估计等任务。

定义--补充:
在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。 ——博客园
在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。 ——蓝荣祎
大家知道现在CNN深度学习越来越深,为了压缩计算量,越到后面的层数往往feature size越来越小,但参与“决策”往往是最后几层网络(当然有FPN等神迹)因此如何保证小的网络仍然具有全局性是构建CNN网络的一个重要依据,感受野便是一个考量feature map中每个神经元具有多少全局性的指标。
  • 增大感受野的操作
  1. 增加网络的层数,加深网络深度。理论上可以线性地增大感受野,每一层产生的感受野的增量为卷积核的大小。
  2. 下采样: 下采样可以成倍地增大感受野。
  3. dilate :dilate操作可以成倍地增大感受野。

注:VGG和ResNet等使用了1,2。 deeplab系列额外使用了3。

  • 论文的主要观点:
  1. 感受野中的像素对神经节点输出的贡献是不一样的,更具体一些是:感受野中心的像素的贡献更大些。理由:Forward pass过程:中心像素有更多的路径将该像素的信息传递给神经节点,边缘的像素有较少的路径将其像素信息传递给神经节点。相似地, Backward pass过程:感受野中心像素从相应的神经节点获取的梯度也更多。
  2. 理论感受野区域中的像素的贡献符合Gaussian分布。由于Gaussian分布从中心高边快速衰减,有效感受野只是是理论感受野的一部分。
  • 结论:
  1. 卷积核权重均匀分布和随机分布时,有效感受野服从(近似服从)Gaussian分布。
  2. ReLU操作的加入也会使得有效感受野服从(近似服从)Gaussian分布。
  3. dropout的加入不会改变有效感受野的Gaussian分布
  4. 下采样和dilation 会增加有效感受野的大小,下采样效果更明显。
  5. skip-connections会减小有效感受野的大小。
  6. 只包含卷积层的情况下,随着卷积层数  的增加有效感受野   倍增加。与理论感受野相比,有效感受野   缩小。
  • 减弱有效感受野Gaussian分布带来的损失的方法(增大有效感受野的方法)
  • (1)修改权重的初始化:减少卷积核中心的参数初始化的scale,增大卷积核边缘参数初始化的scale。不论scale策略如何,有效感受野Gaussian分布的情况仍不能解决。

    (2)改变CNN结构:使用dilation操作稀疏连接输入和卷积核,使用非矩形(no grid-like)的稀疏连接。

理论感受野大小的计算

在学习计算感受野之前,先可视化一下感受野吧。举一个例子,原始图像为 ,卷积核(Kernel Size)为 ,padding 为 ,stride为 ,依照此卷积规则,连续做两次卷积。熟悉卷积过程的朋友都知道第一次卷积结果是 大小的feature map,第二次卷积结果是 大小的feature map。整个过程如图所示:

第一次卷积得到3*3的 feature map,RF为3*3

第二次卷积得到2*2的 feature map

黄色feature map对应的感受野是7*7大小

如图所示,第一层卷积结束后,感受野是3*3。在第二层卷积结束了,感受野是7*7。

--理论感受野大小的计算公式

1)这种方式为从后往前推,即计算哪层的感受野,就把它当做网络的最后一层,然后往前推导:

 

【注】:

最后一层(卷积层或池化层)输出特征图感受野的大小等于卷积核的大小。
第i层卷积层的感受野大小和第i层的卷积核大小和步长有关系,同时也与(i+1)层感受野大小有关。
计算感受野的大小时忽略了图像边缘的影响,即不考虑padding的大小。

2)这种是从前往后推,逐层计算感受野的大小(还计算了神经元中心坐标):

2. 验证RF Size计算

FOMORO AI

三个高级工程师搞的网站,可以简单的输入网络参数,就直接把你的感受野计算出来。

参考:

1、Paper Reading: 理解感受野

2、卷积神经网络中感受野的详细介绍

3、卷积神经网络中的感受野计算详细指南

4、对CNN感受野一些理解

最新文章

  1. 面向属性的CSS命名
  2. unity3d笔记:控制特效的播放速度
  3. RabbitMQ入门教程——.NET客户端使用
  4. Typecho中的gravatar头像无法加载
  5. 在strut.xml 中使用ognl
  6. CL.exe的 /D 选项, Preprocessor Macro预处理器宏定义
  7. Uva 725 除法
  8. php判断来源网址地址并且限制非法来源
  9. RequireJS入门(一) 转
  10. textarea
  11. Swift语法学习之 类和结构体
  12. POJ 2155 D区段树
  13. 【原创】10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程)
  14. JAVA_SE基础——27.匿名对象
  15. The Quad - Directory Explorer(一款四窗口的文件资源管理器)
  16. Nginx 部署多个 web 项目(虚拟主机)
  17. LeetCode(91):解码方法
  18. SLAM(二)----学习资料下载
  19. LG3377 【模板】左偏树(可并堆)
  20. delegate() 事件绑定 事件委托

热门文章

  1. python基础语法9 生成器,面向对象编程思想,三元表达式,列表生成式,生成器表达式(生成式),匿名函数,内置函数
  2. iis站点设置错误页面返回http状态码为404而不是302或其他
  3. 关于python Tk中实时的输出.
  4. param动作
  5. scala 学习笔记--集合
  6. Python -- 正则表达式 regular expression
  7. luoguP3374 【模板】树状数组 1 cdq
  8. 联想M7216NWA墨粉清零:
  9. Jmeter(四十七)_性能测试统计超时率
  10. 19 条效率至少提高 3 倍的 MySQL 技巧