1 简介
在本文中介绍了MicroNet,它是一种高效的卷积神经网络具有极低的计算成本。在边缘设备上非常需要这样的低成本网络,但是通常会遭受明显的性能下降。
MicroNet基于2个设计原则来处理极低的FLOPs:
- 1、通过降低节点连接性来避免网络宽度的减小;
- 2、通过在每层引入更复杂的非线性来补偿网络深度的减小。
首先,提出Micro-Factorized卷积,将点和深度卷积分解为低秩矩阵,以便在通道数量和输入/输出连接性之间取得良好的平衡。其次,提出了一个新的激活函数,称为Dynamic Shift-Max,以通过最大化输入特征图与其圆形通道移位之间的多次动态融合来改善非线性。融合是动态的,因为它们的参数适用于输入。
基于Micro-Factorized卷积和动态Shift-Max,MicroNet系列在低FLOPs情况下比现有技术具有显著的性能提升。
2 相关工作
2.1、高效卷积
MobileNets将卷积分解为深度卷积和点态卷积;ShuffleNets采用Group卷积和Channels随机简化PointWise Convolution;也有学者利用Butterfly transform逼近Pointwise Convolution;EfficientNet找到输入分辨率和网络宽度/深度之间的适当关系;MixNet在一个卷积中将多个内核大小混合在一起;AdderNet用加法代替了大量的乘法;GhostNet应用线性变换来生成ghost feature maps;Sandglass翻转反向残块结构,减少信息损失,并训练一个网络支持多个子网络。
2.2、高效推理
高效推理为每个输入自适应定制合适的子网络。并使用强化学习来学习控制器,以跳过现有模型的一部分。MSDNet允许基于预测可信度的简单样本提前退出。搜索最佳的MSDNet。采用图像分辨率实现有效的推理。
2.3、动态神经网络
动态网络通过对输入参数的自适应调整来提高模型的表达能力。HyperNet使用另一个网络为主网络生成参数。SENet通过压缩全局上下文重新衡量Channel。SKNet适应关注不同大小的卷积核。Dynamic 卷积是根据多个卷积核的关注程度对它们进行聚合的结果。Dynamic ReLU适应ReLU中两个线性函数的斜率和截距,使用分组全连接层直接生成卷积权值。将动态卷积从空间不可知扩展到空间特定。提出了一种动态群卷积算法,可对输入通道进行自适应分组。将动态卷积应用于实例分割。学习跨尺度的语义分割的动态路由。
3 MicroNet
3.1、设计原理
极低延迟同时限制了网络宽度和深度。如果把卷积层看作一个图,输入和输出之间的连接由核参数的加权。这里将连接性定义为每个输出节点的连接数。因此,连接的数量等于输出通道的数量和连接的乘积。当计算成本固定时,通道数便与连接数发生冲突。作者认为,两者之间的良好平衡可以有效地避免通道缩减,提高层的表达能力。因此,第1个设计原则是通过降低节点连通性来规避网络宽度的降低。我们通过在更小的尺度上分解点态和深度卷积来实现这一点。
当一个网络的深度显著降低时,它的非线性便会受到约束,导致性能下降。于是作者提出了第2个设计原则通过提高每层的非线性度来补偿网络深度的减小,这里通过设计一个新的激活函数(动态Shift-Max激活函数)来实现这一点。
3.2、 Micro-Factorized卷积
为了平衡通道数量和输入/输出的连接性。作者在一个更小的尺度上对PointWise和DepthWise的卷积进行因式分解。
1)、Micro-Factorized Pointwise卷积
文中提出Group自适应卷积来分解PointWise卷积。假设卷积核W具有相同数量的输入和输出通道。将核矩阵W分解为两个Group自适应卷积,其中群数G依赖于通道数C,从数学上可以表示为:
式中,w是c x c的矩阵;Q的shape为,channel压缩率为R;的shape为,扩展返回到C作为输出的通道数量。
注意,Group数量不是固定的,它与通道数C和减少比R相适应:
这种平方根关系是通过平衡通道C和输入/输出连接性得到的。
如图3所示。随着group数G的增加C增加E减少。当G=R时,两条曲线相交(C=E),此时每个输出通道与所有输入通道连接一次。将得到的卷积矩阵W在数学上划分为块,每个块的秩为1。
2)、Micro-Factorized Depthwise卷积
如图所示,将一个的深度卷积核分解成一个的核和一个的核。每个通道W的核矩阵的形状为,它被分解为向量P和向量。是一个标量值1。这种低秩近似将计算复杂度从降低到。
3)、结合Micro-Factorized Pointwise and Depthwise卷积
作者以2种不同的方式组合了微因数分解的Pointwise和Depthwise卷积:(a)规则组合和(b)lite组合。前者只是将两个卷积连接起来。lite组合使用微因子分解的Depthwise卷积通过对每个通道应用多个Spatial卷积核来扩展通道的数量。然后应用1组自适应卷积来融合和压缩通道的数量。lite组合更有效,因为它节省了来自通道融合的计算,以弥补学习更多的Spatial卷积核。
3.3、动态Shift-Max激活函数
本文还提出了一种新的增强非线性的激活函数。它能够动态地将输入特征图与其循环组移位融合,其中的一组通道移位。动态Shift-Max也加强了Group之间的联系。这是对专注于组内连接的微因数分解Pointwise卷积的补充。
设表示一个输入向量(或张量),它有C个通道,被分成G个Groups。每个Group都有个通道。其中N通道的循环移位可以表示为。通过定义Group循环函数将通道移位扩展为Group移位:
其中,对应于将第个通道平移个Group。动态Shift-Max将多个(J)Group移位组合如下:
其中参数可以通过平均池化后的两个FC层轻松实现,,类似于SENet的实现方式。