激活函数(Activation Function)它是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。与人脑中基于神经元的模型类似,激活函数最终决定向下一个神经元发射。
神经网工作图
我们可以看到激活函数的输出结果可以作为下一层的输入结果
接下来,我们将学习一些常见的激活函数
函数表达式如下
在什么情况下适合使用? Sigmoid激活函数呢?
-
Sigmoid 函数的输出范围是 0 到 1.由于输出值有限 0 到 1,因此它对每个神经元的输出进行了归一化;
-
以预测概率为输出模型。因为概率的值范围是 0 到 1,因此 Sigmoid 函数非常合适;
-
梯度平滑,避免「跳跃」的输出值;
-
函数是微的。这意味着你可以找到任何两点 sigmoid 曲线斜率;
-
明确的预测非常接近 1 或 0。
Sigmoid激活函数的缺点是什么?
-
梯度消失倾向;
-
函数输出不是以 0 以权重更新为中心,降低效率;
-
Sigmoid 函数执行指数运算,计算机运行缓慢。
其表达式如下
tanh 是双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。 sigmoid 函数有一些优点。
-
首先,当输入较大或较小时,输出几乎光滑,梯度较小,不利于权重更新。两者的区别在于输出间隔,tanh 输出间隔为 以及整个函数 0 为中心,比 sigmoid 函数更好;
-
在 tanh 负输入将被强映射为负,而零输入将被映射为接近零。
注:在一般的二元分类问题中,tanh 在隐藏层中使用函数 sigmoid 该函数用于输出层,但不是固定的,需要根据具体问题进行调整。
其表达式如下:
ReLU 与深度学习相比,函数是一种流行的激活函数 sigmoid 函数和 tanh 函数具有以下优点:
-
当输入正时,梯度饱和没有问题。
-
计算速度快得多。ReLU 函数中只有线性关系,因此其计算速度比 sigmoid 和 tanh 更快。
当然,它也有缺点:
-
Dead ReLU 问题。当输入为负时,ReLU 完全失败,这不是积极传播过程中的问题。有些地区很敏感,有些地区不敏感。但在反向传输过程中,如果输入负,梯度将完全为零,sigmoid 函数和 tanh 函数也有同样的问题;
-
我们发现 ReLU 函数输出为 0 或者正数,这意味着 ReLU 函数不是以 0 中心函数
它是一种特殊的解决方案设计 Dead ReLU 问题的激活函数:
ReLU vs Leaky ReLU
函数表达式如下:
-
Leaky ReLU 通过把 x 负输入非常小的线性分量(0.01x)调整负值的零梯度(zero gradients)问题;
-
leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;
-
Leaky ReLU 函数范围为(负无穷到正无穷)。
从理论上讲,Leaky ReLU 具有 ReLU 而且 Dead ReLU 没有问题,但在实践中还没有完全证明 Leaky ReLU 总是比 ReLU 更好。
ELU 提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 负值会使激活的平均值接近零。由于它们使梯度更接近自然梯度,因此平均激活接近零可以使学习更快。
显然,ELU 具有 ReLU 所有:
-
没有 Dead ReLU 问题是,平均输出值接近 0,以 0 为中心;
-
ELU 通过减少偏置偏移的影响,使正常梯度更接近单位自然梯度,从而加速平均学习到零;
-
ELU 在较小的输入下,它会饱和到负值,从而减少前输的变异和信息。
一个小问题是它的计算强度更高。与 Leaky ReLU 尽管理论上比较类似 ReLU 很好,但在实践中没有足够的证据表明 ELU 总是比 ReLU 好。
Softmax 它是用于多类分类问题的激活函数。在多类分类问题中,超过两个类标签需要类成员关系。 K 任意实向量,Softmax 它可以压缩成长度 K,值在(0,1)范围内,向量元素的总和为 1 的实向量。
Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。
Softmax 函数的分母结合了原始输出值的所有因素,这意味着 Softmax 函数获得的各种概率相互关联。
Softmax激活函数的主要缺点是:
-
零点不能微;
-
负输入梯度为零,这意味着反向传播期间不会更新该区域的激活权重,因此会产生永不激活的死亡神经元。