8. 现代卷积神经网络

现在我们了解了如何构建CNN的基础知识,接下来我们将回顾一下现代CNN架构。由于大量令人兴奋的新设计不断涌现,这次回顾必然是不完整的。它们的重要性在于,不仅可以直接用于视觉任务,还可以作为更高级任务(如追踪(Zhang et al., 2021)、分割(Long et al., 2015)、目标检测(Redmon and Farhadi, 2018)或风格转换(Gatys et al., 2016))的基础特征生成器。在本章中,大部分章节都对应一个重要的CNN架构,这些架构在某个时期(或目前)是许多研究项目和已部署系统的基础模型。这些网络中的每一个都曾一度成为主流架构,其中许多是ImageNet竞赛的获胜者或亚军,该竞赛自2010年以来一直是衡量计算机视觉领域监督学习进展的晴雨表。直到最近,从Dosovitskiy et al. (2021)开始,再到Swin Transformer(Liu et al., 2021),Transformer才开始取代CNN。我们将在第 11 节中介绍这一发展。

虽然*深度*神经网络的想法非常简单(就是将一堆层堆叠在一起),但不同架构和超参数选择下的性能差异可能很大。本章中描述的神经网络是直觉、一些数学见解和大量试错的产物。我们按时间顺序介绍这些模型,部分原因是为了传达一种历史感,以便你能形成自己对该领域发展方向的直觉,并可能开发出你自己的架构。例如,本章中描述的批量规范化和残差连接为训练和设计深度模型提供了两个流行的想法,这两个想法后来也应用于计算机视觉之外的架构。

我们从AlexNet(Krizhevsky et al., 2012)开始我们的现代CNN之旅,这是第一个在大规模视觉挑战中击败传统计算机视觉方法的大规模网络;接着是VGG网络(Simonyan and Zisserman, 2014),它利用了多个重复的元素块;网络中的网络(NiN),它在输入上逐块地对整个神经网络进行卷积(Lin et al., 2013);使用多分支卷积网络的GoogLeNet(Szegedy et al., 2015);残差网络(ResNet)(He et al., 2016),它仍然是计算机视觉中最受欢迎的现成架构之一;用于更稀疏连接的ResNeXt块(Xie et al., 2017);以及作为残差架构推广的DenseNet(Huang et al., 2017)。随着时间的推移,许多针对高效网络的特殊优化被开发出来,例如坐标位移(ShiftNet)(Wu et al., 2018)。这最终促成了对高效架构的自动搜索,如MobileNet v3(Howard et al., 2019)。它还包括Radosavovic et al. (2020)的半自动设计探索,这导致了RegNetX/Y的产生,我们将在本章后面讨论。<这项工作之所以具有指导意义,是因为它为将暴力计算与实验者的独创性相结合以寻找高效设计空间提供了一条路径。同样值得注意的是Liu et al. (2022)的工作,因为它表明训练技巧(例如优化器、数据增强和正则化)在提高准确性方面起着关键作用。它还表明,鉴于计算和数据的增加,一些长期存在的假设,例如卷积窗口的大小,可能需要重新审视。我们将在本章中陆续讨论这些以及更多的问题。