Python TensorFlow 常用激活函数详解:Sigmoid、Tanh、ReLU 与 Softplus
本文详细介绍 TensorFlow 中常用的四种激活函数:Sigmoid、Tanh、ReLU 和 Softplus。分析各自的数学特性、优缺点(如梯度消失、计算速度、零均值等),并提供对应的 TensorFlow API 调用示例,帮助开发者根据模型需求选择合适的非线性激活方式。
前言
在机器学习领域,激活函数通常应用于神经网络的隐藏层节点及输出层节点。其核心作用是为神经网络引入非线性因素。若不使用激励函数,网络的输出仅为输入的线性组合,其表现类似于最原始的感知机,导致网络的逼近能力极为有限。通过引入恰当的非线性激活函数,可以显著增强神经网络的拟合与逼近能力。
既然激活函数如此关键,那么常见的激活函数有哪些?其种类看似繁多,下面将逐一介绍。
常见的激活函数种类及其图像
1 sigmoid(logsig)函数
特点:Sigmoid 函数在不同语境下有不同名称,常用名为 sigmoid 和 logsig。它能够将输入的连续实值变换为 0 到 1 之间的输出。当输入为绝对值很大的负数时,输出趋近于 0;当输入为绝对值很大的正数时,输出趋近于 1。
缺点:
- 在深度神经网络中,容易引发梯度爆炸和梯度消失问题;
- 涉及幂函数运算,计算速度相对较慢;
- 输出并非以 0 为中心(非 0 均值)。
其计算公式为:

其图像如下所示。

2 tanh函数
特点:它能够将输入的连续实值变换为 -1 到 1 之间的输出。当输入为绝对值很大的负数时,输出趋近于 -1;当输入为绝对值很大的正数时,输出趋近于 1;
解决了 Sigmoid 函数输出非 0 均值的问题。
缺点:梯度消失问题和幂运算带来的计算开销问题依然存在。
其计算公式为:

其图像如下所示。

3 relu函数
特点:有效解决了梯度消失问题;计算速度极快,仅需判断输入是否大于 0;
收敛速度远快于 Sigmoid 和 Tanh 两个函数。
缺点:输出并非以 0 为中心(非 0 均值)。
其计算公式为:

其图像如下所示

4 softplus函数
特点:Softplus 函数可视为 ReLU 函数的平滑版本。
缺点:输出并非以 0 为中心(非 0 均值)。
其计算公式为:

其图像如下所示(与 ReLU 函数对比)。

tensorflow中损失函数的表达
1 sigmoid(logsig)函数
tf.nn.sigmoid(x, name=None)2 tanh函数
tf.nn.tanh(x, name=None)3 relu函数
tf.nn.relu(features, name=None)
tf.nn.relu6(features, name=None)
#relu6相对于普通relu更容易学习到稀疏特征。
4 softplus函数
tf.nn.softplus(features, name=None)
以上就是 python 人工智能 tensorflow 常用激活函数 Activation Functions 的详细内容,更多关于 tensorflow 激活函数的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









