晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析

论文提出应对极低计算量场景的轻量级网络MicroNet,包含两个核心思路Micro-Factorized convolution和Dynamic Shift-Max,Micro-Factorized convolution通过低秩近似将原卷积分解成多个小卷积,保持输入输出的连接性并降低连接数,Dynamic Shift-Max通过动态的组间特征融合增加节点的连接以及提升非线性,弥补网络深度减少带来的性能降低。从实验结果来看,MicroNet的性能十分强劲
?
来源:晓飞的算法工程笔记 公众号
论文: MicroNet: Towards Image Recognition with Extremely Low FLOPs
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

  • 论文地址:https://arxiv.org/abs/2011.12289
Introduction ? 论文将研究定义在一个资源十分紧张的场景:在6MFLOPs的限定下进行分辨率为224x224的1000类图片分类。对于MobileNetV3,原版的计算量为112M MAdds,将其降低至12M MAdds时,top-1准确率从71.7%降低到了49.8%。可想而知,6M MAdds的场景是十分苛刻的,需要对网络进行细心的设计。常规的做法可直接通过降低网络的宽度和深度来降低计算量,但这会带来严重的性能下降。
? 为此,论文在设计MicroNet时主要遵循两个设计要领:1)通过降低特征节点间的连通性来避免网络宽度的减少。2)通过增强非线性能力来补偿网络深度的减少。MicroNet分别提出了Micro-Factorized Convolution和Dynamic Shift-Max来满足上述两个原则,Micro-Factorized Convolution通过低秩近似减少输入输出的连接数但不改变连通性,而Dynamic Shift-Max则是更强有力的激活方法。从实验结果来看,仅需要6M MAdds就可以达到53.0%准确率,比12M MAdds的MobileNetV3还要高。
Micro-Factorized Convolution ? Micro-Factorized Convolution主要是对MobileNet的深度分离卷积进行更轻量化的改造,对pointwise convolution和depthwise convolution进行低秩近似。
Micro-Factorized Pointwise Convolution
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 论文将pointwise convoluton分解成了多个稀疏的卷积,如上图所示,先对输入进行维度压缩,shuffle后进行维度扩展,个人感觉这部分与shufflenet基本一样。这样的操作在保证输入与输出均有关联的情况下,使得输入与输出之间的连接数减少了很多。
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 假定卷积核 W W W的输入输出维度相同,均为 C C C,Micro-Factorized Convolution可公式化为:
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

?W W W为 C × C C\times C C×C矩阵, Q Q Q为 C × C R C\times \frac{C}{R} C×RC?矩阵,用于压缩输入, P P P为 C × C R C\times \frac{C}{R} C×RC?矩阵,用于扩展输出, Q Q Q和 P P P均为包含 G G G个块的对角矩阵。 Φ \Phi Φ为 C R × C R \frac{C}{R}\times \frac{C}{R} RC?×RC?排列矩阵,功能与shufflenet的shuffle channels操作一样。分解后的计算复杂度为 O = 2 C 2 R G \mathcal{O}=\frac{2C^2}{RG} O=RG2C2?,上图展示的参数为 C = 18 C=18 C=18, R = 2 R=2 R=2, G = 3 G=3 G=3。 G G G的大小由维度 C C C和下降比例 R R R而定:
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 公式2是由维度数 C C C与每个输出维度对应输入维度的连接数 E E E之间的关系推导所得,每个输出维度与 C R G \frac{C}{RG} RGC?个中间维度连接,每个中间维度与 C G \frac{C}{G} GC?个输入维度连接,因此 E = C 2 R G 2 E=\frac{C^2}{RG^2} E=RG2C2?。假如固定计算复杂度 O = 2 C 2 R G \mathcal{O}=\frac{2C^2}{RG} O=RG2C2?和压缩比例R,得到:
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 公式3的可视化如图3所示,随着 G G G和 C C C的增加, E E E在减少。在两者的交点 G = C / R G=\sqrt{C/R} G=C/R ?处,每个输出维度刚好只与每个输入维度连接了一次,其中 Φ \Phi Φ的shuffle作用很大。从数学上来说,矩阵 W W W可分为 G × G G\times G G×G个秩为1的小矩阵,从小节开头处的分解示意图可看出,矩阵 W W W中 ( i , j ) (i,j) (i,j)小矩阵实际为 P P P矩阵的 j j j列与 Q T Q^T QT的 j j j行的矩阵相乘结果(去掉空格)。
Micro-Factorized Depthwise Convolution
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 论文将 k × k k\times k k×k深度卷积分解为 k × 1 k\times 1 k×1卷积与 1 × k 1\times k 1×k卷积,计算与公式1类似, Φ \Phi Φ为标量1,如上图所示,可将计算复杂度从 O ( k 2 C ) \mathcal{O}(k^2C) O(k2C)降低为 O ( k C ) \mathcal{O}(kC) O(kC)。
Combining Micro-Factorized Pointwise and Depthwise Convolutions
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 论文提供了两种Micro-Factorized Pointwise Convolution和Micro-Factorized Depthwise Convolution的组合方法:
  • 常规组合,直接将两种操作进行组合,这种情况下,两种操作的输入输出维度都是 C C C。
  • lite组合,如上图所示,增加Micro-Factorized Depthwise Convolution的卷积核数,对输入进行维度扩展,然后用Micro-Factorized Pointwise Convolution进行维度压缩。
? 相对于常规组合,lite组合的计算更高效,由于减少了Pointwise卷积的计算量,足以弥补depthwise卷积核的增加。
Dynamic Shift-Max ? 论文提出Dynamic Shift-Max融合输入特征,综合输出维度对应的各分组的特征(循环偏移)进行非线性输出。由于Micro-Factorized pointwise convolution仅关注分组内的连接,Dynamic Shift-Max可作为其补充。
Definition
? 定义 C C C维输入向量 x = { x i } ( i = 1 , ? ? , C ) x=\{x_i\}(i=1,\cdots, C) x={xi?}(i=1,?,C),将输入分为 G G G组,每组包含 C G \frac{C}{G} GC?维, N N N维向量的循环偏移可表示为 x N ( i ) = x ( i + N ) m o dC x_N(i)=x_{(i+N)} mod\ C xN?(i)=x(i+N)?mod C,将维度循环偏移扩展到分组循环偏移:
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

?x C G ( i , j ) x_{\frac{C}{G}}(i,j) xGC??(i,j)对应第 i i i维输入 x i x_i xi?关于 j j j分组的偏移, Dynamic Shift-Max将多个( J J J)分组偏移进行结合:
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

?a i , j k ( x ) a^k_{i,j}(x) ai,jk?(x)为输入相关的参数,可由平均池化接两个全连接层简单实现。对于输出 y i y_i yi?,将对应每个分组的偏移维度进行 K K K次融合,每次融合都有专属的 a i , j k ( x ) a^k_{i,j}(x) ai,jk?(x)参数,最后取融合结果的最大值。
Non-linearity
? Dynamic Shift-Max提供了两方面的非线性:
  • 输出 K K K个的融合 J J J个分组维度的结果中的最大值,类似于考虑多种目标特征
  • 参数 a i , j k ( x ) a^k_{i,j}(x) ai,jk?(x)是输入相关的函数,这是动态的
? 上述两个特性使得Dynamic Shift-Max表达能力更强,能够弥补网络深度减少带来的损失。最近提出的dynamic ReLU可认为是Dynamic Shift-Max的 J = 1 J=1 J=1特例,仅考虑每个维度自身。
Connectivity
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? Dynamic Shift-Max能够提升组间的维度交流,弥补MicroFactorized pointwise convolution只专注于组内连接的不足。图4为简单的静态分组偏移 y i = a i , 0 x C G ( i , 0 ) + a i , 1 x C G ( i , 1 ) y_i=a_{i,0}x_{\frac{C}{G}}(i,0)+a_{i,1}x_{\frac{C}{G}}(i,1) yi?=ai,0?xGC??(i,0)+ai,1?xGC??(i,1), K = 1 K=1 K=1, J = 2 J=2 J=2以及固定的 a i , j k a^k_{i,j} ai,jk?,注意排列矩阵 Φ \Phi Φ与前面的不太一样。可以看到,尽管这样的设计很简单,但依然能够有效地提升输入输出的关联性(矩阵 W W W的秩也从1升为2)。
Computational Complexity
? Dynamic Shift-Max包含 C J K CJK CJK个参数 a i , j k a^k_{i,j} ai,jk?,计算复杂度包含3部分:
  • 平均池化(后面的两个全连接输出输出为1,可忽略): O ( H W C ) \mathcal{O}(HWC) O(HWC)
  • 生成公式5的参数 a i , j k ( x ) a^k_{i,j}(x) ai,jk?(x): O ( C 2 J K ) \mathcal{O}(C^2JK) O(C2JK)
  • 对每个维度和特征图位置进行Dynamic Shift-Max:O ( H W C J K ) \mathcal{O}(HWCJK) O(HWCJK)
? 当 J J J和 K K K很小时,整体的计算量会很轻量,论文设置为 J = 2 J=2 J=2以及 K = 2 K=2 K=2。
MicroNet Architecture 晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 论文设计了3种不同的Mircro-Block,里面均包含了Dynamic Shift-Max作为激活函数:
  • Micro-Block-A:使用lite组合,对分辨率较高的低维特征特别有效。
  • Micro-Block-B:在Micro-Block-A基础上加了一个 MicroFactorized pointwise convolution进行维度扩展,每个MicroNet仅包含一个Micro-Block-B。
  • Micro-Block-C:与Micro-Block-B类似,将lite组合替换为常规组合,能够集中更多的计算在维度融合,如果输入输出维度一样,则增加旁路连接。
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? MicroNet的结构如表1所示,需要注意的是两种卷积的分组数 G 1 G_1 G1?和 G 2 G_2 G2?,论文将公式2的约束改为 G 1 G 2 = C / R G_1G_2=C/R G1?G2?=C/R。
Experiments: ImageNet Classification 晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? ImageNet上的结果。
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

? 从MobileNet到MicroNet的修改对比,每个修改的提升都很大,论文还有很多关于各模块的超参数对比实验,由兴趣的可以去看看。
Conclusion 【晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析】? 论文提出应对极低计算量场景的轻量级网络MicroNet,包含两个核心思路Micro-Factorized convolution和Dynamic Shift-Max,Micro-Factorized convolution通过低秩近似将原卷积分解成多个小卷积,保持输入输出的连接性并降低连接数,Dynamic Shift-Max通过动态的组间特征融合增加节点的连接以及提升非线性,弥补网络深度减少带来的性能降低。从实验结果来看,MicroNet的性能十分强劲。
?
?
?
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
晓飞的算法工程笔记|MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
文章图片

    推荐阅读