论文:h​​ttps://arxiv.org/pdf/2007.11824.pdf​​​ 代码:​​https://github.com/megvii-model/FunnelAct​

概述

卷积神经网络(CNN)在许多视觉识别任务(例如图像分类,目标检测和语义分割)中均达到了最先进的性能。在CNN中主要的层是卷积层和非线性激活层,在卷积层中,自适应地捕获空间相关性是一个挑战,因此,研究者已经提出了许多更复杂和有效的卷积来在图像中自适应地捕获局部上下文信息,这在密集的预测任务(例如,语义分割和目标检测)上取得了不错的性能提升。但随着卷积的复杂性也带来了一个问题:常规的卷积能否达到类似的精度,以掌握具有挑战性的复杂图像呢?

其次,通常就在卷积层线性捕捉空间依赖性后,再由激活层进行非线性变换。目前最广泛使用的激活仍然是ReLU激活函数,于是有了另一个问题:能否设计一种专门针对视觉任务的激活函数?

为了回答上面提出的两个问题,本文表明简单但有效的视觉激活函数以及常规卷积也可以对密集和稀疏预测任务(例如图像分类,见图1)都能实现显著改善。为了实现这一结果,作者认为激活函数中的空间不敏感是阻碍视觉任务实现显著改善的主要原因,并基于此提出了一种新的视觉激活函数,以消除这一障碍。
FReLU_卷积
本文的方法被称为Funnel激活函数(FReLU),通过增加一个空间条件(见图2)来扩展ReLU/PReLU函数,它的实现很简单,只增加了一个可以忽略不计的计算开销。该激活函数的形式是y=max(x,T(x)),其中T(x)代表简单高效的空间上下文特征提取器。由于使用了空间条件,FReLU简单地将ReLU和PReLU扩展为具有像素化建模能力的视觉参数化ReLU。FReLU_目标检测_02
本文提出的视觉激活函数是一种有效的方法,但是比以前的激活函数更有效。为了证明所提出的视觉激活函数的有效性,实验环节中,在分类网络中替换了正常的ReLU,并使用经过预训练的主干网络来显示其在其他两个基本视觉任务上的通用性:目标检测和语义分割。结果表明,FReLU不仅可以提高单个任务的性能,而且可以很好地迁移到其他视觉任务。

定量和定性结果

FReLU_卷积_03
FReLU_目标检测_04

核心代码

class FReLU(M.Module):
r""" FReLU formulation. The funnel condition has a window size of kxk. (k=3 by default)
"""
def __init__(self, in_channels):
super().__init__()
self.conv_frelu = M.Conv2d(in_channels, in_channels, 3, 1, 1, groups=in_channels)
self.bn_frelu = M.BatchNorm2d(in_channels)

def forward(self, x):
x1 = self.conv_frelu(x)
x1 = self.bn_frelu(x1)
x = F.maximum(x, x1)
return x

Reference

​https://mp.weixin.qq.com/s/mx_EVAtuzh9oJCaFOMH1xg​