8.Activation Function
8.1 Sigmoid 型函数
sigmoid 将输出响应的值域压缩到[0,1]之间
但是,两端大于5,小于-5的区域,梯度接近0,带来梯度的“饱和效应”
反向传播中无法传递误差
而且sigmoid 的值域均值并非为0,而是全为正
8.2 tanh(x)型函数
为解决均值问题
双曲正切函数
函数范围(-1,1)
输出响应均值为0
仍有梯度饱和线性
8.3 ReLU(修正线性单元)
优点:
- x>=0时,梯度为1,消除了梯度饱效应
- 有助于随机梯度下降方法收敛,收敛更快
缺点:
- x<0时,梯度为0,“死区”
8.4 Leaky ReLU
将ReLU函数中x<0部分调整为 f(x)=αx f ( x ) = α x
α α 为0.01/ 0.001数量级的较小正数
α α 为超参数,不好取值,实际性能不稳定
8.5 参数化ReLU
直接将 α α 作为一个网络中可学习的变量融入训练
使用误差反向传播,SGD,更新遵循链式法则
- 参数化ReLU优于原始ReLU
- 各通道独享参数 α α 的性能更优
- 浅层 α α 大,浅层多表示边缘,纹理等特性的泛化特征,对于此类特征,正负响应均很重要
α α 呈现由浅层到深层依次递减的趋势,网络所需非线性能力随网络深度增加而递增
注意:可能增大过拟合风险
8.6 随机化ReLU
α α 取值在训练阶段服从均匀分布,在测试阶段,将其指定为该均匀分布对应的分布期望 l+u2 l + u 2
其中,
8.7 指数化线性单元(ELU)
ELU 解决了ReLU 函数自身的“死区”问题。
不过,ELU函数中的指数操作稍稍增大了计算量。
实际使用中,ELU 中的超参数 λ 一般设置为 1。
8.8 小结
- Sigmoid 和 tanh 不建议使用
- 使用最常用的ReLU(注意初始化和学习率的设置)
- 进一步提高精度,考虑Leaky ReLU,参数化ReLU,随机化ReLU和ELU
- 无绝对优劣
参考文献:解析卷积神经网络—深度学习实践手册