No history yet

CNN深度演进与权衡

超越堆叠:现代CNN架构的演进

简单地堆叠更多卷积层曾是提升神经网络性能的直接方法。但很快,研究人员就遇到了一个瓶颈:当网络变得过深时,性能不仅没有提升,反而开始下降。这种现象被称为“退化问题”,它并非由过拟合引起,而是因为深层网络难以优化,梯度在反向传播过程中变得越来越微弱,导致网络无法有效学习。为了突破这一限制,一系列创新的架构应运而生。

ResNet: 走捷径的智慧

想象一下,在一个复杂的任务中,如果增加一个步骤反而让结果变差了,最简单的优化就是跳过这个步骤,直接使用原始输入。ResNet(残差网络)的设计者正是借鉴了这种思路。他们没有让网络层直接学习一个复杂的目标映射 H(x)H(x),而是学习一个相对简单的残差映射 F(x)=H(x)xF(x) = H(x) - x

这个小小的改变意义重大。原始的目标映射被重新定义为 H(x)=F(x)+xH(x) = F(x) + x。这个加法操作通过一条“跳跃连接”(Skip Connection)实现,它将输入 xx 直接跨层传递,与该层学习到的残差 F(x)F(x) 相加。

在数学上,这个操作可以表示为:

y=F(x,{Wi})+xy = \mathcal{F}(x, \{W_i\}) + x

如果某个层是有害的,网络可以通过将该层的权重 WiW_i 趋近于零,从而让 F(x)F(x) 趋近于零。这样,输出就近似于输入 xx,网络轻松地实现了“恒等映射”,即直接跳过了这一层。这种结构极大地缓解了问题,因为梯度可以通过跳跃连接直接回传到浅层网络,使得训练数百甚至上千层的网络成为可能。

DenseNet: 特征的极致重用

ResNet通过加法解决了深度问题,而DenseNet(密集连接网络)则提出了一个更激进的想法:为什么不将每一层都与它之后的所有层直接连接起来呢?

在DenseNet中,每一层的输入都包含了前面所有层的输出特征图(Feature Maps)。这些特征图不是通过相加合并,而是通过在通道维度上的“串联”(Concatenation)进行聚合。这样做的好处是最大化了信息流,每一层都可以直接访问到所有先前层提取的特征。

DenseNet的核心思想是鼓励特征重用,从而可以用更少的参数和计算量实现比ResNet更优的性能。

这种密集连接的结构带来两大优势:

  1. 参数效率高:由于特征被持续重用,网络不需要重新学习那些在浅层就已经提取得很好的特征。因此,DenseNet的层可以设计得更“窄”(即拥有较少的输出通道),从而显著减少了模型总参数量。
  2. 隐式的深度监督:由于每一层都直接连接到最后的损失函数,梯度可以更直接地流向所有层,带来了类似深度监督的效果,有助于训练。

然而,这种设计的代价是巨大的内存消耗。每次串联操作都会增加特征图的通道数,导致GPU内存占用迅速增长。为了控制这种增长,DenseNet引入了“过渡层”(Transition Layer)来压缩通道数量。

特性ResNet (加法聚合)DenseNet (串联聚合)
聚合方式逐元素相加通道维度串联
信息流原始信息与变换信息相加汇集所有历史信息
参数效率较高非常高
内存占用适中非常高
解决问题缓解梯度消失,实现深度训练促进特征重用,提高参数效率

缩放的艺术: EfficientNet 与 MobileNet

当算力有限时,我们如何在不牺牲过多性能的前提下,让模型变得更小更快?MobileNet系列架构通过引入(Depthwise Separable Convolution)来回答这个问题。

这种巧妙的卷积分解方式,在保持与标准卷积相似效果的同时,将计算成本降低了一个数量级。这使得在手机等移动设备上运行强大的视觉模型成为可能。

另一方面,当我们拥有充足的计算资源时,如何最有效地利用它们来提升模型性能?传统的做法是单独增加网络的深度(层数)、宽度(通道数)或输入图像的分辨率。但EfficientNet的研究者发现,孤立地调整这三个维度,性能收益会很快饱和。

Lesson image

EfficientNet提出了一种“复合缩放”(Compound Scaling)方法。它认为,网络的深度、宽度和分辨率之间存在一个最佳的平衡关系。通过使用(NAS)找到一个优秀的基线网络(EfficientNet-B0),然后用一个固定的复合系数 ϕ\phi 同时、均衡地扩展这三个维度,可以系统性地获得一系列性能卓越且效率极高的模型。这种缩放策略比单一维度的缩放有效得多,为模型设计提供了新的思路。

从ResNet的残差连接到DenseNet的特征重用,再到MobileNet的轻量化和EfficientNet的智能缩放,CNN架构的演进展示了在追求更高性能的同时,对计算效率和资源限制的深刻思考。理解这些设计的核心思想与权衡,是根据具体任务需求选择或设计最佳视觉模型的关键一步。

现在,来测试一下你对这些高级架构的理解吧。

Quiz Questions 1/6

ResNet(残差网络)通过引入“跳跃连接”主要解决了深度神经网络中的什么问题?

Quiz Questions 2/6

与ResNet通过元素相加(addition)来合并特征不同,DenseNet是如何聚合前面所有层的特征图(Feature Maps)的?