常见激活函数
神经网络中,常见的激活函数有以下几种:
1. sigmoid
f
(
x
)
=
1
1
+
e
−
x
f(x) = \frac{1}{1+e^{-x}}
f(x)=1+e−x1
f
′
(
x
)
=
f
(
x
)
(
1
−
f
(
x
)
)
f^{'}(x) = f(x)(1-f(x))
f′(x)=f(x)(1−f(x))
2. tanh
f
(
x
)
=
e
x
−
e
−
x
e
x
+
e
−
x
f(x) =\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}
f(x)=ex+e−xex−e−x
f
′
(
x
)
=
?
f^{'}(x) = ?
f′(x)=?
- 二者都需要指数计算
- sigmoid和tanh都是S型的非线性激活函数,对输入做非线性映射。
- 不同的是sigmoid将响应值限制在了(0,1),而tanh则是(-1,1).
- 在自变量处于极大和极小值区域,导数几乎为0,在反向传播过程中,导致梯度消失,无法更新权值。
3. ReLU
f
(
x
)
=
{
x
,
x
>
0
0
,
x
<
=
0
f(x)=\left\{\begin{matrix} x,x>0\\ 0,x<=0 \end{matrix}\right.
f(x)={x,x>00,x<=0
相对于S型函数,计算简单,在x>0区域,不存在梯度消失。
ReLU有个严重的问题,存在死区。在死区处,无法更新权值。
5. Leaky ReLU
见下图。解决ReLU死区问题,引入了一个新参数 a i a_{i} ai
6. PReLU
与Leaky ReLU类似,但是参数
a
i
a_{i}
ai根据数据来定的
参考
7. RReLU
与Leaky ReLU类似,但是参数 a i a_{i} ai在U(I,u)中随机选择的