Dynamic ReLU——微软提出的动态relu激活函数

论文地址:https://arxiv.org/pdf/2003.10027.pdf

摘要

ReLU是深度神经网络中常用的激活函数。到目前为止,ReLU及其推广(非参数或参数)都是静态的,对所有的输入样本执行相同的操作。在本文中,我们提出了Dynamic ReLU激活函数(DY-ReLU),它的参数依赖于所有输入。其关键在于DY-ReLU将全局上下文编码为超函数,并相应地调整分段线性激活函数。与静态模型相比,DY-ReLU的额外计算开销可以忽略不计,但其表现能力显著提高,特别是对于轻量神经网络。仅仅通过简单地在MobileNetV2上使用DY-ReLU ,ImageNet分类的最高精度就可以从72.0%提高到76.2%,而计算量只增加了5%。

3 Dynamic ReLU

我们将在本节中描述dynamic ReLU (DY-ReLU)。它是一个参数依赖于输入的动态分段线性函数。DY-ReLU既不增加网络的深度,也不增加网络的宽度,但可以有效地增加模型能力,而额外的计算成本可以忽略不计。
本节组织如下。首先介绍了通用的动态激活方法。然后,给出了DY-ReLU的数学定义和实现方法。最后,我们将其与之前的工作进行了比较。

3.1 Dynamic Activation

对于一个给定的输入向量x,动态激活的定义是fθ(x) (x),θ(x) 是一个可学习的参数。如图1所示,它包含两个函数:

1.超函数 θ(x):为激活函数计算参数

2.激活函数fθ(x)(x):计算激活值,参数由θ(x) 生成

注意,超函数对所有输入元素(xc∈x)的全局上下文进行编码,以确定合适的激活函数。这使得它比它的静态对手(例如sigmoid,tanh, h-swish [13], ReLU [28,18], LeakyReLU [26], PRelu[11])具有更大的表示能力,特别是对于轻量级模型(例如MobileNet)。接下来,我们将讨论动态ReLU。

3.2 Definition and Implementation of Dynamic ReLU  

定义:让我们将传统的或静态的ReLU函数表示为 y= max{x,0},其中x是输入向量。通道的激活计算yc= max{xc,0},其中xc为第c通道上的输入。DY-ReLU定义为多个(K)线性函数的最大值:

其中线性系数a、b是θ(x)的输出: 

C是通道数,注意每个通道的激活参数是需要考虑所有的输入通道,ac和bc不仅依赖于第c通道的输入还依赖其他通道的输入。 

 Dynamic ReLU 的三种形式

DY-ReLU-A(空间和通道都共享):所有空间位置和通道共享相同的分段线性激活函数。其超函数的网络结构(如图2-(a))与DY-ReLU B相似,只是输出的数目减少到2K。与DY-ReLU-B相比,DY-ReLU-a的计算量较小,但表示能力较弱。

DY-ReLU-B(空间共享通道不共享):第3.2节介绍了实现细节,其网络结构如图2-(B)所示。激活函数需要由超函数计算2KC参数(每个通道2K)。

DY-ReLU-C (空间通道都不共享):如图2-(c)所示,每个输入元素xchw都有一个独立的激活函数,下标chw表示第c通道上特征图(维度为C*H*W)的第h行w列。这会导致输出维度过大(2KCHW)而无法使用全连接层来生成。我们通过将空间位置与通道分离来解决这个问题。特别的,我们引入了一个额外的分支来计算空间注意力,最后的输出是按通道参数和空间注意力来计算得到的。空间注意力分支很简单,只包括一个1*1卷积、一个单输出通道和一个归一化函数,该归一化函数是一个有上界的softmax函数,如下所示:

其中,z是1*1卷积的输出,τ是temperature,γ是标量。softmax被γ放大以防止梯度消失。我们经验地设置γ=HW/3,使平均注意πh,w为1/3。一个大的temperature(τ=10)用于防止训练早期出现稀疏现象。上界1将注意力限制在0和1之间。

实验结果

 

 

 

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值