过去的部分带我们参观了计算机视觉的现代网络设计。我们涵盖的所有工作的共同点是它严重依赖科学家的直觉。许多架构在很大程度上受到了人类创造力的启发,而在很大程度上受到了对深度网络提供的设计空间的系统探索的影响。尽管如此,这种网络工程方法已经取得了巨大的成功。
由于 AlexNet(第 8.1 节)在 ImageNet 上击败了传统的计算机视觉模型,因此通过堆叠卷积块构建非常深的网络变得很流行,所有这些都是由相同的模式设计的。尤其,3×3卷积由 VGG 网络(第 8.2 节)推广。NiN(第 8.3 节)表明即使1×1通过添加局部非线性,卷积可能是有益的。此外,NiN 通过跨所有位置的聚合解决了在网络头部聚合信息的问题。GoogLeNet(8.4节)在其Inception block中加入了多个不同卷积宽度的分支,结合了VGG和NiN的优点。ResNets(第 8.6 节)改变了对身份映射的归纳偏差(来自f(x)=0). 这允许非常深的网络。将近十年后,ResNet 设计仍然流行,证明了它的设计。最后,ResNeXt(第 8.6.5 节)添加了分组卷积,在参数和计算之间提供了更好的权衡。挤压和激发网络 (SENets) 是用于视觉的变形金刚的前身,可实现位置之间的高效信息传输 (Hu等人,2018 年)。他们通过计算每个通道的全局注意力函数来实现这一点。
到目前为止,我们省略了通过神经架构搜索 (NAS)获得的网络(Liu等人,2018 年,Zoph 和 Le,2016 年)。我们之所以选择这样做,是因为它们的成本通常很高,依赖于蛮力搜索、遗传算法、强化学习或某种其他形式的超参数优化。给定一个固定的搜索空间,NAS 使用搜索策略根据返回的性能估计自动选择架构。NAS 的结果是单个网络实例。EfficientNets 是这次搜索的显着成果 (Tan 和 Le,2019 年)。
下面我们讨论一个与寻求单一最佳网络完全不同的想法。它在计算上相对便宜,它会在途中产生科学见解,并且在结果质量方面非常有效。让我们回顾一下Radosavovic等人的策略。( 2020 )设计网络设计空间。该策略结合了手动设计和 NAS 的优势。它通过对网络分布进行操作 并以某种方式优化分布以获得整个网络系列的良好性能来实现这一点。它的结果是RegNets,特别是 RegNetX 和 RegNetY,以及一系列用于设计高性能 CNN 的指导原则。
8.8.1. AnyNet 设计空间
下面的描述紧跟Radosavovic等人的推理 。( 2020 )加上一些缩写以使其符合本书的范围。首先,我们需要一个供网络系列探索的模板。本章设计的共同点之一是网络由主干、主体 和头部组成。. stem 执行初始图像处理,通常通过具有较大窗口大小的卷积。主体由多个块组成,执行从原始图像到对象表示所需的大量转换。最后,头部将其转换为所需的输出,例如通过用于多类分类的 softmax 回归器。反过来,身体由多个阶段组成,以降低的分辨率对图像进行操作。事实上,主干和每个后续阶段都占空间分辨率的四分之一。最后,每个阶段由一个或多个块组成。这种模式对所有网络都很常见,从 VGG 到 ResNeXt。事实上,对于通用 AnyNet 网络的设计, Radosavovic等人。( 2020 )使用了 ResNeXt 块图 8.6.5。
让我们详细回顾一下图 8.8.1中概述的结构。如前所述,AnyNet 由主干、主体和头部组成。词干将 RGB 图像(3 通道)作为输入,使用 3×3与 stride 的卷积2,然后是批量规范,将分辨率减半r×r到 r/2×r/2. 此外,它生成c0作为身体输入的通道。
由于该网络旨在与形状的 ImageNet 图像配合使用 224×224×3,身体用于将其减少到 7×7×c4通过 4 个阶段(回想一下 224/21+4=7), 每个最终的步幅为2. 最后,head 通过全局平均池采用完全标准的设计,类似于 NiN(第 8.3 节),然后是一个完全连接的层以发出一个n维向量为 n-类分类。
大多数相关的设计决策都是网络主体固有的。它分阶段进行,每个阶段都由我们在第 8.6.5 节中讨论的相同类型的 ResNeXt 块组成。那里的设计再次完全通用:我们从一个块开始,通过使用一个步长将分辨率减半2(图8.8.1最右边 )。为了匹配这一点,ResNeXt 块的剩余分支需要通过1×1卷积。此块后跟可变数量的附加 ResNeXt 块,这些块使分辨率和通道数均保持不变。请注意,常见的设计实践是在卷积块的设计中添加一个小瓶颈。因此,瓶颈比 ki≥1我们提供一些渠道