Activation Function(激活函数)

激活函数就是神经元的开关,决定这个神经元要不要'说话',以及说多大声

亦作、亦称:激活函数 · nonlinearity · 非线性激活 · 激活

激活函数为神经网络引入非线性,是深度学习能够拟合复杂函数的根本原因。从 1943 年的阶跃函数到如今的 GELU、SiLU,激活函数的演进深刻影响了整个深度学习的发展历程。

概述

激活函数(Activation Function)是神经网络中不可或缺的非线性变换单元。

  • 核心作用:在线性加权求和之后引入非线性,使多层网络能表达复杂映射关系。
  • 数学形式:对于神经元输入 z = Wx + b,输出为 a = f(z),其中 f 即激活函数。
  • 若无激活函数:多层堆叠仍退化为单层线性模型,无论深度多大,表达能力不变。
  • 位置:通常置于每一隐藏层的线性变换之后,输出层视任务而定。

主要类型与变体

激活函数经历了从平滑饱和函数到分段线性函数再到自适应函数的演变。

  • Sigmoid:输出 (0,1),适合二分类输出层;深层使用存在梯度消失问题。
  • Tanh:输出 (-1,1),零中心化,比 Sigmoid 收敛略快,仍有梯度消失。
  • ReLU(Rectified Linear Unit):f(x) = max(0, x),计算高效、缓解梯度消失,但存在「死亡神经元」问题(Dead ReLU)。
  • Leaky ReLU / PReLU:对负值保留小斜率(如 0.01x),解决死亡神经元。
  • GELU(Gaussian Error Linear Unit):Transformer 架构(BERT、GPT)中的默认选择,平滑且表现优异。
  • SiLU / Swish:f(x) = x·σ(x),LLM 和扩散模型常用,性能与 GELU 相当。
  • Softmax:多分类输出层专用,将向量归一化为概率分布。

工作原理

理解激活函数需关注其对梯度和信号传播的影响。

  • 前向传播:神经元对输入加权求和后,激活函数决定输出值的范围与形态。
  • 反向传播:激活函数需可微(或分段可微),梯度通过链式法则逐层传递。
  • 饱和区问题:Sigmoid/Tanh 在输入极大或极小时导数趋近 0,导致梯度消失,深层网络难以训练。
  • ReLU 的稀疏性:负值输出为 0,使网络产生稀疏激活,提升计算效率和泛化能力。
  • 通用近似定理:具有非线性激活函数的单隐层网络,理论上可逼近任意连续函数(Universal Approximation Theorem)。

应用场景

不同任务和架构对激活函数有不同需求。

  • 图像分类(CNN):隐藏层使用 ReLU 或 Leaky ReLU,输出层多类分类用 Softmax。
  • 自然语言处理(Transformer/LLM):FFN 子层普遍采用 GELU 或 SiLU,如 BERT、GPT 系列、LLaMA。
  • 生成模型(扩散模型/GAN):生成器常用 SiLU/Swish,判别器多用 Leaky ReLU。
  • 输出层设计:二分类 → Sigmoid;多分类 → Softmax;回归 → 线性或无激活。
  • 强化学习策略网络:隐藏层 ReLU 或 Tanh,输出层视动作空间类型决定。

局限与常见误区

激活函数的选择存在若干容易踩坑的地方。

  • 误区:ReLU 万能:ReLU 在负值区输出恒为 0,学习率过大时大量神经元永久失活(Dead Neuron),应考虑 Leaky ReLU 或 GELU。
  • 误区:隐藏层用 Sigmoid:Sigmoid 已不推荐在隐藏层使用,梯度消失严重,应改用 ReLU 系列。
  • 输出层误用:回归任务误加 Sigmoid 会将输出限制在 (0,1),导致预测范围错误。
  • 计算开销差异:GELU/Swish 涉及指数运算,比 ReLU 慢;在边缘推理场景需权衡精度与速度。
  • Softmax 数值不稳定:直接计算 exp 可能溢出,需使用数值稳定版本(减去最大值后再计算)。

发展脉络

激活函数的演进与深度学习的突破密切相关。

  • 1943 年:McCulloch & Pitts 提出 M-P 神经元,使用阶跃函数(Heaviside step function)作为激活。
  • 1986 年:Rumelhart、Hinton、Williams 推广反向传播算法,Sigmoid 成为主流激活函数。
  • 1990s:Tanh 因零中心化特性被广泛使用,尤其在 RNN 中。
  • 2010 年:Nair & Hinton 在 ICML 发表论文推广 ReLU,显著加速深层网络训练。
  • 2012 年:AlexNet 大规模采用 ReLU,赢得 ImageNet 竞赛,开启深度学习时代。
  • 2016 年:Clevert et al. 提出 ELU;Maas et al. 提出 Leaky ReLU,解决死亡神经元。
  • 2018 年GELU 随 BERT 广泛普及,成为 Transformer 系列首选激活函数。
  • 2020 年至今SiLU/Swish 在 LLaMA、扩散模型等大模型中广泛应用;研究者持续探索自适应激活函数。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「激活函数就是神经元的开关,决定这个神经元要不要'说话',以及说多大声」
  • 「没有激活函数,不管叠多少层网络,效果都和一层线性回归一样,白费力气」
  • 「ReLU 之所以流行,就是因为它算起来超级快,还能缓解深层网络梯度消失的老毛病」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

延伸阅读

从知识库精选 3 篇文章,帮助深入理解该术语。

  1. 1

    神经网络基础:前向传播、反向传播与激活函数

    深度学习的基石。从感知机到多层神经网络,详解前向传播、反向传播的数学推导,常见激活函数对比(Sigmoid/ReLU/GELU/SiLU),以及从零用 NumPy 实现一个神经网络。

  2. 2

    神经网络基础:从感知机到多层网络

    理解神经元、激活函数、反向传播和梯度消失问题

  3. 3

    反向传播:神经网络如何学习

    深入理解反向传播算法的数学原理、计算图实现和训练中的关键问题

外部参考

维基百科:查看「Activation Function」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。