这是我最近才看到的一篇论文,它提出了动态ReLU (Dynamic ReLU, DY-ReLU),可以将全局上下文编码为超函数,并相应地调整分段线性激活函数。与传统的ReLU相比,DY-ReLU的额外计算成本可以忽略不计,但表示能力明显增强,并且实现简单,所以可以非常简单的对我们现有的模型进行修改。
Dynamic ReLU (DY-ReLU)
对于给定的输入向量(或张量)x,DY-ReLU被定义为具有可学习参数θ(x)的函数fθ(x)(x),该参数适应于输入x,它包括两个功能:
超函数θ(x):用于计算激活函数的参数。
激活函数fθ(x)(x):使用参数θ(x)生成所有通道的激活。
1、函数定义
设传统的或静态的ReLU为y = max(x, 0)。ReLU可以推广为每个通道c的参数分段线性函数。
其中coeffcients (akc, bkc)是超函数(x)的输出,如下:
其中K是函数的个数,C是通道的个数。论文中K=2。
2、超函数θ(x)的实现
使用轻量级网络对超函数进行建模,这个超函数类似于SENet中的SE模块(稍后会介绍)。
输出有2KC个元素,对应于a和b的残差。2σ(x)-1用于对-1到1之间的残差进行归一化,其中σ(x)表示s型函数。最终输出计算为初始化和残差之和,如下所示:
其中λ是标量,这个公式也就是我们上面的图
3、与先前研究的关系
可以看到DY-ReLU的三种特殊情况相当于ReLU、Leaky ReLU和PReLU。
4、DY-ReLU的变体
DY-ReLU-A:激活函数是空间和通道共享的。
DY-ReLU-B:激活函数是空间共享和通道相关的。
DY-ReLU-C:激活的是空间和通道分开的。
结果展示
1、消融研究
所有三种变化都比基线有所改善,但通道分开的DY-ReLU(变化B和C)明显优于通道共享的DY-ReLU(变化A)。
所以根据上面结果,使用DY-ReLU-B进行ImageNet分类,使用DY-ReLU-C进行COCO关键点检测。
2、ImageNet分类
使用MobileNetV2 (×0.35和×1.0), 用不同的激活函数代替ReLU。所提出的方法明显优于所有先前的工作,包括具有更多计算成本的Maxout。这表明DY-ReLU不仅具有更强的表示能力,而且计算效率高。
上图绘制了5万张验证图像在不同区块(从低到高)的DY-ReLU输入输出值。可以看到学习到的DY-ReLU在特征上是动态的,因为对于给定的输入x,激活值(y)在一个范围内(蓝点覆盖的范围)变化。
下图分析DY-ReLU中两段之间的夹角(即斜率差|a1c-a2c|)。激活函数在较高水平上具有较低的弯曲。
3、COCO关键点估计
当使用MobileNetV3作为骨干时,删除SENet模块,使用DY-ReLU替代ReLU和h-Swish后,结果也有提高。
总结
可以看到,只是使用DY-ReLU替换现有的激活函数,模型的表现明显优于基线模型。
这是ECCV2020的一篇论文,我们这里直接贴出paperswithcode的地址,这样可以直接拿来进行使用
https://avoid.overfit.cn/post/8db206f03cd54167b9eb2d06ebaffc6b