关于感受野的总结

star2017 1年前 ⋅ 6951 阅读

感谢 SIGAI 特约作者:mileistone

感受野是卷积神经网络里面最重要的概念之一,为了更好地理解卷积神经网络结构,甚至自己设计卷积神经网络,对于感受野的理解必不可少。

一、定义

感受野被定义为卷积神经网络特征所能看到输入图像的区域,换句话说特征输出受感受野区域内的像素点的影响。

比如下图(该图为了方便,将二维简化为一维),这个三层的神经卷积神经网络,每一层卷积核的  ,那么最上层特征所对应的感受野就为如图所示的 7x7。

感受野示例[1]

二、计算方式

其中  表示特征感受野大小,  表示层数,  表示输入层,  ,  。

  • 第一层特征,感受野为 3

第 1 层感受野[1]

  • 第二层特征,感受野为 5

第 2 层感受野[1]

  • 第三层特征,感受野为 7

第 3 层感受野[1]

如果有 dilated conv 的话,计算公式为

三、更上一层楼

上文所述的是理论感受野,而特征的有效感受野(实际起作用的感受野)实际上是远小于理论感受野的,如下图所示。具体数学分析比较复杂,不再赘述,感兴趣的话可以参考论文[2]。

有效感受野示例[2]

下面我从直观上解释一下有效感受野背后的原因。以一个两层 , 的网络为例,该网络的理论感受野为 5,计算流程可以参加下图。其中  为输入,  为卷积权重,  为经过卷积后的输出特征。

很容易可以发现,  只影响第一层 feature map 中的  ;而  会影响第一层 feature map 中的所有特征,即  。

第一层的输出全部会影响第二层的  。

于是  只能通过  来影响  ;而  能通过  来影响  。显而易见,虽然  和  都位于第二层特征感受野内,但是二者对最后的特征  的影响却大不相同,输入中越靠感受野中间的元素对特征的贡献越大。

两层 3x3 conv 计算流程图

四、应用

  • 分类

Xudong Cao 写过一篇叫《A practical theory for designing very deep convolutional neural networks》的 technical report,里面讲设计基于深度卷积神经网络的图像分类器时,为了保证得到不错的效果,需要满足两个条件:

Firstly, for each convolutional layer, its capacity of learning more complex patterns should be guaranteed; Secondly, the receptive field of the top most layer should be no larger than the image region.

其中第二个条件就是对卷积神经网络最高层网络特征感受野大小的限制。

  • 目标检测

现在流行的目标检测网络大部分都是基于 anchor 的,比如 SSD 系列,v2 以后的 yolo,还有 faster rcnn 系列。

基于 anchor 的目标检测网络会预设一组大小不同的 anchor,比如 32x32、64x64、128x128、256x256,这么多 anchor,我们应该放置在哪几层比较合适呢?这个时候感受野的大小是一个重要的考虑因素。

放置 anchor 层的特征感受野应该跟 anchor 大小相匹配,感受野比 anchor 大太多不好,小太多也不好。如果感受野比 anchor 小很多,就好比只给你一只脚,让你说出这是什么鸟一样。如果感受野比 anchor 大很多,则好比给你一张世界地图,让你指出故宫在哪儿一样。

《S3FD: Single Shot Scale-invariant Face Detector》这篇人脸检测器论文就是依据感受野来设计 anchor 的大小的一个例子,文中的原话是

we design anchor scales based on the effective receptive field

《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》这篇论文在设计多尺度 anchor 的时候,依据同样是感受野,文章的一个贡献为

We introduce the Multiple Scale Convolutional Layers
(MSCL) to handle various scales of face via enriching
receptive fields and discretizing anchors over layers


引用:


  • 本文地址:关于感受野的总结
  • 本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出

[1]convolutional nerual networks

[2]Understanding the Effective Receptive Field in Deep Convolutional Neural Networks

推荐阅读:

关注 SIGAICN 公众号,回复文章获取码,即可获得全文链接

[1] 机器学习-波澜壮阔 40 年 【获取码】SIGAI0413.

[2] 学好机器学习需要哪些数学知识?【获取码】SIGAI0417.

[3] 人脸识别算法演化史 【获取码】SIGAI0420.

[4] 基于深度学习的目标检测算法综述 【获取码】SIGAI0424.

[5] 卷积神经网络为什么能够称霸计算机视觉领域?【获取码】SIGAI0426.

[6] 用一张图理解 SVM 的脉络 【获取码】SIGAI0428.

[7] 人脸检测算法综述 【获取码】SIGAI0503.

[8] 理解神经网络的激活函数 【获取码】SIGAI0505.

[9] 深度卷积神经网络演化历史及结构改进脉络-40 页长文全面解读 【获取码】SIGAI0508.

[10] 理解梯度下降法 【获取码】SIGAI0511.

[11] 循环神经网络综述—语音识别与自然语言处理的利器 【获取码】SIGAI0515.

[12] 理解凸优化 【获取码】SIGAI0518.

[13] 【实验】理解 SVM 的核函数和参数 【获取码】SIGAI0522.

[14] 【SIGAI 综述】行人检测算法 【获取码】SIGAI0525.

[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上)【获取码】SIGAI0529.

[16] 理解牛顿法 SIGAI 2018.5.31

[17] 【群话题精华】5 月集锦—机器学习和深度学习中一些值得思考的问题 【获取码】SIGAI0601.

[18] 大话 Adaboost 算法 【获取码】SIGAI0602.

[19] FlowNet 到 FlowNet2.0:基于卷积神经网络的光流预测算法 【获取码】SIGAI0604.

[20] 理解主成分分析(PCA)【获取码】SIGAI0606.

[21] 人体骨骼关键点检测综述 【获取码】SIGAI0608.

[22] 理解决策树 【获取码】SIGAI0611.

[23] 用一句话总结常用的机器学习算法 【获取码】SIGAI0613.

[24] 目标检测算法之 YOLO 【获取码】SIGAI0615.

[25] 理解过拟合 【获取码】SIGAI0618.

[26] 理解计算:从 √2 到 AlphaGo ——第 1 季 从 √2 谈起 【获取码】SIGAI0620.

[27] 场景文本检测——CTPN 算法介绍 【获取码】SIGAI0622.

[28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625.

[29] k 近邻算法 【获取码】SIGAI0627.

[30] 自然场景文本检测识别技术综述 【获取码】SIGAI0629.

[31] 理解计算:从 √2 到 AlphaGo ——第 2 季 神经计算的历史背景 【获取码】SIGAI0702.

[32] 机器学习算法地图 【获取码】SIGAI0704.

[33]反向传播算法推导-全连接神经网络【获取码】SIGAI0706.

[34]生成式对抗网络模型综述【获取码】SIGAI0709.

[35]怎样成为一名优秀的算法工程师【获取码】SIGAI0711.

[36] 理解计算:从 √2 到 AlphaGo ——第 3 季 神经网络的数学模型【获取码】SIGAI0702.

[37] 人脸检测算法之 S3FD 【获取码】SIGAI6

[38]基于深度负相关学习的人群计数方法 【获取码】SIGAI0718

[39] 流形学习概述 【获取码】SIGAI0723


本文地址:https://www.6aiq.com/article/1532404400741
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: