[Sigmoid函数](Sigmoid函数.md) [[SwiGLU]] # Summary # Cues### SiLU ReLU全称: Rectified Linear Unit(整流线性单元) SiLU 全称: Sigmoid Linear Unit(S形线性单元)别名: Swish(Google提出时的名称) ![CleanShot 2025-07-20 at [email protected]|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fmedia%2Fmedia_1Ey6hOynmC%2F2025%2F07%2F20%2F19-06-51-be308003b99ca1c106bfce33e7f0cb42-CleanShot%202025-07-20%20at%2019.06.34-2x-5f9833.png) ## 常见激活函数对比 | 激活函数 | 公式 | 输出范围 | 优点 | 缺点 | 常用场景 | | -------------------------------- | ----------------------------------------------------------------------------- | ----------- | ------------------------------------ | ------------------------------- | ------------------------------------ | | [Sigmoid函数](Sigmoid函数.md) | $\sigma(x) = \frac{1}{1 + e^{-x}}$ | (0, 1) | • 输出有界<br>• 可解释为概率<br>• 平滑可导 | • 梯度消失<br>• 输出不以0为中心<br>• 计算开销大 | • 二分类输出<br>• 门控机制<br>• 注意力门 | | Tanh | $\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$ | (-1, 1) | • 输出以0为中心<br>• 比Sigmoid收敛快<br>• 平滑可导 | • 梯度消失<br>• 计算开销大 | • LSTM/GRU<br>• 归一化层<br>• 特征缩放 | | [[ReLU]] | $\text{ReLU}(x) = \max(0, x)$ |[0, +∞) | • 计算简单<br>• 缓解梯度消失<br>• 稀疏激活 | • 神经元死亡<br>• 输出不以0为中心<br>• 不平滑 | • CNN隐藏层<br>• 大部分DNN<br>• 计算效率优先 | | Leaky ReLU | $\text{LReLU}(x) = \begin{cases} x & x > 0 \ \alpha x & x \leq 0 \end{cases}$ | (-∞, +∞) | • 解决神经元死亡<br>• 计算简单<br>• 全范围可导 | • 需要调参α<br>• 仍不平滑 | • 深层网络<br>• GAN判别器<br>• 避免死亡神经元 | | GELU | $\text{GELU}(x) = x \cdot \Phi(x)$ | (-0.17, +∞) | • 平滑可导<br>• 性能优秀<br>• 随机正则化 | • 计算复杂<br>• 理论解释不足 | • BERT<br>• GPT系列<br>• Transformer | | Swish/[SwiGLU](SwiGLU.md) | $\text{Swish}(x) = x \cdot \sigma(x)$ | (-0.28, +∞) | • 平滑非单调<br>• 自门控<br>• 性能优于ReLU | • 计算开销较大<br>• 训练不稳定风险 | • EfficientNet<br>• LLaMA<br>• 现代CNN | | Mish | $\text{Mish}(x) = x \cdot \tanh(\ln(1 + e^x))$ | (-0.31, +∞) | • 比Swish更平滑<br>• 上界平滑<br>• 强正则化 | • 计算最复杂<br>• 速度慢 | • YOLOv4<br>• 计算机视觉<br>• 精度优先场景 | | [[softmax]] | $\text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$ | (0, 1) | • 输出概率分布<br>• 和为1<br>• 可微分 | • 对异常值敏感<br>• 数值不稳定<br>• 只用于输出层 | • 多分类输出<br>• 注意力权重<br>• 概率分布 | ## 激活函数选择指南 |应用场景|推荐激活函数|原因| |---|---|---| |CNN隐藏层|ReLU, Leaky ReLU|计算效率高,性能稳定| |Transformer|GELU, Swish|平滑性好,性能优秀| |二分类输出|Sigmoid|输出范围(0,1),可解释为概率| |多分类输出|Softmax|输出概率分布,和为1| |GAN|Leaky ReLU (判别器)<br>Tanh (生成器输出)|避免梯度消失,输出归一化| |回归任务|无激活函数|保持线性输出| |LSTM/GRU门|Sigmoid, Tanh|门控需要(0,1)范围| |深度网络|Leaky ReLU, Swish|避免梯度消失和神经元死亡| ## 计算复杂度对比 |激活函数|相对计算成本|内存需求| |---|---|---| |ReLU|1x (最快)|低| |Leaky ReLU|1.1x|低| |Tanh|4x|中| |Sigmoid|4x|中| |GELU|5x|中| |Swish|5x|中| |Mish|7x|高| 注:$\Phi(x)$ 表示标准正态分布的累积分布函数 # ReLU ReLU(Rectified Linear Unit)的数学表达式为: $\text{ReLU}(x) = \max(0, x)$ 这意味着: - 当 $x < 0$ 时,$\text{ReLU}(x) = 0$; - 当 $x \ge 0$ 时,$\text{ReLU}(x) = x$。 图像上看,ReLU 函数的形状是这样的: - 对于负数部分($x < 0$),输出一直为 0,即图像在 $y = 0$ 处是一条水平线。 - 当 $x$ 到达 0 后,函数开始沿着直线 $y = x$ 向上延伸,也就是说对于正数部分,图像是一条斜率为 1 的直线。 简单示意图如下: ```Java | 4 | / | / 2 | / | / 0 |--------•--------> | -2 | | ``` - 横轴表示 $x$; - 纵轴表示 $\text{ReLU}(x)$; - 当 $x<0$ 时,输出为 0(图中水平线部分);当 $x \ge 0$ 时,输出与 $x$ 相等(图中斜线部分)。 这就是 ReLU 函数的图像形状。