激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络结构学习数据中内在的复杂模式或规律。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出内容。因此,激活函数是确定神经网络输出的数学方程式,本文概述了深度学习中常见的十种激活函数及其优缺点,十种激活函数如下图所示。
神经网络结构中神经元模型的可视化图:
1. Sigmod激活函数
Sigmod激活函数公式:
该函数对应的曲线是S形
在什么情况下适合使用Sigmoid 激活函数呢?
- Sigmoid函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
- 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
- 梯度平滑,避免「跳跃」的输出值;
- 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
- 明确的预测,即非常接近 1 或 0。
Sigmoid激活函数有哪些缺点?
- 倾向于梯度消失;
- 函数输出不是以 0 为中心的,这会降低权重更新的效率;
- Sigmoid 函数执行指数运算,计算机运行得较慢。
2. Tanh双曲正切激活函数
Tanh激活函数的公式如下:
Tanh函数对应的图像:
Tanh激活函数比Sigmod激活函数更有优势,具体如下:
- 首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;
- 在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。
注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
持续更新。。。。
参考网址:
[1]https://mp.weixin.qq.com/s/aFcRoN02XoMAdmA-gBtx7A
[2]https://zhuanlan.zhihu.com/p/73214810
[3]https://www.cnblogs.com/CZiFan/p/9855147.html