BNN常用激活函数总结
1. 常用激活函数
1.1 阔值激活函数
- 当激活值大于0时为1,否则为0
- 由于导数在 x=0 时,不连续,所以不可以用于梯度下降训练
1 | # Customize an threshold activation function |
Graph
1.2 Sigmoid
- tensorflow内置了 **tf.sigmoid()**实现
- 输出值范围 (0, 1)
- 该函数在两端导数为趋近于0,故会出现梯度消失(梯度弥散现象)问题,使得样本训练和优化变得越发困难
1 | # plot |
Graph
1.3 ReLU
负值输入为0,正值输入时,输出值和输入值相同
负值输入为0的特性(稀疏激活)使得计算量大大减少
避免了梯度弥散,是大部分网络模型的首选激活函数
1 | # plot |
Graph
1.4 Softmax
- 函数输出值范围 [0, 1]
- 所有输出值和为1,故改激活函数被广泛用于分类任务网络模型的输出层
1 | # plot |
Graph
2. Notes
- ReLU函数由于其函数特性,而具有单侧抑制性,同时避免了梯度弥散的出现,因此在多层网络模型中都表现良好,所以在深层网络模型中,最常用的激活函数还是ReLU
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人记录!
评论