计算卷积神经网络的感受野
深度神经网络虽在人工智能领域取得突破性成果,但其开发和调试仍存在挑战。本研究从卷积模型角度分析神经网络,重点探讨输入信号对输出特征的影响程度,以及将网络任意位置的特征映射回产生它们的输入区域。卷积网络感受野是关联输出特征与输入区域的关键参数,定义为生成该特征的输入区域大小。
主要贡献
- 数学推导与高效算法:提出现代卷积神经网络感受野计算的数学推导和高效算法。早期研究仅针对单路径卷积网络提供递归方程,本文重新推导得出单路径情况下的闭式表达式,并首次将感受野计算扩展到多路径现代卷积架构。
- 开源工具库:推出开源库自动执行感受野计算,集成于TensorFlow代码库,可轻松分析多种模型。
问题设置
考虑具有L层的全卷积网络(FCN),定义特征图fl∈Rhl×wl×dlf_l \in \mathbb{R}^{h_l \times w_l \times d_l}fl∈Rhl×wl×dl表示第l层输出,其中高度hlh_lhl、宽度wlw_lwl和深度dld_ldl。输入图像记为f0f_0f0,最终输出特征图为fLf_LfL。
每层l的空间配置由4个参数定义:
- klk_lkl:核大小(正整数)
- sls_lsl:步幅(正整数)
- plp_lpl:应用于输入特征图左侧的填充(非负整数)
- qlq_lql:应用于输入特征图右侧的填充(非负整数)
单路径网络计算
感受野大小计算
定义rlr_lrl为最终输出特征图fLf_LfL相对于特征图flf_lfl的感受野大小。递归方程为:
rl−1=sl⋅rl+(kl−sl)r_{l-1} = s_l \cdot r_l + (k_l - s_l)rl−1=sl⋅rl+(kl−sl)
闭式解为:
r0=∑l=1L((kl−1)∏i=1l−1si)+1r_0 = \sum_{l=1}^{L} \left( (k_l - 1) \prod_{i=1}^{l-1} s_i \right) + 1r0=l=1∑L((kl−1)i=1∏l−1si)+1
输入图像感受野区域计算
定义ulu_lul和vlv_lvl为用于计算fLf_LfL中特定特征的区域在flf_lfl中的最左和最右坐标(零索引)。递归关系为:
ul−1=−pl+ul⋅slu_{l-1} = -p_l + u_l \cdot s_lul−1=−pl+ul⋅sl
vl−1=−pl+vl⋅sl+kl−1v_{l-1} = -p_l + v_l \cdot s_l + k_l - 1vl−1=−pl+vl⋅sl+kl−1
闭式解为:
u0=uL∏i=1Lsi−∑l=1Lpl∏i=1l−1siu_0 = u_L \prod_{i=1}^{L} s_i - \sum_{l=1}^{L} p_l \prod_{i=1}^{l-1} s_iu0=uLi=1∏Lsi−l=1∑Lpli=1∏l−1si
v0=vL∏i=1Lsi−∑l=1L(1+pl−kl)∏i=1l−1siv_0 = v_L \prod_{i=1}^{L} s_i - \sum_{l=1}^{L} (1 + p_l - k_l) \prod_{i=1}^{l-1} s_iv0=vLi=1∏Lsi−l=1∑L(1+pl−kl)i=1∏l−1si
有效步幅与有效填充
定义有效步幅Sl=∏i=l+1LsiS_l = \prod_{i=l+1}^{L} s_iSl=∏i=l+1Lsi和有效填充Pl=∑m=l+1Lpm∏i=l+1m−1siP_l = \sum_{m=l+1}^{L} p_m \prod_{i=l+1}^{m-1} s_iPl=∑m=l+1Lpm∏i=l+1m−1si,则可简化为:
u0=−P0+uL⋅S0u_0 = -P_0 + u_L \cdot S_0u0=−P0+uL⋅S0
v0=u0+r0−1v_0 = u_0 + r_0 - 1v0=u0+r0−1
感受野中心c0c_0c0为:
c0=−P0+uL⋅S0+r0−12c_0 = -P_0 + u_L \cdot S_0 + \frac{r_0 - 1}{2}c0=−P0+uL⋅S0+2r0−1
任意计算图
现代卷积网络(如ResNet、Inception)采用有向无环计算图,每层可能有多个输入路径。需考虑对齐问题:不同路径可能导致输入区域未对齐,感受野大小可能缺乏平移不变性。
对齐条件要求所有路径对任意层l和输出特征uLu_LuL满足:
Sl(i)=Sl(j)S_l^{(i)} = S_l^{(j)}Sl(i)=Sl(j)
−Pl(i)+rl(i)−12=−Pl(j)+rl(j)−12-P_l^{(i)} + \frac{r_l^{(i)} - 1}{2} = -P_l^{(j)} + \frac{r_l^{(j)} - 1}{2}−Pl(i)+2rl(i)−1=−Pl(j)+2rl(j)−1
提出复杂度为O(∣E∣+∣L∣)O(|E| + |L|)O(∣E∣+∣L∣)的高效算法,通过反向拓扑排序遍历计算图,跟踪感受野参数并在发现更大感受野路径时更新。
现代网络的感受野分析
使用开源库计算现代卷积网络的感受野参数:
模型 | 感受野® | 有效步幅(S) | 有效填充§ | 发布年份 |
---|---|---|---|---|
alexnet_v2 | 195 | 32 | 64 | 2014 |
vgg_16 | 212 | 32 | 90 | 2014 |
mobilenet_v1 | 315 | 32 | 126 | 2017 |
resnet_v1_50 | 483 | 32 | 239 | 2015 |
inception_v2 | 699 | 32 | 318 | 2015 |
resnet_v1_101 | 1027 | 32 | 511 | 2015 |
inception_v3 | 1311 | 32 | 618 | 2015 |
resnet_v1_152 | 1507 | 32 | 751 | 2015 |
resnet_v1_200 | 1763 | 32 | 879 | 2015 |
inception_v4 | 2071 | 32 | 998 | 2016 |
inception_resnet_v2 | 3039 | 32 | 1482 | 2016 |
随着模型从AlexNet、VGG发展到ResNet和Inception,感受野逐渐增大,最新网络的感受野通常覆盖整个输入图像。ImageNet top-1准确率与感受野大小呈对数关系,表明大感受野对高级识别任务必要但收益递减。MobileNet通过深度可分离卷积以较小计算代价增加感受野, achieving high recognition performance with compact architecture.
需注意,感受野大小不是影响性能的唯一因素,网络深度、宽度、残差连接、批归一化等也起重要作用。输入像素对特征的影响权重不同,中心像素通常更重要,有效感受野呈高斯分布。
其他网络操作
- 扩张卷积:将核大小k替换为α(k−1)+1\alpha(k-1)+1α(k−1)+1
- 上采样:可视为具有特定核大小的局部操作
- 可分离卷积:感受野特性与等效非可分离卷积相同
- 批归一化:推理时不改变感受野,训练时感受野为整个输入图像
致谢
感谢早期稿件审阅者、代码库贡献者和模型分析协助者。
通过本文推导和开源代码,期望增强对复杂深度学习模型的理解,推动更高效的机器学习研究。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
公众号二维码