轻量化神经网络综述

本文综述了轻量化神经网络的基本卷积运算,包括标准卷积、分组卷积、深度卷积和逐点卷积。讨论了人工设计的MobileNet V1、V2和ShuffleNet V1、V2的架构,强调了深度可分离卷积和通道操作在减少计算量中的作用。此外,还介绍了NAS与神经网络架构搜索,如NasNet和MnasNet,以及自动模型压缩技术,如AMC和TensorFlow Lite的模型量化。

陈泰红

 研究方向:机器学习、图像处理

其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。

 

导言

深度神经网络模型被广泛应用在图像分类、物体检测等机器视觉任务中,并取得了巨大成功。然而,由于存储空间和功耗的限制,神经网络模型在嵌入式设备上的存储与计算仍然是一个巨大的挑战。

 

目前工业级和学术界设计轻量化神经网络模型主要有4个方向:

(1)人工设计轻量化神经网络模型;

(2)基于神经网络架构搜索(Neural Architecture Search,NAS)的自动化设计神经网络;

(3)CNN模型压缩;

(4)基于AutoML的自动模型压缩。

 

本文首先介绍基本卷积计算单元,并基于这些单元介绍MobileNet V1&V2,ShuffleNet V1&V2的设计思路。其次,最后介绍自动化设计神经网络的主流方法和基本思路。最后概述CNN模型压缩的主要方法,详细说明基于AutoML的自动模型压缩的相关算法:AMC、PockFlow以及TensorFlow lite的代码实现。

 

1、基本卷积运算

手工设计轻量化模型主要思想在于设计更高效的“网络计算方式”(主要针对卷积方式),从而使网络参数减少,并且不损失网络性能。本节概述了CNN模型(如MobileNet及其变体)中使用的基本卷积运算单元,并基于空间维度和通道维度,解释计算效率的复杂度。

1.1 标准卷积

 

图1标准卷积计算图

图1标准卷积计算图

HxW表示输入特征图空间尺寸(如图1所示,H和W代表特征图的宽度和高度,输入和输出特征图尺寸不变),N是输入特征通道数,KxK表示卷积核尺寸,M表示输出卷积通道数,则标准卷积计算量是HWNK²M。

图2标准卷积计算过程

如图3所示标准卷积在空间维度和通道维度直观说明(以下示意图省略“spatial“,”channel“,”Input“,”Output“),输入特征图和输出特征图之间连接线表示输入和输出之间的依赖关系。以conv3x3为例子,输入和输出空间“spatial”维度密集连接表示局部连接;而通道维度是全连接,卷积运算都是每个通道卷积操作之后的求和(图2),和每个通道特征都有关,所以“channel”是互相连接的关系。

图3标准卷积:空间维度和通道维度示意图

 

1.2 Grouped Convolution

分组卷积是标准卷积的变体,其中输入特征通道被为G组(图4),并且对于每个分组的信道独立地执行卷积,则分组卷积计算量是HWNK²M/G,为标准卷积计算量的1/G。

图 4分组卷积:空间维度和通道维度示意图

 

Grouped Convlution最早源于AlexNet。AlexNet在ImageNet LSVRC-2012挑战赛上大显神威,以绝对优势夺得冠军,是卷积神经网络的开山之作,引领了人工智能的新一轮发展。但是AlexNet训练时所用GPU GTX 580显存太小,无法对整个模型训练,所以Alex采用Group convolution将整个网络分成两组后,分别放入一张GPU卡进行训练(如图5所示)。

图5 AlexNet网络架构

 

1.3 Depthwise convolution

Depthwise convolution[7]最早是由Google提出,是指将NxHxWxC输入特征图分为group=C组(既Depthwise 是Grouped Convlution的特殊简化形式),然后每一组做k*k卷积,计算量为HWK²M(是普通卷积计算量的1/N,通过忽略通道维度的卷积显著降低计算量)。Depthwise相当于单独收集每个Channel的空间特征。

 

图6 depthwise卷积

 

图7 Depthwise卷积:空间维度和通道维度示意图

 

1.4 pointwise convolution

Pointwise是指对NxHxWxC的输入做 k个普通的 1x1卷积,如图8,主要用于改变输出通道特征维度。Pointwise计算量为HWNM。

Pointwise卷积相当于在通道之间“混合”信息。

图8 Pointwise卷积

 

图9 Pointwise卷积:空间维度和通道维度示意图

 

1.5 Channel Shuffle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值