CNN 模型小型化(上)
神经网络模型被广泛的应用于工业领域,并取得了巨大成功。然而,由于存储空间以及算力的限制,大而复杂的神经网络模型是难以被应用的。首先由于模型过于庞大,计算参数多(如下图所示),面临内存不足的问题。其次某些场景要求低延迟,或者响应要快。所以,研究小而高效的 CNN 模型至关重要。
本文将介绍一些常见的 CNN 小型化结构,如:SqueezeNet 系列(2016),ShuffleNet 系列(2017),MobileNet 系列(2017),ESPNet 系列(2018),FBNet 系列(2018),EfficientNet 系列(2019),GhostNet 系列(2019)。
SqueezeNet 系列
SqueezeNet
SqueezeNet:是轻量化主干网络中比较著名的,它发表于 ICLR 2017,在达到了 AlexNet 相同的精度的同时,只用了 AlexNet 1/50 的参数量。SqueezeNet 核心贡献在于使用 Fire Module(如下图所示),即使用 1 × 1 1\times 1 1×1 卷积降低通道数目(squeeze),然后用 1 × 1 1 \times 1 1×1 和 3 × 3 3 \times 3 3×3卷积提升通道数(expand)。
SqueezeNet 算法的主要目标是构建轻量参数的 CNN 架构,同时不损失精度。为了实现这一目标,作者总共采用了三种策略来设计 CNN 架构,具体如下:
-
将 3 × 3 3 \times 3 3×3卷积替换成 1 × 1 1 \times 1 1×1 卷积,可以使参数量减少 9 倍。
-
减少 $3\times 3 $卷积的通道数,一个 $3 \times 3 $卷积的计算量是 3 × 3 × M × N 3 \times 3 \times M \times N 3×3×M×N ,通过将 M 和 N 减少以降低参数数量。
-
将下采样操作延后&