本文摘自看完还不懂卷积神经网络“感受野”?那你来找我

作者:程序_小白
链接:https://www.jianshu.com/p/9305d31962d8


一、到底什么是“感受野”(接受野Receptive Field)

感受野是一个神经元对原始图像的连接

通常说:第几层对输入数据(即原始图像)的感受野

二、图解说明

为了更好地说明整个卷积神经网络的工作过程,下面以一个例子说明,原始图像的大小为10x10,一共设计了5个网络层,前面4个是卷积层,卷积核的大小为3x3,最后一个是池化层,大小为2x2,为了较简单的说明,本次所有的步幅stride均为1.

注意:感受野在计算的时候不考虑“边界填充”,因为填充的边界已经不是原始图像本身的内容了,感受野描述的是输出特征到原始图像的映射关系,故而不考虑padding 。实际建模过程中可能需要填充边界,原理一样,只是计算稍微复杂点。

1、第一次卷积运算

 

 

从上面可以看出:第一层网络输出的图像中,输出结果为8x8,output1输出的每一个特征(即每一个像素)受到原始图像的3x3区域内的影响,故而第一层的感受野为3,用字母表示为

RF1=3   (每一个像素值与原始图像的3x3区域有关)

2、第二次卷积运算

 

 

从上图可以看出,经历两次卷积运算之后,最终的输出图像为6x6,output2输出的每一个特征(即每一个像素)受到output1的范围影响为3x3,而output1中的这个3x3又收到原始图像的5x5的范围的影响,故而第二层的感受野为5,即

RF2=5   (每一个像素值与原始图像的5x5区域有关)

3、第三次卷积运算

 

 

从上图可以看出,经历三次卷积运算之后,最终的输出图像为4x4,output3输出的每一个特征(即每一个像素)受到output2的范围影响为3x3,而output2中的这个3x3又受到output1的5x5的范围的影响,而output1中的这个5x5又受到原始图像的7x7的范围的影响,故而第三层的感受野为7,即

RF3=7   (每一个像素值与原始图像的7x7区域有关)

4、第四次卷积运算

 

 

从上图可以看出,经历四次卷积运算之后,最终的输出图像为2x2,output4输出的每一个特征(即每一个像素)受到output3的范围影响为3x3,而output3中的这个3x3又受到output2的5x5的范围的影响,而output2中的这个5x5又受到output1的7x7的范围的影响,而output1中的这个7x7又受到原始图形的9x9的范围的影响,故而第四层的感受野为9,即

RF4=9   (每一个像素值与原始图像的9x9区域有关)

5、第五次池化运算

 
 

从上图可以看出,经历四次卷积运算和一次池化运算之后,最终的输出图像为1x1,output5输出的每一个特征(即每一个像素)受到output4的范围影响为2x2,而output4中的这个2x2又受到output3的4x4的范围的影响,而output3中的这个4x4又受到output2的6x6的范围的影响,而output2中的这个6x6受到output1的8x8的范围的影响,而output1中的这个8x8受到原始图像的10x10的范围的影响,故而第五层的感受野为10,即

RF5=10  (每一个像素值与原始图像的10x10区域有关)

三、递推公式推导

从上面的过程可以看出,感受野的推导是一个递推的过程,下面将展示这一过程。

RF1=3            k1(第一层的感受野,永远等于第一个卷积核的尺寸大小)k表示第几个卷积层

RF2=5            k1 + (k2-1)                                                            RF1+ (k2-1)

RF3=7            k1 + (k2-1) + (k3-1)                                            RF2+ (k3-1)

RF4=9            k1 + (k2-1) + (k3-1)   + (k4-1)                             RF3+ (k4-1)

RF4=10          k1 + (k2-1) + (k3-1)   + (k4-1)    + (k5-1)             RF4+ (k5-1)

总结:从上面可以看出,感受野的大小的求解是一个不断第一的过程,因为第一层的每一个像素的感受野始终是第一个卷积核的大小,故而RF1总是最先确定,然后以此类推,逐步求出RF2、RF3、RF4、RF5……

但是上面的所有步长均为 1 ,如果每一次卷积运算的步长 stride 不为1呢,同理,这里直接给出递推公式:

RFn=RFn-1 + (kn-1)*stride_n

其中stride_n表示的是第n次卷积的移动步幅stride。

求解过程是从RF1开始的。

CNN中感受野的理解的更多相关文章

  1. CNN中感受野大小的计算

    1 感受野的概念 从直观上讲,感受野就是视觉感受区域的大小.在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小. 2 感受野 ...

  2. CNN中的卷积理解和实例

    卷积操作是使用一个二维卷积核在在批处理的图片中进行扫描,具体的操作是在每一张图片上采用合适的窗口大小在图片的每一个通道上进行扫描. 权衡因素:在不同的通道和不同的卷积核之间进行权衡 在tensorfl ...

  3. (转)关于CNN中平移不变性的理解

    https://www.quora.com/Why-and-how-are-convolutional-neural-networks-translation-invariant https://st ...

  4. 理解CNN中的感受野(receptive-field)

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

  5. 对CNN感受野一些理解

    对CNN感受野一些理解 感受野(receptive field)被称作是CNN中最重要的概念之一.为什么要研究感受野呐?主要是因为在学习SSD,Faster RCNN框架时,其中prior box和A ...

  6. 理解CNN中的通道 channel

    在深度学习的算法学习中,都会提到 channels 这个概念.在一般的深度学习框架的 conv2d 中,如 tensorflow .mxnet ,channels 都是必填的一个参数. channel ...

  7. CNN网络中的不变性理解

    神经网络中的不变性 原文:https://blog.csdn.net/voxel_grid/article/details/79275637     个人认为cnn中conv层对应的是“等变性”(Eq ...

  8. CNN中的卷积核及TensorFlow中卷积的各种实现

    声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...

  9. CNN中减少网络的参数的三个思想

    CNN中减少网络的参数的三个思想: 1) 局部连接(Local Connectivity) 2) 权值共享(Shared Weights) 3) 池化(Pooling) 局部连接 局部连接是相对于全连 ...

随机推荐

  1. 06.AutoMapper 之内联映射(Inline Mapping)

    https://www.jianshu.com/p/623655d7cb34 内联映射(Inline Mapping) AutoMapper在 6.2 以上版本将动态创建类型映射. 当第一次调用Map ...

  2. python字符串/列表/字典互相转换

    python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...

  3. 在window环境下安装symfony2框架注意事项

    首先先放上放上安装的教程:http://www.symfonychina.com/doc/current/setup.html 然后说一下笔者遇到的坑 在运行这条命令的时候,虽然成功下载读取下来了,但 ...

  4. python-函数1(定义-作用-优势-返回值)

    python-函数1(定义-作用-优势-返回值) 1.面向对象的定义是靠-类>>class2.面向过程的定义是靠-过程 >>def3.函数式编程的定义是靠-函数>> ...

  5. liunx weblogic服务启停脚本

    #!/bin/bash #sh xx.sh start xx项目 例如:sh autoWeblogic.sh start bius #经测试发现weblogic 启动大概需要完全启动成功35秒左右 停 ...

  6. [uboot] (第三章)uboot流程——uboot-spl代码流程(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ooonebook/article/det ...

  7. WPF 样式Style

    一:样式基础 如果我们的程序有三个这样的按键,一般我们会这样写 <StackPanel> <!--按键的背景色为Azure蔚蓝色背景色为Coral珊瑚色字体为Arial加粗字体大小为 ...

  8. DevExpress v19.1新版亮点——WinForms篇(四)

    行业领先的.NET界面控件DevExpress v19.1终于正式发布,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WinForms v19.1中新增的一些控 ...

  9. java课堂动手测试2

    测试一 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 程序源代码 import java.util.Random;import java.util.Scanner; publi ...

  10. ELF程序头部及程序加载

    程序头部 程序头部描述与程序执行直接相关的目标文件结构信息.用来在文件中定位各个段的映像.同时包含其他一些用来为程序创建进程映像所必需的信息. 可执行文件或者共享目标文件的程序头部是一个结构数组,每个 ...