【深度学习】一张图看懂Receptive Field

本文尝试用最简明直白的图示,帮助理解和记忆Receptive Field的计算方法。

什么是Receptive Field?

在CNN中,第n层特征图中一个像素,对应第1层(输入图像)的像素数,即为该层的Receptive Field,简称RF。

基本思路

网络第1层输入,第 n n 层输出。
k k 层和第 k+1 k + 1 层之间的滤波器,其尺寸为 fk f k ,步长为 sk s k

为书写简洁,此处用一维尺寸代替二维。

采用递归的思路:

  • rk r k 表示第n层特征图中的一个像素,对应第k层特征图的像素数。
  • 从最深一层倒序向前计算, r1 r 1 即为第 n n 层的RF。

计算方法

最深一层本身的一像素和自己一一对应: rn=1 r n = 1
【深度学习】一张图看懂Receptive Field_第1张图片

假设已经计算出,最深一层一个像素对应第k+1层的 rk+1 r k + 1 个像素。

现在的问题是,它对应多少个k层像素?换言之,红色部分有多长?

这部分由两部分组成:

  • 蓝色:每段长度为本层滤波器步长 sk s k ,共有 rk+11 r k + 1 − 1 段。
  • 绿色:每段长度为滤波器一半尺寸 fk/2 f k / 2 ,左右各有一段。

于是有:

rk=(rk+11)sk+fk r k = ( r k + 1 − 1 ) ⋅ s k + f k

你可能感兴趣的:(机器学习算法)