关于深度学习:神经网络感受野浅析

29次阅读

共计 2181 个字符,预计需要花费 6 分钟才能阅读完成。

1.1 感触野

1.1.1 定义

定义:卷积神经网络中的特色图上的 一个像素点 在输出图像上映射的 区域大小

1.1.2 例子:

  • 5×5的输出特色图通过 1 个 5×5 的卷积核,生成 1×1 的特色图,
  • 5×5的输出特色图通过两个 3×3 的卷积核,生成 1×1 的特色图。

下面两个的感触野都为 5×5,且两个 3×3 的卷积核等于一个 5×5

注:下面满足卷积的计算公式:

​ $$H_{out} = \frac {H_{in} – k + 2p}{S}$$

1.1.3 感触野大小的计算

办法一:从后往前推

公式解说

感触野大小计算须要留神以下几点:

  • == 最初一层感触野的大小等于核(不肯定是卷积核,还有可能是池化核)的大小 ==(以后的感触野相当于“长期感触野”,用于从后往前推)
  • 感触野大小的计算不思考 padding 的大小
  • 以后层 (i 层) 的感触野大小和以后层(i 层)的 卷积核大小 步长 无关,同时也和网络后一层 (i+1) 层特色图的感触野大小无关

​ $$RF_i = (RF_{i+1} – 1) × stride + K$$

$RF_i$ 示意第 $i$ 层的感触野大小,stride 示意步长,K 示意卷积核大小

艰深解释

假如有如下网络,当初咱们要计算第 i+1 的感触野,那么,

  • 首先确定 i + 1 层核(卷积核或池化核)大小即为感触野的大小
  • 利用下面的公式计算第 i 层感触野的大小
  • 按照下面的公式始终推到 input 层,== 最终计算的后果即为 i+1 的感触野的大小 ==

办法二:从前往后推

公式解说

顾名思义,从网络的输出层始终推到咱们想要计算层的感触野

​ $$RF_{i+1} = RF_i + (k – 1) * S_i$$

$$S_i$$ 示意 之前所有层的步长的乘积 ,== 不蕴含以后层==,即

​ $$S_i = \prod_{i=0}^n Stride_i $$

艰深了解

仍旧如图所示,咱们须要计算第 i+1 的层感触野的大小,那么,

  • 首先确定 input 层前面的核(卷积核或池化核,个别为卷积核)大小,
  • 按照公式逐步往后推到 i+1 的感触野大小

1.1.4 验证

验证下面例子

<img src=”/img/bVcZuTV” width=”400px” height=”300px”/>

办法一:从后往前推

如果第一种状况,应用 5×5 的卷积核,最初一层为 1×1,那么最初一层的感触野为卷积核大小,即 5

如果第二种状况,应用两个 3×3 的卷积核(步幅为 1),最初一层的“长期感触野”为卷积核大小,即 3×3,前一层的感触野为:

​ $$RF = (3 – 1) × 1 + 3 = 5$$,最终,最初一层的感触野大小为 5

办法二:从前往后推

第一种状况,应用 5×5 的卷积核,那么最初的感触野即为 5

第二种状况,第一个卷积核为 3×3,那么最开始的感触野为 3,第二个卷积核为 3×3,生成的特色图的感触野为:

​ $$S_i= 1 $$ 后面一个卷积核的步长为 1

​ $$$RF_2 = RF_1 + (K-1)*S = 3 + (3-1)*1 = 3 + 2 = 5$$

如上,两个状况的的感触野都为 5,和上图统一。

例子

layerkernel sizestide$\prod_i^nstide_i$
input
conv13*31
pool12*221
conv23*312
pool22*222
conv33*314
conv43*314
pool32*224
办法一:从后向前推:

最初一层为 pool3:RF = 2 (长期感触野为核大小)

conv4 = (2 – 1) * 1 + 3 = 4

conv3 = (4 – 1) * 1 + 3 = 6

pool2 = (6 – 1) * 2 + 2 = 12

conv2 = (12 – 1) * 1 + 3 = 14

pool1 = (14 – 1) * 2 + 2 = 28

conv1 = (28 – 1) * 1 + 3 = 30

所以,pool3 的感触野为 30

办法二:从前往后推

为了不便计算,再下面表格中计算了 $\prod_i^nstide_i$,

conv1 的感触野即为卷积核大小,即

$$conv1 = 3$$

$$pool1= 3+(k-1) * s = 3 + (2-1) * 1 = 3 +1 = 4$$

$$conv2 = 4 +(k – 1)*s = 4+(3-1)*2=4+4 = 8$$

$$pool2 = 8 + (k-1)*s = 8 + (2-1)*2 = 8+2 = 10$$

$$conv3 = 10 + (k-1)*s = 10 + (3-1)*4 = 10+8 = 18$$

$$conv4 = 18 + (k-1)*s = 18+(3-1)*4 = 18+8 = 26$$

$$pool3 = 26+(k-1)*s = 26 +(2-1)*4 = 26 + 4 = 30$$


如上,两种计算失去的后果雷同

1.1.5 小结

  • 感触野计算有两种办法,

    • 从后往前推,失去的最终后果即为 计算起始地位 的感触野,
    • 从返回后退,从网络开始到须要计算的层的 之间 的感触野 都会计算出 ,须要计算 连乘

参考文献

[1] https://zhuanlan.zhihu.com/p/113487374

[2] https://blog.csdn.net/program_developer/article/details/80958716

[3] https://blog.csdn.net/qq_41076797/article/details/114434415

[4] http://www.360doc.com/content/20/1012/21/32196507_940140443.shtml

本文作者: 胡侃有料,欢送来我的公众号 胡侃深度学习

版权申明: 本博客所有文章除特地申明外,均采纳 BY-NC-SA 许可协定。转载请注明出处!

声援博主 :如果您感觉文章对您有帮忙, 欢送点赞。您的激励是博主的最大能源!

正文完
 0