感受野:特征图上单个像素点在原始图像上映射区域的大小。
神经元感受野之外的图像内容并不会对该神经元的值产生影响。
在实际工程应用中,一般是通过调节模型深度和kernel size等参数来调节模型的感受野大小
感受野被细分为了 理论感受野和 实际感受野 (这一划时代的概念有这篇论文提出《Understanding the Effective Receptive Field in Deep Convolutional Neural Networks》)。
实际的感受野近似高斯分布
我们需要关注网络的感受野是否足够,尤其是在对大目标进行检测和识别的时候。
感受野并不是越大越好,在某些场景中,感受野过大甚至会降低模型性能。
《The Receptive Field as a Regularizer in Deep Convolutional Neural Networks for Acoustic Scene Classification》论文通过1*1 Conv替换3*3Conv缩小ResNet和DenseNet等网络的感受野在ASC场景获取了比原始模型更高的精度;《Gated Recurrent Convolution Neural Network for OCR 》论文提出了GRCL 结构来限制无效感受野,提高了STR的识别精度,下图展示了改进后特征响应图,可以看出RCNN能强化文字上的响应,减弱无效背景的响应。
Inception网络提出多路卷积融合的思路,实际是在同一个尺度上多种感受野信息的融合,主要是为了解决图像大小分布差异较大的问题。《MixNet: Mixed Depthwise Convolutional Kernels》Google Brain最近提出Mixed Depthwise Convolution,类似Inception的单元结构,以此来提高网络表达能力。Google Brain在MobilenetV2的基础上用MDConv替换3*3 Depthwise Conv进行了多组实验,在大多数情况下都取得了更好的效果,接着在Imagenet上用Auto ML搜索出MixNet-L,取得了78.9%的top-1分类精度,同时FLOPs小于600M,超过Resnet153。
感受野的计算方式有两种,下面给出其中一个计算公式和计算示例
感受野作为神经网络隐藏的重要特性还有很多需要发掘的地方,在实际的工程项目中我们需要考虑这一块的影响,细节往往决定成败,与其沉迷在研究高大上的算法架构,真不如沉下心把一些基础性的研究工作做透彻。
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》(该文分析讲解详见SIGAI技术短文《人脸检测算法之S3FD》)这篇人脸检测器论文就是依据感受野来设计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
虽然进行了整理,但是我还没有仔细的去阅读(精神不太好,上周熬夜太多了,这周有点儿缓不过来,今晚早点睡,明天继续搞,争取这一周,能好好啃一啃这一块儿,最终提取一个有个有用的指导性的结论)。