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. 实践中如何选择激活函数?
来源:https://www.cnblogs.com/shiliuxinya/p/12243353.html