在深度学习中,激活函数提供了非线性变换的能力,提高了神经网络的表达能力。根据万能近似定理,这种非线性表达能力赋予了神经网络拟合一切函数的能力!当然也让大多数我们感兴趣的代价函数都变得非凸。
激活函数基本性质
关于激活函数的一些问题
激活函数的作用
激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题
激活函数一般需要具有的几个性质
- 有界
- 容易求导
- 单调(容易进行凸优化)
- 处理简单(计算方面)
参考
Activation Functions: Comparison of trends in Practice and Research for Deep Learning
常见的激活函数
sigmoid
函数形式
经常用$\sigma (·)$表示。
函数形状
sigmoid函数形状
作为激活的特点
输出是0~1之间
因此,在LSTM的三个门中使用的激活函数就是sigmoid。
作为激活函数的缺点
- 因为sigmoid函数的梯度最大值是0.25,容易梯度消失
- 不是0均值,0均值有什么作用
关于sigmoid函数的起源
tanh函数
函数形式
函数形状
函数的特点
- 优点:0均值
- 缺点:梯度消失
- 曾应用广泛
Relu函数
函数形式
函数形状
修正线性单元(Rectified linear unit,ReLU)
特点
- 优点:计算速度快,稀疏,梯度消失缓解
- 缺点:神经元会死亡
- 应用广泛
Leaky Relu
带泄露修正线性单元(Leaky ReLU)
函数形式
函数形状
特点
- ReLU的一个变体,减少神经元死亡
- 应用较广
ELU
指数线性单元(Exponential Linear Unit,ELU)
函数形式
函数形状
特点
- 类似于Leaky ReLU
- 计算量稍大
- 不会有Dead ReLU问题
- 均值接近于0