激活函数
1.激活函数的性质
- 1.连续并可导(允许少数点不可导)的非线性函数
- 可导的激活函数可直接数值优化来学习网络参数
- 2.激活函数及其导函数要尽可能的简单
- 利于提高网络计算效率
- 3.激活函数的导函数的值域要在一个合适的区间
- 大小合适保证网络训练效率和稳定性
2.常见激活函数
2.1 sigmoid型函数
Sigmoid型函数指有一类S型曲线函数,为两端饱和函数。
2.1.1 Logisitic函数
σ ( x ) = 1 ( 1 + e x p ( − x ) ) \sigma(x) = {1\over(1+exp(-x))} σ(x)=(1+exp(−x))1
2.1.2 Tanh函数
t a n h ( x ) = e x p ( x ) − e x p ( − x ) e x p ( x ) + e x p ( − x ) tanh(x)={exp(x)-exp(-x) \over exp(x)+exp(-x)} tanh(x)=exp(x)+exp(−x)exp(x)−exp(−x)
2.2 ReLU函数
ReLU实际上是一个斜坡函数,定义:
R
e
L
U
(
x
)
=
m
a
x
(
0
,
x
)
ReLU(x) = max(0,x)
ReLU(x)=max(0,x)
其优点:
- 采用ReLU的神经元只需要进行加、乘和比较的操作,计算上更加高效。
- ReLU具有很好的稀疏性
- 在优化方面,相比于sigmoid函数两端饱和,ReLU函数为左饱和,且在x>0时导数为1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。
缺点:
- 其输出是非零中心化的,给后一层的神经网络引入偏置便宜,会影响梯度下降的效率
- ReLU神经元在训练时比较容易死亡
2.2.1 LeakyReLU函数
L
e
a
k
y
R
e
L
U
(
x
)
=
m
a
x
(
0
,
x
)
+
γ
m
i
n
(
0
,
x
)
LeakyReLU(x) = max(0,x)+\gamma min(0,x)
LeakyReLU(x)=max(0,x)+γmin(0,x)
在输入
x
<
0
x<0
x<0时,保持很小的梯度。可以使神经元非激活时也能以一个非零的梯度更新参数,避免永远不能被激活。
2.2.2 PReLU函数
P R e L U ( x ) = m a x ( 0 , x ) + γ i m i n ( 0 , x ) PReLU(x) = max(0,x)+\gamma_i min(0,x) PReLU(x)=max(0,x)+γimin(0,x)
2.2.3 ELU函数
E L U ( x ) = m a x ( 0 , x ) + m i n ( 0 , γ ( e x p ( x ) − 1 ) ) ELU(x) = max(0,x)+min(0,\gamma(exp(x)-1)) ELU(x)=max(0,x)+min(0,γ(exp(x)−1))
2.2.4 softplus函数
S
o
f
t
p
l
u
s
(
x
)
=
l
o
g
(
1
+
e
x
p
(
x
)
)
Softplus(x)=log(1+exp(x))
Softplus(x)=log(1+exp(x))
2.3 Swish函数
一种自门控激活函数
s
w
i
s
h
(
x
)
=
x
σ
(
β
x
)
swish(x)=x \sigma( \beta x)
swish(x)=xσ(βx)
2.4 GELU函数
G E L U ( x ) = x P ( X = < x ) GELU(x) = xP(X=<x) GELU(x)=xP(X=<x)
2.5 Maxout单元
m a x o u t ( x ) = m a x k ∈ [ 1 , k ] ( z K ) maxout(x) = max_{k\in[1,k]}(z_K) maxout(x)=maxk∈[1,k](zK)
常见激活函数及其导数
激活函数 | 函数 | 导数 |
---|---|---|
Logistic函数 | f ( x ) = 1 1 + e x p ( − x ) f(x) = {1\over{1+exp(-x)}} f(x)=1+exp(−x)1 | f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f^{'}(x)=f(x)(1-f(x)) f′(x)=f(x)(1−f(x)) |
Tanh函数 | f ( x ) = e x p ( x ) − e x p ( − x ) e x p ( x ) + e x p ( − x ) f(x)={exp(x)-exp(-x) \over exp(x)+exp(-x)} f(x)=exp(x)+exp(−x)exp(x)−exp(−x) | f ′ ( x ) = 1 − f ( x ) 2 f^{'}(x)=1-f(x)^2 f′(x)=1−f(x)2 |
ReLU函数 | f ( x ) = m a x ( 0 , x ) f(x) = max(0,x) f(x)=max(0,x) | f ′ ( x ) = I f^{'}(x)=I f′(x)=I |
ELU函数 | f ( x ) = m a x ( 0 , x ) + m i n ( 0 , γ ( e x p ( x ) − 1 ) ) f(x) =max(0,x)+min(0,\gamma(exp(x)-1)) f(x)=max(0,x)+min(0,γ(exp(x)−1)) | f ′ ( x ) = I ( x > 0 ) + I ( x = < 0 ) ⋅ γ e x p ( x ) f^{'}(x)=I(x>0)+I(x=<0)\cdot \gamma exp(x) f′(x)=I(x>0)+I(x=<0)⋅γexp(x) |
SoftPlus函数 | f ( x ) = l o g ( 1 + e x p ( x ) ) f(x) =log(1+exp(x)) f(x)=log(1+exp(x)) | f ′ ( x ) = 1 1 + e x p ( − x ) f^{'}(x)={1 \over {1+exp(-x)}} f′(x)=1+exp(−x)1 |
参考:
- 神经网络与深度学习,邱锡鹏
- 其余文献不一一列举