SineReLU激活函数
文章链接:[SineReLU-An Alternative to the ReLU Activation Function ]
年份:2018
介绍
该函数仍然是为了解决ReLU的负区域神经元死亡的问题,ReLU是一个不可微的函数,由此提出了一个可微的激活函数,称为SineReLU激活函数,具体的公式为:
f
(
x
)
=
{
x
,
x
>
0
,
ϵ
(
s
i
n
(
x
)
−
c
o
s
(
x
)
)
,
x
≤
0
f(x) = \begin{cases} x, &x>0,\\ \epsilon(sin(x)-cos(x)), &x\le 0 \end{cases}
f(x)={x,ϵ(sin(x)−cos(x)),x>0,x≤0
该函数的导数为:
f
′
(
x
)
=
{
x
,
x
>
0
,
ϵ
(
c
o
s
(
x
)
+
s
i
n
(
x
)
)
,
x
≤
0
f^\prime(x) = \begin{cases} x, &x>0,\\ \epsilon(cos(x)+sin(x)), &x\le 0 \end{cases}
f′(x)={x,ϵ(cos(x)+sin(x)),x>0,x≤0
ϵ
\epsilon
ϵ作为超参数,用于控制SineReLU负区域曲线的波幅,
ϵ
\epsilon
ϵ的绝对值越大,负区域曲线的幅值越大,具体的函数曲线如下图所示:
SineReLU的导数曲线如下:
分析
- 从图中可以看出,当 ϵ \epsilon ϵ为正值时,负区域的曲线从右到左的输出,负值 → \to →正值 → \to →负值 → \to →正值 → ⋯ \to \cdots →⋯
- 从图中可以看出,当 ϵ \epsilon ϵ为负值时,负区域的曲线从右到左的输出,正值 → \to →负值 → \to →正值 → \to →负值 → ⋯ \to \cdots →⋯
-
ϵ
\epsilon
ϵ的绝对值越大,负区域的最大值越大,最小值越小。
- 当 ϵ \epsilon ϵ为正值时,极大值为:在 − 3 π 4 − 2 π n \frac{-3 \pi}{4}-2\pi n 4−3π−2πn处,取得 ϵ 2 \epsilon \sqrt{2} ϵ2,反之为极小值。
- 当 ϵ \epsilon ϵ为正值时,极小值为:在 − 7 π 4 − 2 π n \frac{-7 \pi}{4}-2\pi n 4−7π−2πn处,取得 − ϵ 2 -\epsilon \sqrt{2} −ϵ2,反之为极大值。
- 从梯度的曲线可以看出,负区域的梯度不为0,不会出现反向传播时梯度不更新的问题。
- 但同样会出现计算量大的问题,而且输出不稀疏等问题。