数据科学家Đặng Hà Thế Hiển 在 Medium 上发布了一篇文章,介绍了用于卷积神经网络的感受野的计算方法。机器之心技术分析师对此进行了解读。
1 感受野和特征图可视化
感受野的定义是输入空间中 CNN 的特定特征所关注的区域(即受该区域的影响)。
对于卷积神经网络,每个维度中输出特征的数量可以通过下式计算得到:
n_in:输入特征的数量
n_out:输出特征的数量
k:卷积核的大小
p:卷积填充的大小
s:卷积步幅的大小
在这篇博客中,(输入/输出)特征的数量等于沿输入/输出的一个轴(一个维度)的特征的数量。这里,轴可以理解成宽、高或彩色图像的一个通道。
以下图为例:
对于其中的左上图,输入图像为 5×5 的矩阵(蓝色网格)。然后使用 p=1 的零填充(即在输入图像周围添加一圈透明网格)以在卷积过程中保留边缘信息。之后,使用步幅 s=2 的 3×3 卷积核在该图像上进行卷积,得到大小为 3×3 的特征图(绿色网格)。在这个例子中,会得到 9 个特征,每个特征都有大小为 3×3 的感受野(淡蓝色覆盖的矩形区域)。我们可以在这个绿色网格上使用同样的卷积来得到更深度的特征图(橙色网格),如左下图所示。对于橙色的特征图,每个特征具有 7×7 的感受野。
上述方法是一种常用的可视化 CNN特征图的方法。但如果我们只看特征图(绿色或橙色网格),我们不能直接了解一个特征所关注的像素以及该区域有多大。右侧的两幅图是另一种可视化特征图的方法,其中每个特征图的大小是固定的且等于输入的大小,每个特征都位于其感受野的中心。在这种情况下,唯一的任务就是用数学方式计算感受野的面积了。