深度学习——常见激活函数

常见激活函数

激活函数

大语言模型( LLM ) 时代,激活函数的设计直接影响模型的表达能力、训练稳定性和计算效率。以下是当前主流的激活函数及其应用场景的总结,涵盖经典方法和最新趋势:


1. 核心激活函数

(1) GeLU( Gaussian Error Linear Unit )

  • 公式

    \[\text{GeLU}(x) = x \cdot \Phi(x) = x \cdot \frac{1}{2} \left(1 + \text{erf}\left(\frac{x}{\sqrt{2}}\right)\right) \]

  • 特点
    • 结合了ReLU的非线性和概率建模能力( 通过高斯分布加权 )。
    • 平滑性:在接近0时梯度更连续,缓解ReLU的“死区”问题。
    • 近似实现:实际计算中常用近似公式( 如 0.5x(1 + tanh(sqrt(2/π)(x + 0.044715x^3))) )。
  • 应用
    • Transformer的FFN层:BERT、GPT系列、LLaMA等模型的标准选择。
    • 替代ReLU以提升深层模型训练稳定性。

(2) Swish( 自门控激活函数 )

  • 公式

    \[\text{Swish}(x) = x \cdot \sigma(\beta x) \quad (\beta \text{可学习,常固定为1}) \]

  • 特点
    • 非单调性有助于模型捕捉复杂特征。
    • 在极负区域梯度非零,缓解梯度消失。
  • 应用
    • 部分LLM的前馈网络替代GeLU( 如PaLM中使用 SwiGLU 变体 )。
    • 轻量级模型的激活函数选择。

(3) ReLU及其变体

  • ReLU

    \[\text{ReLU}(x) = \max(0, x) \]

    • 优势:计算高效,稀疏激活。
    • 劣势:输出非零中心化,可能导致“神经元死亡”。
    • LLM应用:部分早期模型( 如T5 )仍使用ReLU,但逐渐被GeLU取代。
  • Leaky ReLU

    \[\text{LeakyReLU}(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{otherwise} \end{cases} \quad (\alpha \text{为小斜率,如0.01}) \]

    • 用途:缓解ReLU的死亡问题,但在LLM中较少使用。

2. 门控机制激活函数

(1) GLU( Gated Linear Unit )

  • 公式

    \[\text{GLU}(x) = (W_1 x + b_1) \otimes \sigma(W_2 x + b_2) \]

    • 特点:通过门控信号动态调节特征重要性,增强模型表达能力。
    • 变体
      • SwiGLU:用Swish替代Sigmoid作为门控函数( PaLM、LLaMA-2使用 )。
      • GeGLU:用GeLU作为门控函数( T5变体 )。
  • 优势:显著提升模型容量,适合大规模参数下的特征交互。
  • 计算代价:参数量和计算量翻倍,需权衡性能与效率。

(2) GAU( Gated Attention Unit )

  • 特点:将门控机制融入注意力层,动态调节注意力权重( 如FLASH模型 )。
  • 公式

    \[\text{GAU}(Q, K, V) = \sigma(W_q Q + W_k K) \otimes (W_v V) \]


3. 动态/参数化激活函数

(1) PReLU( Parametric ReLU )

  • 公式

    \[\text{PReLU}(x) = \max(0, x) + \alpha \cdot \min(0, x) \quad (\alpha \text{可学习}) \]

    • 用途:自适应调整负区斜率,但LLM中较少使用。

(2) Dynamic Activation Functions

  • Mixture-of-Experts( MoE )激活
    • 不同专家( 子网络 )通过门控选择激活路径( 如Switch Transformer )。
    • 优势:动态激活不同参数子集,提升模型容量和稀疏性。

4. 选择激活函数的考量因素

  1. 训练稳定性
    • GeLU/Swish的平滑性比ReLU更适合深层LLM训练。
  2. 计算效率
    • ReLU > GeLU > GLU( 门控结构增加计算量 )。
  3. 模型容量
    • 门控机制( GLU/SwiGLU )显著提升模型表达能力,但需更多参数。
  4. 硬件优化
    • 激活函数的计算是否容易被融合( 如CuDNN的fused GeLU优化 )。

5. 常见LLM的激活函数实例

模型 激活函数 应用场景
GPT-3/4 GeLU FFN层
PaLM SwiGLU FFN层( 替代GeLU )
LLaMA-2 SwiGLU FFN层
BERT GeLU FFN层
T5 ReLU FFN层( 轻量化设计 )
FLASH GAU 注意力层门控

面试回答要点

  1. 强调GeLU和SwiGLU:解释它们在LLM中的主流地位及数学动机。
  2. 对比ReLU与GeLU:GeLU的平滑性如何缓解梯度问题。
  3. 门控机制的价值:GLU变体如何通过动态门控增强模型容量。
  4. 实际部署考量:激活函数对训练速度、显存占用和硬件支持的影响。

通过掌握这些核心概念,你可以清晰展示对LLM底层机制的理解!

sigmoid和softmax

大语言模型( LLM ) 时代,激活函数的设计直接影响模型的表达能力、训练稳定性和计算效率。以下是当前主流的激活函数及其应用场景的总结,涵盖经典方法和最新趋势:


1. 核心激活函数

(1) GeLU( Gaussian Error Linear Unit )

  • 公式

    \[\text{GeLU}(x) = x \cdot \Phi(x) = x \cdot \frac{1}{2} \left(1 + \text{erf}\left(\frac{x}{\sqrt{2}}\right)\right) \]

  • 特点
    • 结合了ReLU的非线性和概率建模能力( 通过高斯分布加权 )。
    • 平滑性:在接近0时梯度更连续,缓解ReLU的“死区”问题。
    • 近似实现:实际计算中常用近似公式( 如 0.5x(1 + tanh(sqrt(2/π)(x + 0.044715x^3))) )。
  • 应用
    • Transformer的FFN层:BERT、GPT系列、LLaMA等模型的标准选择。
    • 替代ReLU以提升深层模型训练稳定性。

(2) Swish( 自门控激活函数 )

  • 公式

    \[\text{Swish}(x) = x \cdot \sigma(\beta x) \quad (\beta \text{可学习,常固定为1}) \]

  • 特点
    • 非单调性有助于模型捕捉复杂特征。
    • 在极负区域梯度非零,缓解梯度消失。
  • 应用
    • 部分LLM的前馈网络替代GeLU( 如PaLM中使用 SwiGLU 变体 )。
    • 轻量级模型的激活函数选择。

(3) ReLU及其变体

  • ReLU

    \[\text{ReLU}(x) = \max(0, x) \]

    • 优势:计算高效,稀疏激活。
    • 劣势:输出非零中心化,可能导致“神经元死亡”。
    • LLM应用:部分早期模型( 如T5 )仍使用ReLU,但逐渐被GeLU取代。
  • Leaky ReLU

    \[\text{LeakyReLU}(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{otherwise} \end{cases} \quad (\alpha \text{为小斜率,如0.01}) \]

    • 用途:缓解ReLU的死亡问题,但在LLM中较少使用。

2. 门控机制激活函数

(1) GLU( Gated Linear Unit )

  • 公式

    \[\text{GLU}(x) = (W_1 x + b_1) \otimes \sigma(W_2 x + b_2) \]

    • 特点:通过门控信号动态调节特征重要性,增强模型表达能力。
    • 变体
      • SwiGLU:用Swish替代Sigmoid作为门控函数( PaLM、LLaMA-2使用 )。
      • GeGLU:用GeLU作为门控函数( T5变体 )。
  • 优势:显著提升模型容量,适合大规模参数下的特征交互。
  • 计算代价:参数量和计算量翻倍,需权衡性能与效率。

(2) GAU( Gated Attention Unit )

  • 特点:将门控机制融入注意力层,动态调节注意力权重( 如FLASH模型 )。
  • 公式

    \[\text{GAU}(Q, K, V) = \sigma(W_q Q + W_k K) \otimes (W_v V) \]


3. 动态/参数化激活函数

(1) PReLU( Parametric ReLU )

  • 公式

    \[\text{PReLU}(x) = \max(0, x) + \alpha \cdot \min(0, x) \quad (\alpha \text{可学习}) \]

    • 用途:自适应调整负区斜率,但LLM中较少使用。

(2) Dynamic Activation Functions

  • Mixture-of-Experts( MoE )激活
    • 不同专家( 子网络 )通过门控选择激活路径( 如Switch Transformer )。
    • 优势:动态激活不同参数子集,提升模型容量和稀疏性。

4. 选择激活函数的考量因素

  1. 训练稳定性
    • GeLU/Swish的平滑性比ReLU更适合深层LLM训练。
  2. 计算效率
    • ReLU > GeLU > GLU( 门控结构增加计算量 )。
  3. 模型容量
    • 门控机制( GLU/SwiGLU )显著提升模型表达能力,但需更多参数。
  4. 硬件优化
    • 激活函数的计算是否容易被融合( 如CuDNN的fused GeLU优化 )。

5. 常见LLM的激活函数实例

模型 激活函数 应用场景
GPT-3/4 GeLU FFN层
PaLM SwiGLU FFN层( 替代GeLU )
LLaMA-2 SwiGLU FFN层
BERT GeLU FFN层
T5 ReLU FFN层( 轻量化设计 )
FLASH GAU 注意力层门控

面试回答要点

  1. 强调GeLU和SwiGLU:解释它们在LLM中的主流地位及数学动机。
  2. 对比ReLU与GeLU:GeLU的平滑性如何缓解梯度问题。
  3. 门控机制的价值:GLU变体如何通过动态门控增强模型容量。
  4. 实际部署考量:激活函数对训练速度、显存占用和硬件支持的影响。

通过掌握这些核心概念,你可以清晰展示对LLM底层机制的理解!

posted @ 2025-04-14 21:05  Gold_stein  阅读(614)  评论(0)    收藏  举报