一、论文信息
论文名称:Decoupled Dynamic Filter Networks
论文:https://thefoxofsky.github.io/files/ddf.pdf
代码:https://github.com/theFoxofSky/ddfnet
主页:https://thefoxofsky.github.io/project_pages/ddf
作者团队:
会议:CVPR2021
前期工作:
DFN
二、动机与创新
动机
-
标准卷积局限:内容不可知、计算量大
-
深度卷积局限:是标准卷积的轻量级变体,但会导致CNN性能下降,需要更多的通道
创新
(1)对于道路、车辆、建筑使用相同的卷积核,这样会导致一个问题:sub-optimal feature learning,影响结果的准确性。(特征学习算法得到的特征表示不是最优的情况)
(2)动态卷积,每一个像素都使用不同的卷积核,道路、车辆、建筑使用的卷积核就不一样了,有助于特征学习。但是会引入一个新的问题:参数量大大增加。
-
提出了DDF解耦动态滤波器,将一个深度动态滤波器解耦成空间和通道动态滤波器。
-
分解之后大大减少了参数的数量,计算成本与深度卷积相同。
可以看出,动态卷积的参数量从普通静态卷积的 (c × c × k × k ) 提升为 (c × c × k × k × h × w),参数量显著增加,计算复杂。为了降低计算量,作者提出了解耦的思路,把 (c × h × w) 分解成 (h × w + c),即先计算空间位置的动态卷积,再计算通道上的动态卷积。
三、模型结构
如图所示,包含两个步骤:
-
在 spatial 维度上,首先用 1x1 的卷积将 channel 数变成 k2,reshape后,就是每个空间位置上的卷积核,参数量是 k × k × h × w ;
-
在 channel 维度上,通过 GAP + SE 操作,每个 channel 得到一个 k2向量,即每个 channel 分配一个卷积核,参数量是k × k × c 。
-
每个空间位置上有一个卷积核,每个 channel 上有一个卷积核,为把卷积核作用到 ( c , h , w )的三维矩阵中的每个像素上,即每个像素找到与它 对应位置的卷积核 和 对应通道的卷积核 ,这两个卷积核进行 逐像素相乘 ,得到新的卷积核再对这个点进行卷积。
-
为了提升性能,卷积核归一化时,作者设计了一个 Filter-Norm,性能会优于使用 Batch-Norm 和 Sigmoid。
四、实验
1.计算成本更小,更小的内存占用
2. DDF用于图像分类
3. 消融实验
4. 性能更优越