网站首页轮播,百度扫一扫,建设职业技术学院官网,杭州建网站企业激活函数在神经网络中起着至关重要的作用#xff0c;它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景#xff0c;选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数#xff1a;Sigmoid、T…激活函数在神经网络中起着至关重要的作用它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数Sigmoid、Tanh 和 ReLU 的详细介绍。
1. Sigmoid 激活函数
公式 图像 特点
输出范围(0, 1)将输入压缩到0到1之间。用途常用于二分类问题中的输出层因为它的输出可以解释为概率值0表示负类1表示正类。优点 输出具有良好的可解释性适合用于需要概率输出的任务。 缺点 梯度消失问题当输入较大或较小时Sigmoid 函数的导数接近于0导致反向传播时梯度几乎为零使得权重更新非常缓慢甚至停止更新。这在深度网络中尤为严重。非零中心化Sigmoid 函数的输出不是以0为中心的这会导致后续层的权重更新方向不一致影响训练效率。
应用场景
二分类问题的输出层。逻辑回归模型。 2. Tanh (双曲正切) 激活函数
公式 图像 特点
输出范围(-1, 1)将输入压缩到-1到1之间。用途常用于隐藏层尤其是在早期的神经网络中。它比 Sigmoid 更加对称且输出是以0为中心的。优点 零中心化Tanh 的输出是零中心化的这有助于加速收敛因为后续层的权重更新方向更加一致。更好的梯度传播相比 SigmoidTanh 在输入接近0时的导数更大因此梯度消失问题稍微缓解。 缺点 仍然存在梯度消失问题虽然比 Sigmoid 稍好但在输入较大或较小时Tanh 的导数也会接近0导致梯度消失。
应用场景
隐藏层尤其是浅层神经网络。RNN循环神经网络中Tanh 是常用的激活函数因为它可以帮助控制信息的流动。 3. ReLU (Rectified Linear Unit) 激活函数
公式 图像 特点
输出范围[0, ∞)当输入为正时输出等于输入当输入为负时输出为0。用途广泛应用于现代深度学习模型的隐藏层尤其是在卷积神经网络CNN和全连接网络中。优点 避免梯度消失问题对于正输入ReLU 的导数为1因此不会出现梯度消失问题。这使得 ReLU 在深层网络中表现良好能够加速训练。计算简单ReLU 的计算非常简单只需判断输入是否大于0因此计算效率高。稀疏性ReLU 会将负输入直接设为0这有助于引入稀疏性减少模型的复杂度。 缺点 死亡 ReLU 问题当输入为负时ReLU 的导数为0导致该神经元在反向传播时不再更新权重。如果大量神经元进入“死亡”状态模型可能会失去表达能力。为了解决这个问题通常使用改进版的 ReLU如 Leaky ReLU 或 Parametric ReLU。非零中心化ReLU 的输出是非零中心化的这可能会导致后续层的权重更新方向不一致。
改进版本
Leaky ReLU为了解决死亡 ReLU 问题Leaky ReLU 在负输入时赋予一个很小的斜率通常是0.01而不是直接设为0。 [ \text{Leaky ReLU}(x) \max(\alpha x, x), \quad \text{其中} ; 0 \alpha \ll 1 ]Parametric ReLU (PReLU)Leaky ReLU 的斜率是固定的而 PReLU 的斜率是一个可学习的参数可以在训练过程中自动调整。 [ \text{PReLU}(x) \max(\alpha_i x, x), \quad \text{其中} ; \alpha_i ; \text{是每个神经元的可学习参数} ]Exponential Linear Unit (ELU)ELU 在负输入时使用指数函数来平滑过渡避免了死亡 ReLU 问题并且输出是零中心化的。 [ \text{ELU}(x) \begin{cases} x \text{if} ; x 0 \ \alpha (e^x - 1) \text{if} ; x \leq 0 \end{cases} ]
应用场景
隐藏层尤其是深度神经网络DNN、卷积神经网络CNN和生成对抗网络GAN。由于其出色的性能和计算效率ReLU 及其变体已成为现代深度学习模型中最常用的激活函数之一。 总结
激活函数输出范围优点缺点应用场景Sigmoid(0, 1)输出具有概率意义梯度消失非零中心化二分类问题的输出层逻辑回归Tanh(-1, 1)零中心化更好的梯度传播梯度消失隐藏层RNN 中ReLU[0, ∞)避免梯度消失计算简单引入稀疏性死亡 ReLU 问题非零中心化隐藏层DNN、CNN、GAN
选择激活函数的建议
Sigmoid主要用于二分类问题的输出层尤其是在需要概率输出的情况下。Tanh适用于隐藏层尤其是浅层网络或 RNN 中。它比 Sigmoid 更加对称有助于加速收敛。ReLU是现代深度学习模型中最常用的激活函数尤其适用于隐藏层。如果你遇到死亡 ReLU 问题可以尝试使用 Leaky ReLU 或 PReLU。