美文网首页
感受野计算

感受野计算

作者: D_Major | 来源:发表于2019-02-19 10:52 被阅读0次

CNN的强大之处在于它的多层结构能自动学习特征,并且可以学习到多个层次的特征:较浅的卷积层感受野较小,学习到一些局部区域的特征;较深的卷积层具有较大的感受野,能够学习到更加抽象一些的特征。这些抽象特征对物体的大小、位置和方向等敏感性更低,从而有助于分类性能的提高, 可以很好地判断出一幅图像中包含什么类别的物体,但是因为丢失了一些物体的细节,不能很好地给出物体的具体轮廓、指出每个像素具体属于哪个物体,因此做到精确的分割就很有难度。

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


第一次卷积得到3*3的 feature map,RF为3*3 第二次卷积得到2*2的 feature map, 感受野为3x3 黄色feature map对应的感受野是7*7大小

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

公式一:这个算法从top往下层层迭代直到追溯回input image,从而计算出RF。

(N-1)_RF = f(N_RF, stride, kernel) = (N_RF - 1) * stride + kernel

其中,RF是感受野。N_RF和RF有点像,N代表 neighbour,指的是第N层feature map的一个feature在N-1层的RF,记住N_RF只是一个中间变量,不要和RF混淆。 stride是N-1层的步长,ksize是N-1层卷积核大小。

我来解释一下这个公式。首先,我们的问题是右一的红叉叉映射到左一中,应该是什么size?自然思路就是右一的红叉叉映射到中间是什么size?因为卷积核是3x3,所以右一的红叉叉(1个feature)映射到中间是3x3. 因为一个feature是通过kernel卷积而来, 所以最后一层(第N层)的感受野即为(1-1) * 2 + 3 = 3, 就是kernel size. 那么接下来我们如果算出来中间3x3的红框框映射到左一是什么size,不就解决了我们的问题嘛。聪明的我们就发现了从中间映射到左边的size是kernel_size+stride * (3-1). 抽象一下就是kernel_size +stride * (N_RF-1)嘛。接下来就很简单了,一层又一层的迭代下去直到迭代到第一层,就求出了RF。Note: kernel_size和stride是左一的,而N_RF是中间的, 代表中间在左一的感受野。

本题即为(3-1) * 2 +3=7
此处问题: 为什么公式是这么写的?观察而来?

举例:第一层ksize=3,stride=2; 第二层ksize=3,stride=2; 第三层ksize=3,stride=1
则第三层输出的featuremap为3x3(逐点扫描), feature map上任一点的感受野为kernel size大小3x3.
(若第三层的stride=2, 则输出的feature map为2x2, 即四个顶点)
第四层在第三层的感受野是3,但stride和kernel size为第三层的参数

  • (3-1) * 1 + 3 = 5
  • (5-1) * 2 + 3 =11
  • (11-1) * 2 + 3 =23

总的感受野为23

两个小卷积(3*3)对于5×5网络感知野相同的替代性。


3x3 是最小的能够捕获像素八邻域信息的尺寸。
两个 3x3 的堆叠卷积层的有限感受野是 5x5 ;三个 3x3 的堆叠卷积层的感受野是7x7,故可以通过小尺寸卷积层的堆叠替代大尺寸卷积层,并且感受野大小不变。
多个 3x3 的卷积层比一个大尺寸 filter卷积层有更多的非线性(更多层的非线性函数),使得判决函数更加具有判决性。(中间层有非线性的分解, 并且起到隐式正则化的作用)
多个 3x3的卷积层比一个大尺寸的 filter 有更少的参数,假设卷积层的输入和输出的特征图大小相同为 C,那么三个 3x3 的卷积层参数个数 3x(3x3xCxC)=27C^2;一个7x7的卷积层参数为49C^2

相关文章

  • 感受野计算

    CNN的强大之处在于它的多层结构能自动学习特征,并且可以学习到多个层次的特征:较浅的卷积层感受野较小,学习到一些局...

  • 神经网络感受野

    传统感受野计算: 采用top-down的方式,个人感觉计算不直观,每一层都要重新计算。 新的感受野计算: 引入一种...

  • 卷积神经网络中的感受野计算

    卷积神经网络中的感受野计算

  • 关于感受野的计算

    先提个问题:为什么 3 个 3x3 同时 s=1 的卷积操作后相当于做一次 7x7 的卷积操作呢? 假设原图大小为...

  • 十三. VGG感受野计算

    (其实就是逆向求解图像输出尺寸)感受野的概念及大小的计算?在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出...

  • CNN 感受野计算公式

    0. Calculating Receptive Field of CNN 感受野的计算公式如下:l_{k} = ...

  • 计算CNN感受野 receptive field

    只考虑一维,毕竟大部分图像cnn网络的两个维度也是同样参数。

  • 感受野的计算和思考

    前言 很久没有写读书笔记了。最近翻公众号,发现一个以前在我公司实习的小朋友的公众号里面满满的工作小结和阅读笔记,不...

  • 空洞卷积

    空洞卷积有什么作用呢? 扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling...

  • 关于感受野的理解与计算

    感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feat...

网友评论

      本文标题:感受野计算

      本文链接:https://www.haomeiwen.com/subject/thkxyqtx.html