神经网络中常见的激活函数Sigmoid、Tanh和ReLU

激活函数在神经网络中起着至关重要的作用,它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景,选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数:SigmoidTanhReLU 的详细介绍。

1. Sigmoid 激活函数

公式:
图像:
特点:
  • 输出范围:(0, 1),将输入压缩到0到1之间。
  • 用途:常用于二分类问题中的输出层,因为它的输出可以解释为概率值(0表示负类,1表示正类)。
  • 优点
    • 输出具有良好的可解释性,适合用于需要概率输出的任务。
  • 缺点
    • 梯度消失问题:当输入较大或较小时,Sigmoid 函数的导数接近于0,导致反向传播时梯度几乎为零,使得权重更新非常缓慢,甚至停止更新。这在深度网络中尤为严重。
    • 非零中心化:Sigmoid 函数的输出不是以0为中心的,这会导致后续层的权重更新方向不一致,影响训练效率。
应用场景:
  • 二分类问题的输出层。
  • 逻辑回归模型。

2. Tanh (双曲正切) 激活函数

公式:
图像:
特点:
  • 输出范围:(-1, 1),将输入压缩到-1到1之间。
  • 用途:常用于隐藏层,尤其是在早期的神经网络中。它比 Sigmoid 更加对称,且输出是以0为中心的。
  • 优点
    • 零中心化:Tanh 的输出是零中心化的,这有助于加速收敛,因为后续层的权重更新方向更加一致。
    • 更好的梯度传播:相比 Sigmoid,Tanh 在输入接近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。
相关推荐
斐夷所非32 分钟前
人工智能 AI. 机器学习 ML. 深度学习 DL. 神经网络 NN 的区别与联系
人工智能
Funny_AI_LAB2 小时前
OpenAI DevDay 2025:ChatGPT 进化为平台,开启 AI 应用新纪元
人工智能·ai·语言模型·chatgpt
深瞳智检2 小时前
YOLO算法原理详解系列 第002期-YOLOv2 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
深眸财经3 小时前
机器人再冲港交所,优艾智合能否破行业困局?
人工智能·机器人
小宁爱Python3 小时前
从零搭建 RAG 智能问答系统1:基于 LlamaIndex 与 Chainlit实现最简单的聊天助手
人工智能·后端·python
新知图书4 小时前
Encoder-Decoder架构的模型简介
人工智能·架构·ai agent·智能体·大模型应用开发·大模型应用
大模型真好玩4 小时前
低代码Agent开发框架使用指南(一)—主流开发框架对比介绍
人工智能·低代码·agent
tzc_fly4 小时前
AI作为操作系统已经不能阻挡了,尽管它还没来
人工智能·chatgpt
PKNLP5 小时前
深度学习之神经网络1(Neural Network)
人工智能·深度学习·神经网络
文火冰糖的硅基工坊5 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机