激活函数学习总结
激活函数学习总结
1.什么是激活函数?
激活函数(Activation Function),人工神经网络的神经元运行的函数,负责将神经元的输入映射到输出端。
2.激活函数的作用
主要提供网络的非线性建模能力。
数据集线性可分,简单的用线性分类器即可解决分类问题。
但是现实生活中的数据往往不是线性可分的,面对这样的数据,一般有
两个方法:引入非线性函数、线性变换。
线性变换
就是把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。
激活函数
在神经网络中,为了避免单纯的线性组合,我们在每一层的输出后面都添加一个激活函数(sigmoid、tanh、ReLu等等)。
3.激活函数的性质
可微性:当优化方法是基于梯度的时候,这个性质是必须的。
单调性:当激活函数是单调的时候,单层网络能够保证是凸函数
输出值的范围:当激活函数输出值是 有限 的时候,基于梯度的优化方法会更加 稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate。
4.常见的激活函数
sigmoid 函数:
值域是(0,1)
优点:输出映射在(0,1)之间,用于输出层,求导容易
缺点: 易造成梯度消失
输出非0均值,收敛慢
幂运算复杂,训练时间长
Tanh函数:thah(x)=
优点:收敛速度比sigmoid快。但是缺点,容易产生梯度消失。
函数及导数图像
Relu函数及导数
优点:
1、 输入为正时,导数为1,一定程度上改善了梯度消失,加速梯度下降的收敛速度。
2、 计算速度快得多。Relu函数中只存在线性关系,因此计算速度比sigmoid和tanh更快。
3、 被认为具有生物合理性(Biological Plausibility),比如单侧抑制、宽兴奋边界(兴奋程度可以非常高)
不足,当输入为负时,Relu完全失效,在正向传播过程中,这不是问题。但是在反向传播中,如果输入为负数,则梯度将完全为零;