Skip to main content

ReLU

ReLU(Rectified Linear Unit,线性整流单元)是深度神经网络常用的逐元素激活函数:

ReLU(x)=max(0,x)\operatorname{ReLU}(x) = \max(0, x)

它在正半轴保持线性、负半轴输出零,计算简单并能产生稀疏激活。卷积网络和早期深度前馈网络广泛使用 ReLU;Transformer 的前馈层则更常见 GELU、SwiGLU 等平滑或门控变体。

基本信息

项目内容
早期脉络2000 年,M. W. Hahnloser 等人在神经科学启发的电路中讨论整流线性单元。
深度学习代表工作2010 年,Vinod Nair 与 Geoffrey E. Hinton 在受限玻尔兹曼机中研究 ReLU;2011 年,Xavier Glorot、Antoine Bordes、Yoshua Bengio 将整流激活用于深层稀疏网络。
人物与机构Nair、Hinton 的工作来自多伦多大学;Glorot、Bordes、Bengio 的工作来自蒙特利尔大学 DIRO。
领域神经网络、深度学习、计算机视觉。
相关变体Leaky ReLU、PReLU、ELU、GELU、SiLU/Swish、ReLU6、SwiGLU。

导数与训练行为

ddxReLU(x)={1,x>00,x<0\frac{d}{dx}\operatorname{ReLU}(x) = \begin{cases} 1, & x > 0 \\ 0, & x < 0 \end{cases}
  • x=0x = 0 处不可导;实现通常约定一个次梯度,常见取值为 00
  • 正半轴梯度恒为 11,相比 sigmoid 或 tanh 更不容易因饱和而产生梯度衰减。
  • 长期落在负半轴的单元输出与梯度都为零,可能形成 dying ReLU。
  • ReLU 不限制正值大小;初始化、学习率、归一化和残差结构仍影响激活尺度与训练稳定性。

常见变体

方法形式或机制使用动机
Leaky ReLU负半轴使用固定小斜率 αx\alpha x为负输入保留梯度,缓解 dying ReLU。
PReLU将负半轴斜率作为可学习参数让网络按通道或层学习负半轴形状。
ELU负半轴使用指数平滑函数允许负输出并平滑过渡。
GELUxΦ(x)x\Phi(x),按输入大小平滑门控常用于 Transformer。
SiLU / Swishxσ(x)x\sigma(x)平滑、自门控激活。
ReLU6将输出截断到 [0,6][0, 6]常见于面向低精度移动端的网络。

选择与实现检查

  • CNN 或简单 MLP 可从 ReLU 开始;若观察到大量零激活或训练不稳定,比较 Leaky ReLU、PReLU、ELU。
  • 不要把输出层激活与隐藏层激活混用:分类概率通常使用 softmax 或 sigmoid,回归输出依目标范围决定是否需要约束。
  • 记录激活函数、初始化、归一化层与学习率,它们共同决定训练行为。
  • 导出或量化模型时检查目标运行时是否支持所选激活及其参数语义。

参考