最近两年出了非常多的CNN网络架构,有人工设计的,也有NAS得到。但是当架构定型之后,不同的方法之间总归能看到一些共性的东西。本文从通道冗余的角度来谈一下最近看到的几篇paper。
SlimConv
paper: https://arxiv.org/abs/2003.07469, code:未开源
这是一篇比较好玩的文章,它认为卷积神经网络中的特征图存在通道冗余问题,而通道冗余则会导致内存与计算资源的浪费。所以从这个角度提出了一种改进方案:通过降低通道冗余提升网络性能。
Method
作者所设计的SlimConv包含下面三个主要步骤(Reconstruct, Transform, Fuse),特征能够以更有效的方式进行拆分与重组。而SlimConv的关键核心在于weight flipping
,它可以极大的提升特征的多样性,从而有助于性能提升。注:作者所设计的SlimConv是一种即插即用
型模块,它可以轻易嵌入到其他已有网络架构中并取得性能提升。
![2e0eca336db944f45d1103d5798b0588.png](https://i-blog.csdnimg.cn/blog_migrate/dfab310b4b12c2c0ee15b2166d38f9a6.png)
上图给出了作者所设计的SlimConv架构图,它包含这样几块:
- (1) 注意力部分:这部分采用的是类似于SEBlock的注意力机制,作者在原始SEBlock的基础上进行了微调,见下图。好像没什么改进哈,(a) 把FC换成了1x1卷积,但是这两个本身就是等价的;(2)reduction从16提到32,这个应该不能算是改进吧;(3)首个卷积后接BN层,推理阶段Conv与BN可以融合,好像也很难说是什么改进。
![eeb7b99a764e8163235d3ae60377c599.png](https://i-blog.csdnimg.cn/blog_migrate/b7320a5ee2427e05dd63f23fbad6b070.png)
- (2) 特征重建部分:这个部分是该文的核心改进,原始的SEBlock只有一个分支的特征增强,而这篇论文则有两个分支的输出,上分支与SEBlock输出类似,而下分支则是先对注意力权值进行镜像再进行注意力融合;
- (3) 特征拆分与融合:在这个部分作者对所得到的两个分支特征分别进行拆分与Add融合,此时有特征降维压缩的作用,但也可能