本篇博客对一些激活函数进行总结,以便加深理解和记忆
饱和激活函数:sigmoid、tanh…
非饱和激活函数:ReLU、LeakyRelu、ELU、PReLU、RReLU…
饱和的概念:设激活函数f(x),当x趋近于正负无穷时,f(x)趋近于0
非饱和激活函数的优点
Sigmoid函数在历史上曾非常常用,但是现在它已经不太受欢迎,实际中很少使用
Softmax函数常在神经网络输出层充当激活函数,将输出层的值通过激活函数映射到0-1区间,将神经元输出构造成概率分布,用于多分类问题中
训练神经网络的时候,一旦学习率没有设置好,第一次更新权重的时候,输入是负值,那么这个含有ReLU的神经节点就会死亡,再也不会被激活。所以,要设置一个合适的较小的学习率,来降低这种情况的发生
Softplus函数可以看作是ReLU函数的平滑
ReLU被扩展以包括高斯噪声(Gaussian noise),在受限玻尔兹曼机解决计算机视觉任务中得到应用,实验结果表明Maxout与Dropout组合使用可以发挥比较好的效果
从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际操作中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好
PRelu激活函数也是用来解决ReLU带来的神经元坏死的问题。与Leaky ReLU激活函数不同的是,PRelu激活函数负半轴的斜率参数α 是通过学习得到的,而不是手动设置的恒定值
f
(
a
,
x
)
=
[
a
(
e
x
−
1
)
,
x
≤
0
x
,
x
>
0
]
f(a,x)=
与Leaky ReLU和PRelu激活函数不同的是,ELU激活函数的负半轴是一个指数函数而不是一条直线
f
(
a
,
x
)
=
λ
[
a
(
e
x
−
1
)
,
x
≤
0
x
,
x
>
0
]
,
λ
=
1.0507
,
a
=
1.6733
f(a,x)=λ
SELU激活函数是在自归一化网络中定义的,通过调整均值和方差来实现内部的归一化,这种内部归一化比外部归一化更快,这使得网络能够更快得收敛
Mish激活函数的函数图像与Swish激活函数类似,但要更为平滑一些,缺点是计算复杂度要更高一些
Maxout可以看做是在深度学习网络中加入一层激活函数层,包含一个参数k.这一层相比ReLU,sigmoid等,其特殊之处在于增加了k个神经元,然后输出激活值最大的值