符号函数是一个很神奇的东西,坐拥简单、求导方便等优点,非常适合用于机器学习的目标函数和激活函数中。
1.sign函数
是一个符号函数,可以理解为tanh函数的特殊化,满足以下条件:
当x>0,sign(x)=1;
当x=0,sign(x)=0;
当x<0, sign(x)=-1;
函数图像是:

2.tanh函数
tanh函数是双曲正切函数,是高中数学中的一个基础函数,基本形式如下:

这个函数,求导也比较好求,其实我们可以发现带e的求导都比较简单,tanh函数求导以后的形式为:

此外tanh函数和sigmoid之间还有个换算关系,虽然不重要,顺带提一嘴。

tanh函数的图像是下边这样的:

tanh函数的导数值在0-1之间,用于激活函数要优于sigmoid函数。
3.sigmoid函数
sigmoid是最常用的激活函数,或者说最常用的分类函数的目标函数,sigmoid的基本形式为:

它求导也有优良的性能,

sigmoid函数的图像是这样的:

sigmoid的导数值在0-1之间如果用于激活函数,容易造成梯度消失。
sigmoid的进阶版是softmax用于多分类问题,基本形式如下:

4.softplus函数
可以看做是softmax的一种近似,函数形式为:

函数图像为:

5.Relu函数
传统的Relu函数是0,x分段函数,基本形式是:

函数图像为:

他的问题是梯度反向传播的时候有可能乘0彻底消失,因此又多了很多变种。
-
leaky Relu
为了避免Relu的梯度消失,在<=0的时候赋予一个很小的梯度,这个函数收敛比较快,效果比较好,基本形式为:
leaky Relu函数形式
函数图像是这样的:
leaky Relu函数图像
-
ELU
指数线性单元,由于需要计算指数所以计算量比较大,但是对抗噪声的能力强。
函数和导数形式:
函数形式和导数形式
函数图像如下:
ELU函数图像
-
SELU函数
SELU函数是对ELU函数的优化,其实就是在ELU前边又乘了一个系数。实际是对ELU的拉伸。
SELU形式
-
SRelu
在Relu基础上又设置了几个阈值和函数,使其鲁棒性更好。
SRelu形式
函数图像是这样的:
SRelu函数
-
APL函数
自适应线性激活函数,这个笔者真不知道怎么用的,以后如果用到,会回来补充的。
APL函数形式
函数图像
APL函数
6.Swish函数
Swish函数具备有下界无上界,平滑、非单调的特性。在深层模型上效果优于Relu。

函数图像为:

7.maxout函数
一般的深度神经网络隐藏层节点的输出都要经过sigmoid激活一下,但是maxout的思想是,取最大而非经过函数计算。

实验表明,maxout和dropout结合有奇效。
网友评论