激活函数能分成两类——饱和激活函数和非饱和激活函数。

可以替换relu的激活函数 relu激活函数怎么读_激活函数

饱和的概念:

右饱和:
当x趋向于正无穷时,函数的导数趋近于0,此时称为右饱和。
左饱和:
当x趋向于负无穷时,函数的导数趋近于0,此时称为左饱和。
饱和函数和非饱和函数:
当一个函数既满足右饱和,又满足左饱和,则称为饱和函数,否则称为非饱和函数。

1、sigmoid和tanh

sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点:

    1.首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。
    2.其次,它能加快收敛速度。
    Sigmoid函数需要一个实值输入压缩至[0,1]的范围
    σ(x) = 1 / (1 + exp(−x))
    tanh函数需要讲一个实值输入压缩至 [-1, 1]的范围
    tanh(x) = 2σ(2x) − 1

2、ReLU

ReLU函数代表的的是“修正线性单元”,它是带有卷积图像的输入x的最大函数(x,o)。ReLU函数将矩阵x内所有负值都设为零,其余的值不变。ReLU函数的计算是在卷积之后进行的,因此它与tanh函数和sigmoid函数一样,同属于“非线性激活函数”。这一内容是由Geoff Hinton首次提出的。

ReLU 的缺点:
训练的时候很”脆弱”,很容易就”dead”了
例如,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是 0.
如果 learning rate 很大,那么很有可能网络中的 40% 的神经元都”dead”了。
ELUs
    ELUs是“指数线性单元”,它试图将激活函数的平均值接近零,从而加快学习的速度。同时,它还能通过正值的标识来避免梯度消失的问题。根据一些研究,ELUs分类精确度是高于ReLUs的。下面是关于ELU细节信息的详细介绍:

可以替换relu的激活函数 relu激活函数怎么读_激活函数_02

Leaky ReLUs
    ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。Leaky ReLU激活函数是在声学模型(2013)中首次提出的。以数学的方式我们可以表示为:

可以替换relu的激活函数 relu激活函数怎么读_激活函数_03

ai是(1,+∞)区间内的固定参数。

参数化修正线性单元(PReLU)
    PReLU可以看作是Leaky ReLU的一个变体。在PReLU中,负值部分的斜率是根据数据来定的,而非预先定义的。作者称,在ImageNet分类(2015,Russakovsky等)上,PReLU是超越人类分类水平的关键所在。
随机纠正线性单元(RReLU)
    “随机纠正线性单元”RReLU也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。形式上来说,我们能得到以下结果:

可以替换relu的激活函数 relu激活函数怎么读_斜率_04

总结

下图是ReLU、Leaky ReLU、PReLU和RReLU的比较:

    

可以替换relu的激活函数 relu激活函数怎么读_激活函数_05

    PReLU中的ai是根据数据变化的;

    Leaky ReLU中的ai是固定的;

    RReLU中的aji是一个在一个给定的范围内随机抽取的值,这个值在测试环节就会固定下来。