为什么需要非线性激活函数?
Sigmoid神经元
缺点:易饱和性,当输入值非常大或者非常小的时候,这些神经元的梯度就接近于0.
输出的期望不是0
函数的定义为:
f
(
x
)
=
1
1
+
e
−
x
f(x) = \frac{1}{1 + e^{-x}}
f(x)=1+e−x1,其值域为
(
0
,
1
)
(0,1)
(0,1)。
hard_sigmoid:计算速度比sigmoid快
Tanh 神经元
和sigmoid相比函数期望为0
函数的定义为:
f
(
x
)
=
t
a
n
h
(
x
)
=
e
x
−
e
−
x
e
x
+
e
−
x
f(x) = tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
f(x)=tanh(x)=ex+e−xex−e−x,值域为
(
−
1
,
1
)
(-1,1)
(−1,1)。
缺点:易饱和
ReLU神经元
修正线性单元(Rectified Linear Units)
0处不可导。解决:返回Relu一边的导数
函数的定义为:
f
(
x
)
=
m
a
x
(
0
,
x
)
f(x) = max(0, x)
f(x)=max(0,x) ,值域为
[
0
,
+
∞
)
[0,+∞)
[0,+∞)
缺点:但神经元没有激活时,将永远无法修改其权重。
变体:
绝对值修正单元(Absolute Value Rectification):
裂缝修正单元(Leaky ReLU):
函数定义为:
f
(
x
)
=
{
a
x
,
x
<
0
x
,
x
>
0
f(x) = \begin{cases} ax, \quad x<0 \\ x, \quad x>0 \end{cases}
f(x)={ax,x<0x,x>0,值域为 $ (-∞,+∞)
。
图
像
如
下
(
。 图像如下(
。图像如下( a = 0.5 )
Maxout单元
缺点:加重了训练的负担
SoftPlus激活函数
函数的定义为:
f
(
x
)
=
l
n
(
1
+
e
x
)
f(x) = ln( 1 + e^x)
f(x)=ln(1+ex),值域为
(
0
,
+
∞
)
(0,+∞)
(0,+∞)。