Activation Functions:激活函数

1. 激活函数:激活函数是指在人工神经网络的神经元中,将输入映射到输出端的非线性函数。激活函数通常是非线性的,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,可以应用到非线性模型中。

一般进行线性操作后,就将线性操作的结果放入激活函数中映射。在CNN中,运算顺序通常是卷积 - 池化 - 批量归一化 - 激活函数

常见的激活函数:sigmoid、tanh、ReLU、Maxout、Leaky ReLU、ELU

2. sigmoid:将元素压缩(映射)到0和1之间,当参数过大或过小时,容易造成梯度消失

公式:

图像:

问题:

①梯度消失

②指数函数e的计算过高

③函数不以0为中心

梯度消失:当参数过大或过小时,斜率趋向于0,局部梯度为0或者是一个很小很小的值,一直回溯逐步累乘起来,梯度就会趋于0,从而造成梯度消失

4. tanh:将元素映射到-1和1之间,以0为中心,但仍存在梯度消失的问题

公式:

图像:

 

5. Relu:将元素映射到0和正无穷之间,在大于0的区间上不存在梯度消失的问题。Relu不用计算指数函数,计算效率高、收敛速度快

公式:

图像:

 

6. Leaky Relu:将元素映射到负无穷到正无穷之间,设置α,选取αx和x中的最大值

公式:

图像:α=0.01

7.ELU:将元素映射到负无穷和正无穷之间, x>=0时,f(x)=x;x<0时,f(x)=α( e^x - 1)

公式:

图像:

  

8. Maxout:有两组不同的W1、b1;W2、b2分别和输入矩阵进行线性操作得到两个不同的结果,在两个结果中选取最大值 

公式:

缺点:对于W和b,两倍内存,两倍计算

9. 实践中如何选择激活函数?

猜你喜欢

转载自www.cnblogs.com/shiliuxinya/p/12243353.html