论文地址:Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution

一篇来自于facebook的论文,对传统conv进行改进

本文的思想挺有意思,在传统的图像分割的领域中,经常把图像decompose成low-frequecy低频和high-frequency高频,低频包含了更多平滑结构,高频包含了更多的细节信息,如下图所示,左为原图,中为低频,右为高频
[深度学习从入门到女装]Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave

feature map decompose

然后本文就提取,将feature map也进行低频高频的分割,让conv自动来学习低频高频信息之间的处理,然后也是用conv进行低频高频之间的融合
[深度学习从入门到女装]Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave
本文对feature map的分组如上图所示,首先是将channel数量为c的feature map,分为XHR(1α)c×h×wX_{H}\in R^{(1-\alpha)c\times h \times w}(高频channel),XLRαc×h×wX_{L}\in R^{\alpha c\times h \times w}(低频channel)
然后将低频channelXLX_{L}进行spatial的压缩(这点我不是很理解),压缩成h2w2\frac{h}{2}、\frac{w}{2}大小的feature map

Octave Conv

[深度学习从入门到女装]Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave
整个octave conv的过程如上图所示
[深度学习从入门到女装]Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave
其中pool使用的是average pool

在经典网络中使用octave conv的方法,就是在第一次使用octave conv的时候,将αin=0,αout=α\alpha_{in}=0,\alpha_{out}=\alpha,在最后一次使用octave conv的时候,将αin=α,αout=0\alpha_{in}=\alpha,\alpha_{out}=0,其他时候αin=αout\alpha_{in}=\alpha_{out}

相关文章: