这篇是发表在ECCV2020的文章《Dynamic Convolution: Attention over Convolution Kernels》,作者是微软研究院的Yinpeng Chen、Zicheng Liu等人。
文章为了增加网络的表示复杂性,针对不同的输入样本动态使用不同的卷积核,虽然整个网络计算量不会发生变化,但是网络的复杂性得到提升。
方法
Dynamic Convolution
- Attention:使用和SE block一样的Global Avg Pool+FC+Softmax的方法
- Kernel Aggregation:卷积的weight是由多个weight加权得到
Insight
- Attention的加和为1
- 在早期训练的epochs里面,用的是接近均值的Attention
- 这两点是和以前的方法最大的不同
实验
- ImageNet
- Each layer has K = 4 convolution kernels
- DY-ResNet-18
- 42.7M 1.85G 72.7(提升2.3) (origin 11.1M 1.81G 70.4)
- DY-MobileNetV2 x1.0
- 11M Param 312.9M MAC 75.2% top1 (origin 300M 72%)
- DY-MobileNetV3-Small
- 4.8M 68.5M 70.3(2.9) (origin 2.9M 66.0M 67.4)
- COCO 2017 single-person keypoint detection
- Backbone和head都dynamic AP提到62.8(3.6)
- 仅Backbone dynamic AP 62.3
- 仅Head dynamic AP 60.3(1.1)
总结
Kernel级别的Dynamic,不一定要减计算量,增加性能也是另一个方向。