前言
该论文是旷视收录于CVPR2021的新作,作者提出了一个简单、有效和通用的激活函数称之为
A
C
O
N
\mathrm{ACON}
ACON,它可以学习并决定是否要激活神经元。作者提出了进一步提出了
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON,它明确地学习优化非线性(激活)和线性(非激活)之间的参数切换。在图像分类,目标检测以及语义分割的任务上,都使得深度模型有显著的提升效果。
论文链接:https://arxiv.org/abs/2009.04759
代码链接:https://github.com/nmaac/acon
A C O N \mathrm{ACON} ACON
光滑最大值函数
考虑标准最大函数
max
(
x
1
,
⋯
,
x
n
)
\max(x_1,\cdots,x_n)
max(x1,⋯,xn)的
n
n
n个值,它的光滑性的和可微的性近似为:
S
β
(
x
1
,
⋯
,
x
n
)
=
∑
i
=
1
n
x
i
e
β
x
i
∑
i
=
1
n
e
β
x
i
S_{\beta}(x_1,\cdots,x_n)=\frac{\sum\limits_{i=1}^nx_ie^{\beta x_i}}{\sum\limits_{i=1}^ne^{\beta x_i}}
Sβ(x1,⋯,xn)=i=1∑neβxii=1∑nxieβxi其中
β
\beta
β表示连接系数。当
β
→
∞
\beta \rightarrow \infty
β→∞时,则有
S
β
→
最
大
值
S_{\beta}\rightarrow 最大值
Sβ→最大值;当
β
→
0
\beta \rightarrow0
β→0时,则有
S
β
→
等
差
中
项
S_{\beta}\rightarrow 等差中项
Sβ→等差中项。
在神经网络中,许多常见的激活函数是
max
(
η
a
(
x
)
,
η
b
(
x
)
)
\max(\eta_a(x),\eta_b(x))
max(ηa(x),ηb(x))函数的形式,其中
η
a
(
x
)
\eta_a(x)
ηa(x)和
η
b
(
x
)
\eta_b(x)
ηb(x)表示线性函数。作者的目标是用这个公式来近似激活函数。考虑
n
=
2
n = 2
n=2时的情况,将
σ
\sigma
σ表示为Sigmoid函数,近似值为:
S β ( η a ( x ) , η b ( x ) ) = η a ( x ) ⋅ e β η a ( x ) e β η a ( x ) + e β η b ( x ) + η b ( x ) ⋅ e β η b ( x ) e β η a ( x ) + e β η b ( x ) = η a ( x ) ⋅ 1 1 + e − β ( η a ( x ) − η b ( x ) ) + η b ( x ) ⋅ 1 1 + e − β ( η b ( x ) − η a ( x ) ) = η a ( x ) ⋅ σ [ β ( η a ( x ) − η b ( x ) ) ] + η b ( x ) ⋅ σ [ β ( η b ( x ) − η a ( x ) ) ] = ( η a ( x ) − η b ( x ) ) ⋅ σ [ β ( η a ( x ) − η b ( x ) ) ] + η b ( x ) \begin{aligned}&S_{\beta}(\eta_{a}(x),\eta_{b}(x))\\=&\eta_{a}(x)\cdot \frac{e^{\beta \eta_{a}(x)}}{e^{\beta \eta_{a}(x)}+e^{\beta\eta_{b}(x)}}+\eta_{b}(x)\cdot \frac{e^{\beta \eta_{b}(x)}}{e^{\beta \eta_{a}(x)}+e^{\beta \eta_{b}(x)}}\\=&\eta_{a}(x)\cdot \frac{1}{1+e^{-\beta(\eta_a(x)-\eta_b(x))}}+\eta_b(x)\cdot \frac{1}{1+e^{-\beta(\eta_b(x)-\eta_a(x))}}\\=&\eta_a(x)\cdot \sigma[\beta(\eta_a(x)-\eta_b(x))]+\eta_b(x)\cdot \sigma[\beta(\eta_b(x)-\eta_a(x))]\\=&(\eta_a(x)-\eta_b(x))\cdot \sigma[\beta(\eta_a(x)-\eta_b(x))]+\eta_b(x)\end{aligned} ====Sβ(ηa(x),ηb(x))ηa(x)⋅eβηa(x)+eβηb(x)eβηa(x)+ηb(x)⋅eβηa(x)+eβηb(x)eβηb(x)ηa(x)⋅1+e−β(ηa(x)−ηb(x))1+ηb(x)⋅1+e−β(ηb(x)−ηa(x))1ηa(x)⋅σ[β(ηa(x)−ηb(x))]+ηb(x)⋅σ[β(ηb(x)−ηa(x))](ηa(x)−ηb(x))⋅σ[β(ηa(x)−ηb(x))]+ηb(x)
A C O N − A \mathrm{ACON-A} ACON−A
当 η a ( x ) = x \eta_a(x)=x ηa(x)=x, η b ( x ) = 0 \eta_b(x)=0 ηb(x)=0时,则有 f A C O N − A ( x ) = S β ( x , 0 ) = x ⋅ σ ( β x ) f_{\mathrm{ACON-A}}(x)=S_{\beta}(x,0)=x\cdot \sigma(\beta x) fACON−A(x)=Sβ(x,0)=x⋅σ(βx)以上公式即是 A C O N − A \mathrm{ACON-A} ACON−A激活函数,也是 S w i s h \mathrm{Swish} Swish激活函数。 S w i s h \mathrm{Swish} Swish函数是最近被提出的一个新的激活函数。尽管它最近被广泛使用,但对于它为什么提高性能缺乏合理的解释。作者给我们提供了一个新的解释即 S w i s h \mathrm{Swish} Swish是 R e L U \mathrm{ReLU} ReLU的平滑近似。
A C O N − B \mathrm{ACON-B} ACON−B
作者将
M
a
x
o
u
t
\mathrm{Maxout}
Maxout族中的最大值的激活
L
e
a
k
_
R
e
L
U
\mathrm{Leak\_ReLU}
Leak_ReLU,
P
R
e
L
U
\mathrm{PReLU}
PReLU转换为
A
C
O
N
\mathrm{ACON}
ACON族中。作者展示了
P
R
e
L
U
\mathrm{PReLU}
PReLU的近似,它的原始形式为
f
(
x
)
=
max
(
x
,
0
)
+
p
min
(
x
,
0
)
f(x) = \max(x,0) + p \min(x,0)
f(x)=max(x,0)+pmin(x,0)其中
p
p
p是一个可学习的参数,初始化的数值为
0.25
0.25
0.25。在大多数情况下
p
<
1
p < 1
p<1,作者将其改写为如下形式:
f
(
x
)
=
m
a
x
(
x
,
p
x
)
(
p
<
1
)
f(x) = max(x,px)\quad (p < 1)
f(x)=max(x,px)(p<1)考虑
η
a
(
x
)
=
x
\eta_a(x) = x
ηa(x)=x,
η
b
(
x
)
=
p
x
\eta b(x) = px
ηb(x)=px,则可获得新的激活函数
A
C
O
N
−
B
\mathrm{ACON-B}
ACON−B:
f
A
C
O
N
−
B
(
x
)
=
S
β
(
x
,
p
x
)
=
(
1
−
p
)
x
⋅
σ
[
β
(
1
−
p
)
x
]
+
p
x
f_{\mathrm{ACON-B}}(x)=S_{\beta}(x,px)=(1-p)x\cdot \sigma[\beta(1-p)x]+px
fACON−B(x)=Sβ(x,px)=(1−p)x⋅σ[β(1−p)x]+px
A C O N − C \mathrm{ACON-C} ACON−C
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C遵循
A
C
O
N
−
B
\mathrm{ACON-B}
ACON−B的原理,采用了相同的双自变量函数,带有一个额外的超参数,只是在功能上使用超参数缩放。设
η
a
(
x
)
=
p
1
x
,
η
b
(
x
)
=
p
2
x
(
p
1
≠
p
2
)
\eta_a(x) = p_1x,\eta_b(x) = p_2x(p_1\neq p_2)
ηa(x)=p1x,ηb(x)=p2x(p1=p2),则有
f
A
C
O
N
−
C
(
x
)
=
S
β
(
p
1
x
,
p
2
x
)
=
(
p
1
−
p
2
)
x
⋅
σ
[
β
(
p
1
−
p
2
)
x
]
+
p
2
x
f_{\mathrm{ACON-C}}(x)=S_{\beta}(p_1x,p_2x)=(p_1-p_2)x\cdot \sigma[\beta(p_1-p_2)x]+p_2x
fACON−C(x)=Sβ(p1x,p2x)=(p1−p2)x⋅σ[β(p1−p2)x]+p2x与
P
R
e
L
U
\mathrm{PReLU}
PReLU一样,令
β
=
p
1
=
1
\beta=p_1=1
β=p1=1,
p
2
=
0
p_2=0
p2=0。如下图所示作者对
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C的定义是一个非常简单和普遍的情况。
一阶导数的上下界
A C O N − C \mathrm{ACON-C} ACON−C的一阶导数计算公式如下所示:
d d x [ f A C O N − C ( x ) ] = ( p 1 − p 2 ) ( 1 + e − β ( p 1 x − p 2 x ) ) ( 1 + e − β ( p 1 x − p 2 x ) ) 2 + β ( p 1 − p 2 ) 2 e − β ( p 1 x − p 2 x ) x ( 1 + e − β ( p 1 x − p 2 x ) ) 2 + p 2 \begin{aligned}&\frac{d}{dx}[f_{\mathrm{ACON-C}}(x)]\\=&\frac{(p_1-p_2)(1+e^{-\beta(p_1x-p_2x)})}{(1+e^{-\beta(p_1x-p_2x)})^2}+\frac{\beta(p_1-p_2)^2e^{-\beta(p_1x-p_2x)}x}{(1+e^{-\beta(p_1x-p_2x)})^2}+p_2\end{aligned} =dxd[fACON−C(x)](1+e−β(p1x−p2x))2(p1−p2)(1+e−β(p1x−p2x))+(1+e−β(p1x−p2x))2β(p1−p2)2e−β(p1x−p2x)x+p2
lim x → ∞ d f A C O N − C ( x ) d x = p 1 , lim x → − ∞ d f A C O N − C ( x ) d x = p 2 ( β > 0 ) \lim\limits_{x \rightarrow \infty}\frac{df_{\mathrm{ACON-C}}(x)}{dx}=p_1,\lim\limits_{x\rightarrow -\infty}\frac{df_{\mathrm{ACON-C}}(x)}{dx}=p_2\quad (\beta > 0) x→∞limdxdfACON−C(x)=p1,x→−∞limdxdfACON−C(x)=p2(β>0)
d
2
d
x
2
[
f
A
C
O
N
−
C
(
x
)
]
=
β
(
p
2
−
p
1
)
2
e
β
(
p
1
−
p
2
)
x
⋅
(
(
β
(
p
2
−
p
1
)
x
+
2
)
e
β
(
p
1
−
p
2
)
x
+
β
(
p
1
−
p
2
)
x
+
2
)
(
e
β
(
p
1
−
p
2
)
x
+
1
)
3
\begin{aligned}&\frac{d^2}{dx^2}[f_{\mathrm{ACON-C}}(x)]\\=&\beta\left(p_{2}-p_{1}\right)^{2} \mathrm{e}^{\beta\left(p_{1}-p_{2}\right) x}\cdot \frac{\left(\left(\beta\left(p_{2}-p_{1}\right) x+2\right) \mathrm{e}^{\beta\left(p_{1}-p_{2}\right) x}+\beta\left(p_{1}-p_{2}\right) x+2\right)}{\left(\mathrm{e}^{\beta\left(p_{1}-p_{2}\right) x}+1\right)^{3}} \end{aligned}
=dx2d2[fACON−C(x)]β(p2−p1)2eβ(p1−p2)x⋅(eβ(p1−p2)x+1)3((β(p2−p1)x+2)eβ(p1−p2)x+β(p1−p2)x+2)
令
d
2
d
x
2
[
f
A
C
O
N
−
C
(
x
)
]
=
0
\frac{d^2}{dx^2}[f_{\mathrm{ACON-C}}(x)]=0
dx2d2[fACON−C(x)]=0,则可以得到
(
y
−
2
)
e
y
=
y
+
2
(y-2)e^y=y+2
(y−2)ey=y+2其中
y
=
(
p
1
−
p
2
)
β
x
y=(p_1-p_2)\beta x
y=(p1−p2)βx,解以上的方程可知
y
≈
±
2.39936
y \approx \pm 2.39936
y≈±2.39936,可以得到最小和最大值
m
a
x
i
m
a
(
d
d
x
[
f
[
A
C
O
N
−
C
]
(
x
)
]
)
≈
1.0998
p
1
−
0.0998
p
2
\mathrm{maxima}(\frac{d}{dx}[f_{[\mathrm{ACON-C}]}(x)])\approx 1.0998p_1-0.0998p_2
maxima(dxd[f[ACON−C](x)])≈1.0998p1−0.0998p2
m
i
n
i
m
a
(
d
d
x
[
f
A
C
O
N
−
C
(
x
)
]
)
≈
1.0998
p
x
−
0.0998
p
1
\mathrm{minima}(\frac{d}{dx}[f_{\mathrm{ACON-C}}(x)])\approx 1.0998p_x-0.0998p_1
minima(dxd[fACON−C(x)])≈1.0998px−0.0998p1这与一阶导数中有固定上界和下界
(
1.0998
,
−
0.0998
)
(1.0998,-0.0998)
(1.0998,−0.0998)的
S
w
i
s
h
\mathrm{Swish}
Swish激活函数不同。在
S
w
i
s
h
\mathrm{Swish}
Swish中,超参数
β
\beta
β仅决定一阶导数渐近上界和下界的速度,并且这些界是可学习的,并且由
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C中的
p
1
p_1
p1和
p
2
p_2
p2决定。可学习的边界对于简化优化是必不可少的,这些可学习的上界和下届是改善结果的关键。
M e t a − A C O N \mathrm{Meta-ACON} Meta−ACON
当切换因子
β
\beta
β控制激活为非线性或线性时,
A
C
O
N
\mathrm{ACON}
ACON将激活切换为激活或不激活。当
β
→
∞
\beta \rightarrow \infty
β→∞时,
f
A
C
O
N
−
C
(
x
)
→
max
(
p
1
x
,
p
2
x
)
f_{\mathrm{ACON-C}}(x)\rightarrow \max(p_1x,p_2x)
fACON−C(x)→max(p1x,p2x);当
β
→
0
\beta \rightarrow 0
β→0,
f
A
C
O
N
−
C
(
x
)
→
m
e
a
n
(
p
1
x
,
p
2
x
)
f_{\mathrm{ACON-C}}(x)\rightarrow \mathrm{mean}(p_1x,p_2x)
fACON−C(x)→mean(p1x,p2x)。因此,不同于传统的激活如
R
e
L
U
\mathrm{ReLU}
ReLU,
A
C
O
N
\mathrm{ACON}
ACON允许每个神经元自适应地激活或不激活。这种激活行为有助于提高泛化和传输性能。
学习开关因子
β
\beta
β明确地以输入样本
x
∈
R
c
×
H
×
W
:
β
=
G
(
x
)
x \in \mathbb{R}^{c \times H \times W}:\beta =G(x)
x∈Rc×H×W:β=G(x)为条件。目的不是提出一个具体的结构,而是在生成函数
G
(
x
)
G(x)
G(x)中提供一个设计空间。作者使用一个路由函数来计算以输入特征为条件的
β
\beta
β,其结构可以是分层的,这意味着一层中的元素共享相同的开关因子
β
\beta
β,计算公式为:
β
=
σ
∑
c
=
1
C
∑
h
=
1
H
∑
w
=
1
W
x
c
,
h
,
w
\beta = \sigma\sum\limits_{c=1}^C\sum\limits_{h=1}^H\sum\limits^{W}_{w=1}x_{c,h,w}
β=σc=1∑Ch=1∑Hw=1∑Wxc,h,w通道中的元素共享相同的开关因子
β
c
\beta_c
βc
β
c
=
σ
W
1
W
2
∑
h
=
1
H
∑
w
=
1
W
x
c
,
h
,
w
\beta_c=\sigma W_1W_2\sum\limits_{h=1}^H\sum\limits_{w=1}^{W}x_{c,h,w}
βc=σW1W2h=1∑Hw=1∑Wxc,h,w其中
W
1
∈
R
C
×
C
/
r
W_1\in \mathbb{R}^{C \times C/r}
W1∈RC×C/r,
W
2
∈
R
C
/
r
×
C
W_2 \in \mathbb{R}^{C/r \times C}
W2∈RC/r×C,且像素级的开关因子为
β
c
,
h
w
=
σ
x
c
,
h
,
w
\beta_{c,hw}=\sigma x_{c,h,w}
βc,hw=σxc,h,w。
实验结果
如下图和下表可以发现:(1)
A
C
O
N
−
A
\mathrm{ACON-A}
ACON−A、\mathrm{ACON-B}和\mathrm{ACON-C}与它们的最大基函数相比,精度都有显著提高,这显示了可微和平滑转换的好处;(2)
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C的表现优于
A
C
O
N
−
A
(
S
w
i
s
h
)
\mathrm{ACON-A (Swish)}
ACON−A(Swish)和
A
C
O
N
−
B
\mathrm{ACON-B}
ACON−B,受益于
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C一阶导数的自适应的上限和下限;(3)
A
C
O
N
−
A
(
S
w
i
s
h
)
\mathrm{ACON-A(Swish)}
ACON−A(Swish)随着模型网络深度的越来越深,
A
C
O
N
−
C
\mathrm{ACON-C}
ACON−C获得了持续的精度提高。
如下表的结果表明,本文提出的方法在所有网络结构中都获得了显著的性能提升。
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON在
M
o
b
i
l
e
N
e
t
V
1
\mathrm{MobileNetV1}
MobileNetV1 模型中提高了
6.7
%
6.7\%
6.7%。对于更深的玩网络模型中,
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON仍然显示出显著的改进,如在
R
e
s
N
e
t
−
50
\mathrm{ResNet-50}
ResNet−50和
R
e
s
N
e
t
−
101
\mathrm{ResNet-101}
ResNet−101上分别在精度上分别提高了
2.0
%
2.0\%
2.0%和
1.8
%
1.8\%
1.8%。
下表显示了本论文提出激活函数与
R
e
L
U
\mathrm{ReLU}
ReLU,
M
i
s
h
\mathrm{Mish}
Mish,
E
L
U
\mathrm{ELU}
ELU,
S
o
f
t
P
l
u
s
\mathrm{SoftPlus}
SoftPlus和
S
w
i
s
h
\mathrm{Swish}
Swish这些激活函数的比较。与之前的激活相比,
A
C
O
N
\mathrm{ACON}
ACON和
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON准确率分别提高了
2.4
%
2.4\%
2.4%和
4.6
%
4.6\%
4.6%。
作者在
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON中,由于开关因子
β
\beta
β决定了激活过程中的非线性,在不同级别上为每个样本生成
β
\beta
β值,这些级别可以是像素级、通道级和层级。如下表结果表明,三个水平都能显著提高准确率。
如下表显示,在所有的网络结构中,
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON的性能明显优于SENet。即使在极深的
R
e
s
N
e
t
−
152
\mathrm{ResNet-152}
ResNet−152中,
M
e
t
a
−
A
C
O
N
\mathrm{Meta-ACON}
Meta−ACON仍然提高了
1.8
%
1.8\%
1.8%的精度,与
S
E
N
e
t
\mathrm{SENet}
SENet相比提高了
1
%
1\%
1%。