乐趣区

关于算法:轻量级网络综述-主干网络篇

  轻量级网络的外围是在尽量放弃精度的前提下,从体积和速度两方面对网络进行轻量化革新,本文对轻量级网络进行简述,次要波及以下网络:

  • SqueezeNet 系列
  • ShuffleNet 系列
  • MnasNet
  • MobileNet 系列
  • CondenseNet
  • ESPNet 系列
  • ChannelNets
  • PeleeNet
  • IGC 系列
  • FBNet 系列
  • EfficientNet
  • GhostNet
  • WeightNet
  • MicroNet
  • MobileNext

SqueezeNet 系列


  SqueezeNet 系列是比拟晚期且经典的轻量级网络,SqueezeNet 应用 Fire 模块进行参数压缩,而 SqueezeNext 则在此基础上退出拆散卷积进行改良。尽管 SqueezeNet 系列不如 MobieNet 应用宽泛,但其架构思维和试验论断还是能够值得借鉴的。

SqueezeNet

  SqueezeNet 是晚期开始关注轻量化网络的钻研之一,应用 Fire 模块进行参数压缩。

  SqueezeNet 的外围模块为 Fire 模块,构造如图 1 所示,输出层先通过 squeeze 卷积层 ($1\times 1$ 卷积) 进行维度压缩,而后通过 expand 卷积层 ($1\times 1$ 卷积和 $3\times 3$ 卷积混合) 进行维度扩大。Fire 模块蕴含 3 个参数,别离为 squeeze 层的 $1\times 1$ 卷积核数 $s_{1×1}$、expand 层的 $1\times 1$ 卷积核数 $e_{1×1}$ 和 expand 层的 $3\times 3$ 卷积核数 $e_{3×3}$,个别 $s_{1×1}<(e_{1×1}+e_{3×3})$

SqueezeNext

  SqueezeNext 是 SqueezeNet 实战升级版,间接和 MobileNet 比照性能。SqueezeNext 全副应用规范卷积,剖析理论推理速度,优化的伎俩集中在网络整体构造的优化。

  SqueezeNext 的设计沿用残差构造,没有应用过后风行的深度拆散卷积,而是间接应用了拆散卷积,设计次要基于以下策略:

  • Low Rank Filters
      低秩合成的核心思想就是将大矩阵分解成多个小矩阵,这里应用 CP 合成(Canonical Polyadic Decomposition),将 $K\times K$ 卷积分解成 $K\times 1$ 和 $1\times K$ 的拆散卷积,参数量能从 $K^2$ 降为 $2K$。
  • Bottleneck Module
      参数量与输入输出维度无关,尽管能够应用深度拆散卷积来缩小计算量,然而深度拆散卷积在终端零碎的计算并不高效。因而采纳 SqueezeNet 的 squeeze 层进行输出维度的压缩,每个 block 的结尾应用间断两个 squeeze 层,每层升高 1 / 2 维度。
  • Fully Connected Layers
      在 AlexNet 中,全连贯层的参数占总模型的 96%,SqueezeNext 应用 bottleneck 层来升高全连贯层的输出维度,从而升高网络参数量。

ShuffleNet 系列


  ShuffleNet 系列是轻量级网络中很重要的一个系列,ShuffleNetV1 提出了 channel shuffle 操作,使得网络能够纵情地应用分组卷积来减速,而 ShuffleNetV2 则推倒 V1 的大部分设计,从理论登程,提出 channel split 操作,在减速网络的同时进行了特色重用,达到了很好的成果。

ShuffleNet V1

  ShuffleNet 的外围在于应用 channel shuffle 操作补救分组间的信息交换,使得网络能够纵情应用 pointwise 分组卷积,不仅能够缩小次要的网络计算量,也能够减少卷积的维度。

  在目前的一些支流网络中,通常应用 pointwise 卷积进行维度的升高,从而升高网络的复杂度,但因为输出维度较高,pointwise 卷积的开销也是非常微小的。对于小网络而言,低廉的 pointwise 卷积会带来显著的性能降落,比方在 ResNext unit 中,pointwise 卷积占据了 93.4% 的计算量。为此,论文引入了分组卷积,首先探讨了两种 ShuffleNet 的实现:

  • 图 1a 是最间接的办法,将所有的操作进行了相对的维度隔离,但这会导致特定的输入仅关联了很小一部分的输出,阻隔了组间的信息流,升高了表达能力。
  • 图 1b 对输入的维度进行重新分配,首先将每个组的输入分成多个子组,而后将每个子组输出到不同的组中,可能很好地保留组间的信息流。

  图 1b 的思维能够简略地用 channel shuffle 操作进行实现,如图 1c 所示,假如蕴含 $g$ 组的卷积层输入为 $g\times n$ 维,首先将输入 reshape()为 $(g, n)$,而后进行 transpose(),最初再 flatten()回 $g\times n$ 维。

ShuffleNet V2

  ShuffleNetV1 的 pointwise 分组卷积以及 bottleneck 后果均会进步 MAC,导致不可漠视的计算损耗。为了达到高性能以及高准确率,要害是在不通过浓密卷积以及过多分组的状况下,取得输入输出一样的大维度卷积。ShuffleNet V2 从实际登程,以理论的推理速度为领导,总结出了 5 条轻量级网络的设计要领,并依据要领提出了 ShuffleNetV2,很好地兼顾了准确率和速度,其中 channel split 操作非常亮眼,将输出特色分成两局部,达到了相似 DenseNet 的特色重用成果。

  ShuffeNetV1 的 unit 构造如图 3ab 所示,在 V1 的根底上退出 channel split 操作,如图 3c 所示。在每个 unit 的结尾,将特色图分为 $c-c^{‘}$ 以及 $c^{‘}$ 两局部,一个分支间接往后传递,另一个分支蕴含 3 个输入输出维度一样的卷积。V2 不再应用分组卷积,因为 unit 的结尾曾经相当于进行了分组卷积。在实现卷积操作后,将特色 concate,复原到 unit 的输出大小,而后进行 channel shuffle 操作。这里没有了 element-wise adddition 操作,也节俭了一些计算量,在实现的时候将 concat/channel shuffle/channel split 合在一起做了,可能进一步晋升性能。
  空间下采样时对 unit 进行了大量的批改,如图 3d 所示,去掉了 channel split 操作,因而输入大小升高一倍,而维度则会增加一倍。

MnasNet


  论文提出了挪动端的神经网络架构搜寻办法,该办法次要有两个思路,首先应用多指标优化办法将模型在理论设施上的耗时融入搜寻中,而后应用合成的档次搜寻空间让网络放弃层多样性的同时,搜寻空间仍然很简洁,MnasNet 可能在准确率和耗时中有更好的 trade off

MobileNet 系列


  MobileNet 系列是很重要的轻量级网络家族,出自谷歌,MobileNetV1 应用深度可拆散卷积构建轻量级网络,MobileNetV2 提出翻新的 inverted residual with linear bottleneck 单元,尽管层数变多了,然而整体网络准确率和速度都有晋升,MobileNetV3 则联合 AutoML 技术与人工微调进行更轻量级的网络构建。

MobileNetV1

  MobileNetV1 基于深度可拆散卷积构建了十分轻量且提早小的模型,并且能够通过两个超参数进一步管制模型的大小,该模型可能利用到终端设备中,具备很重要的实际意义。

  MobileNet 通过深度可拆散卷积优进行计算量优化,将规范卷积转化为深度卷积和 $1\times 1$pointwise 卷积,每层前面都会接 BN 和 ReLU。

MobileNetV2

  MobileNetV2 首先表明高维特色理论能够用紧凑的低维特色表白,而后提出了新的层单元 inverted residual with linear bottleneck,该构造与残差网络单元相似,都蕴含 shorcut,区别在于该构造是输入输出维度少,两头通过线性卷积先扩大升维,而后通过深度卷积进行特征提取,最初再映射降维,能够很好地放弃网络性能且网络更加轻量。

MobileNetV3

  MobileNetV3 先基于 AutoML 构建网络,而后进行人工微调优化,搜寻办法应用了 platform-aware NAS 以及 NetAdapt,别离用于全局搜寻以及部分搜寻,而人工微调则调整了网络前后几层的构造、bottleneck 退出 SE 模块以及提出计算高效的 h -swish 非线性激活。

CondenseNet


  DenseNet 基于特色复用,可能达到很好的性能,然而论文认为其内在连贯存在很多冗余,晚期的特色不须要复用到较后的层。为此,论文基于可学习分组卷积提出 CondenseNet,可能在训练阶段主动稠密网络结构,抉择最优的输入输出连贯模式,并在最初将其转换成惯例的分组卷积分组卷积构造。

  分组卷积的学习蕴含多个阶段,前半段训练过程蕴含多个 condensing 阶段,联合疏导稠密化的正则化办法来重复训练网络,而后将不重要的 filter 剪枝。后半部分为 optimization 阶段,这个阶段对剪枝固定后的网络进行学习。

ESPNet 系列


  ESPNet 系列的外围在于空洞卷积金字塔,每层具备不同的 dilation rate,在参数量不减少的状况下,可能交融多尺度特色,绝对于深度可拆散卷积,深度可拆散空洞卷积金字塔性价比更高。另外,HFF 的多尺度特色交融办法也很值得借鉴。

ESPNet

  ESPNet 是用于语义宰割的轻量级网络,外围在于 ESP 模块。如图 a 所示,该模块蕴含 point-wise 卷积和空洞卷积金字塔,别离用于升高计算复杂度以及重采样无效感触域不同的特色。ESP 模块比其它卷积合成办法 (mobilenet/shufflenet) 更高效,ESPNet 能在 GPU/ 笔记本 / 终端设备上达到 112FPS/21FPS/9FPS。
  另外,论文发现,只管空洞卷积金字塔带来更大的感触域,但间接 concate 输入却会带来奇怪网格纹路。为了解决这个问题,论文提出图 b 的 HFF 操作,在 concate 之前先将输入进行层级相加。绝对于增加额定的卷积来进行后处理,HFF 可能无效地解决网格纹路而不带来过多的计算量。另外,为了保障网络的梯度传递,在 ESP 模块增加了一条从输出到输入的 shortcut 连贯。

ESPNetV2

  ESPNetv2 在 ESPNet 的根底上联合深度拆散卷积的设计办法,进行了进一步的模型轻量化。首先将 point-wise 卷积替换为分组 point-wise 卷积,而后将计算量较大的空洞卷积替换为深度可拆散空洞卷积,最初仍然应用 HFF 来打消网格纹路,输入特色减少一次特征提取,失去图 b 的构造。思考到独自计算 K 个 point-wise 卷积等同于单个分组数为 K 的 point-wise 分组卷积,而分组卷积的在实现上更高效,于是改良为图 c 的最终构造。

ChannelNets


  论文提出 channel-wise 卷积的概念,将输入输出维度的连贯进行稠密化而非全连贯,区别于分组卷积的严格分组,以相似卷积滑动的模式将输出 channel 与输入 channel 进行关联,可能更好地保留 channel 间的信息交换。基于 channel-wise 卷积的思维,论文进一步提出了 channel-wise 深度可拆散卷积,并基于该构造替换网络最初的全连贯层 + 全局池化的操作,搭建了 ChannelNets。

PeleeNet


  基于 DenseNet 的浓密连贯思维,论文通过一系列的构造优化,提出了用于挪动设施上的网络结构 PeleeNet,并且交融 SSD 提出指标检测网络 Pelee。从试验来看,PeleeNet 和 Pelee 在速度和精度上都是不错的抉择。

IGC 系列


  IGC 系列网络的外围在分组卷积的极致使用,将惯例卷积分解成多个分组卷积,可能缩小大量参数,另外互补性准则和排序操作可能在起码的参数量状况下保障分组间的信息流通。但整体而言,尽管应用 IGC 模块后参数量和计算量升高了,但网络结构变得更为繁琐,可能导致在实在应用时速度变慢。

IGCV1

  Interleaved group convolution(IGC)模块蕴含主分组卷积和次分组卷积,别离对主分区和次分区进行特征提取,主分区通过输出特色分组取得,比方将输出特色分为 $L$ 个分区,每个分区蕴含 $M$ 维特色,而对应的次分区则分为 $M$ 个分区,每个分区蕴含 $L$ 维特色。主分组卷积负责对输出特色图进行分组特征提取,而次组卷积负责对主分组卷积的输入进行交融,为 $1\times 1$ 卷积。IGC 模块模式上与深度可拆散卷积相似,但分组的概念贯通整个模块,也是节俭参数的要害,另外模块内补充了两个排序模块来保障 channel 间的信息交换。

IGCV2

  IGCV1 通过两个分组卷积来对原卷积进行合成,缩小参数且放弃残缺的信息提取。但作者发现,因为主分组卷积和次分组卷积在分组数上是互补的,导致次卷积的分组数个别较小,每个分组的维度较大,次卷积核较为浓密。为此,IGCV2 提出 Interleaved Structured Sparse Convolution,应用多个间断的稠密分组卷积来替换原来的次分组卷积,每个分组卷积的分组数都足够多,保障卷积核的稠密性。

IGCV3

  基于 IGCV 和 bootleneck 的思维,IGCV3 联合低秩卷积核和稠密卷积核来形成浓密卷积核,如图 1 所示,IGCV3 应用低秩稠密卷积核 (bottleneck 模块) 来扩大和输出分组特色的维度以及升高输入的维度,两头应用深度卷积提取特色,另外引入松弛互补性准则,相似于 IGCV2 的严格互补性准则,用来应答分组卷积输入输出维度不一样的状况。

FBNet 系列


  FBNet 系列是齐全基于 NAS 搜寻的轻量级网络系列,剖析以后搜寻办法的毛病,逐渐减少创新性改良,FBNet 联合了 DNAS 和资源束缚,FBNetV2 退出了 channel 和输出分辨率的搜寻,FBNetV3 则是应用准确率预测来进行疾速的网络结构搜寻。

FBNet

  论文提出 FBNet,应用可微神经网络搜寻 (DNAS) 来发现硬件相干的轻量级卷积网络,流程如图 1 所示。DNAS 办法将整体的搜寻空间示意为超网,将寻找最优网络结构问题转换为寻找最优的候选 block 散布,通过梯度降落来训练 block 的散布,而且能够为网络每层抉择不同的 block。为了更好地预计网络的时延,事后测量并记录了每个候选 block 的理论时延,在估算时间接依据网络结构和对应的时延累计即可。

FBNetV2

  DNAS 通过训练蕴含所有候选网络的超网来采样最优的子网,尽管搜寻速度快,但须要消耗大量的内存,所以搜寻空间个别比其它办法要小,且内存耗费和计算量耗费随搜寻维度线性减少。为了解决这个问题,论文提出 DMaskingNAS,将 channel 数和输出分辨率别离以 mask 和采样的形式退出到超网中,在带来大量内存和计算量的状况下,大幅减少 $10^{14}$ 倍搜寻空间。

FBNetV3

  论文认为目前的 NAS 办法大都只满足网络结构的搜寻,而没有在意网络性能验证时的训练参数的设置是否适合,这可能导致模型性能降落。为此,论文提出 JointNAS,在资源束缚的状况下,同时搜寻最精确的训练参数以及网络结构。FBNetV3 齐全脱离了 FBNetV2 和 FBNet 的设计,应用的准确率预测器以及基因算法都曾经在 NAS 畛域有很多利用,次要亮点在于将训练参数退出到了搜寻过程中,这对性能的晋升非常重要。

EfficientNet


  论文对模型缩放进行深入研究,提出混合缩放办法,该办法能够更优地抉择宽度、深度和分辨率的维度缩放比例,从而使得模型可能达到更高的精度。另外,论文通过 NAS 神经架构搜寻提出 EfficientNet,配合混合缩放办法,可能应用很大量的参数达到较高的准确率。

GhostNet


  训练好的网络个别都有丰盛甚至冗余的特色图信息来保障对输出的了解,类似的特色图相似于对方的 ghost。但冗余的特色是网络的要害个性,论文认为与其防止冗余特色,不如以一种 cost-efficient 的形式承受,于是提出能用更少参数提取更多特色的 Ghost 模块,首先应用输入很少的原始卷积操作 (非卷积层操作) 进行输入,再对输入应用一系列简略的线性操作来生成更多的特色。这样,不必扭转其输入的特色图数量,Ghost 模块的整体的参数量和计算量就曾经升高了。

WeightNet


  论文提出了一种简略且高效的动静生成网络 WeightNet,该构造在权值空间上集成了 SENet 和 CondConv 的特点,在激活向量前面增加一层分组全连贯,间接产生卷积核的权值,在计算上非常高效,并且可通过超参数的设置来进行准确率和速度上的 trade-off。

MicroNet


  论文提出应答极低计算量场景的轻量级网络 MicroNet,蕴含两个外围思路 Micro-Factorized convolution 和 Dynamic Shift-Max,Micro-Factorized convolution 通过低秩近似将原卷积分解成多个小卷积,放弃输入输出的连接性并升高连接数,Dynamic Shift-Max 通过动静的组间特色交融减少节点的连贯以及晋升非线性,补救网络深度缩小带来的性能升高。

MobileNext


  论文深入分析了 inverted residual block 的设计理念和毛病,提出更适宜轻量级网络的 sandglass block,基于该构造搭建的 MobileNext。sandglass block 由两个 depthwise 卷积和两个 pointwise 卷积组成,局部卷积不需激活以及 shorcut 建设在高维度特色上。依据论文的试验后果,MobileNext 在参数量、计算量和准确率上都有更优的体现。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

退出移动版