激活函数是神经网络的核心组件,它的发展史几乎就是一部深度学习如何一步步走向更“深”、更“好”的微观史。它的核心任务是为网络引入非线性,否则多层网络会塌缩成单一的线性变换。
下面以时间和技术流派为线索,梳理激活函数的演变历程。
第一阶段:启蒙与起源 (1940s - 1980s)
这个阶段的模型是生物神经元的简化数学表达,激活函数是简单的阈值或S型曲线。
阶跃函数
源于1943年的MP神经元模型,输出仅为0或1。它简洁但不可导,无法用于梯度学习,后来主要作为理论基石和感知机模型的判别函数。Sigmoid
因其S形平滑曲线,在20世纪末成为绝对主流。它将输入压缩到(0, 1)之间,可解释为概率或神经元的发放率,与生物神经元有相似之处。但它的致命伤是梯度消失:当输入很大或很小时,梯度近乎为零,导致深层网络无法训练。Tanh (双曲正切)
可看作Sigmoid的放大平移版,输出范围在(-1, 1),以0为中心。这通常能让后层的学习更容易些,但它本质上仍是饱和函数,无法根除梯度消失问题。
第二阶段:深度学习的救星与非饱和函数 (2010前后)
深度网络的训练瓶颈,催生了非饱和激活函数的革命。
ReLU (2010)
由Hinton等人提出,是深度学习史上最重要的突破之一。公式极其简单:f(x) = max(0, x)。优点:在正区间导数恒为1,完美解决了梯度消失;计算简单,收敛快;单侧抑制带来了稀疏性,类似生物神经元的特性。
缺点:“死亡ReLU”问题,即某些神经元可能在训练中永远失活,梯度永远为0。
Leaky ReLU / PReLU (2013/2015)
为修复“死亡ReLU”,在负区间引入一个微小斜率:f(x) = max(αx, x)。Leaky ReLU的α是固定小值,PReLU则将其作为可学习的参数,表达更灵活。ELU (2016)
结合了ReLU的优点和负区间的指数饱和:f(x) = x (if x>0) ; α(e^x-1) (if x≤0)。输出均值更接近0,对噪声更鲁棒,但指数运算稍增计算量。
第三阶段:自搜索与自门控的进化 (2017后)
此阶段的核心思想是让网络自己学习或调整激活函数的形态。
Swish (2017)
由谷歌大脑用神经架构搜索发现:f(x) = x * sigmoid(βx)。
Swish是平滑、非单调的。在负区间,它能允许小部分负梯度流过,而不是一刀切地置零,这在深层模型上常优于ReLU。β为常数或可学习。GELU (2016, 大流行于2018后)
Transformer模型的默认选择。它并非经验发现,而是结合了dropout和ReLU思想的概率化激活函数。公式为f(x) = x * Φ(x),即用标准正态分布的累积分布函数作为门控。
它可视为Swish的思想之源,其非单调性和平滑性对大型语言模型和视觉模型效果显著。
第四阶段:回归简单与专用化探索 (近期)
在极致追求效率和大模型时代,出现了有趣的回归和分化。
回归简单:SwiGLU 系列
这是LLaMA、PaLM等现代大模型的核心选择。它利用门控线性单元:SwiGLU(x) = Swish(xW) ⊙ (xV)。本质上是用Swish门控线性变换。这种机制被认为能提供更丰富的梯度和更好的信息筛选能力。特殊领域的专用函数
周期性激活 (如SIREN, 2020):用正弦函数
sin(x)作为激活,能很好地表示高频细节,专用于隐式神经表示。更平缓的函数 (如Mish, 2019):
x * tanh(softplus(x)),在一些视觉任务中平滑超越Swish和ReLU。
发展脉络总结
整个历史由几条核心主线推动:
解决梯度消失:从Sigmoid/Tanh的饱和区,到ReLU的正区恒1梯度,是根本性飞跃。
修复神经元“死亡”:Leaky ReLU、ELU等都在试图让负区间能传递信息。
追求平滑与非单调性:Swish、GELU接棒,证明了在负区间保留一个微小的非零响应,能让网络学习到更复杂的模式。
架构即激活:SwiGLU的兴起表明,激活函数正与网络架构(门控机制)深度融合。
专用化与效率:针对特定任务设计,并在大模型时代兼顾计算效率。
一张表看清关键发展:
| 激活函数 | 公式核心 | 主要贡献 | 主要问题 |
|---|---|---|---|
| Sigmoid | σ(x) = 1/(1+e^{-x}) | 早期非线性,概率化输出 | 梯度消失,非零中心 |
| Tanh | tanh(x) | 零中心化输出 | 梯度消失 |
| ReLU | max(0, x) | 解决梯度消失,计算简单 | 神经元死亡 |
| Leaky ReLU | max(0.01x, x) | 缓解神经元死亡 | 负区斜率固定 |
| ELU | {x if x>0; α(e^x-1) if x≤0} | 零均值输出,鲁棒 | 计算稍复杂 |
| Swish | x · σ(βx) | 平滑非单调,可自搜索 | 计算相对ReLU复杂 |
| GELU | x · Φ(x) | 概率化解释,Transformer标配 | 计算相对复杂 |
| SwiGLU | Swish(xW) ⊙ (xV) | 现代LLM核心,门控机制 | 参数量增加 |
未来,激活函数很可能进一步与网络结构、硬件特性、甚至自适应学习机制紧密结合,向着动态化和专用化的方向演进。
从A到B (启蒙):从生物启发到Sigmoid/Tanh这类平滑饱和函数。
从B到C (革命):ReLU的出现,以简单粗暴的方式解决了深层网络的梯度问题,是关键性飞跃。
从C到D (进化):ReLU的“死亡”问题引出了各种变体。进一步,Swish/GELU这类平滑非单调函数被证明效果更优。
从D到E (融合):激活函数与网络架构深度融合,SwiGLU这类门控机制成为现代大模型的核心。
从E到F (展望):未来将向动态、自适应和专用化方向演进。