一、高效网络简介
图片来自https://zhuanlan.zhihu.com/p/53175018,高效网络的高效,直接的衡量目标是速度。
二、高效网络一览
CNN设计一般都是通过堆block的形式,下面只讨论每个模型的block
1、Mobilenet
首次使用了分离卷积(dw+pw,加速的核心操作,有人认为dw和pw之间不应该加relu)
2、MobilenetV2
Inverted Residuals 逆残差:将两头大中间小的结构,变为两头小中间大1的结构,增大分离卷积所占的比例
Linear Bottlenecks 线性瓶颈:去掉了第二个1*1的relu
3、Shufflenet
大量使用1*1的group conv,并通过shuffle来促进通道间的流通。
实现细节:在每个block,先通过1*1 group conv将维度降为输出的1/4。
4、ShufflenetV2
提出了设计高效网络的四个原则:相同通道宽度可以最小化内存访问成本;组卷积谨慎使用;网络内部碎片操作会降低并行度;Element-wise操作不容忽视。
实现细节:对于(c),操作内通道数量始终不变;不再使用组卷积;对于(d),两个通道分别将维度降为1/2,便于后面的concat;最后进行shuffle。
三、其他
1、为了快速降低特征大小,往往使用conv/s2的操作,避免使用pooling;
2、大kernel size filter,复杂网络里,一般使用多个3*3来代替5*5、7*7等(计算量小、网络更深、非线性更优),而在小网络中,可在网络前端,使用大卷积核
快速将特征图大小降下来;
3、微软推出了mnast等自动设计的网络
参考:https://zhuanlan.zhihu.com/p/53175018