大模型基础--激活函数

举报
剑指南天 发表于 2026/05/01 18:35:03 2026/05/01
【摘要】 激活函数的存在是为神经网络引入了非线性,使得神经网络能够学习和表示复杂的非线性关系。

1.概述

激活函数的存在是为神经网络引入了非线性,使得神经网络能够学习和表示复杂的非线性关系。

2. 阶跃(Binary step)函数

致命缺陷:导数恒为0,阻断梯度传播的通路。

3. Sigmoid函数

Sigmoid能将任意输入映射到区间(0,1)。常用于二分类的输出层。但因其涉及指数运算,计算量相对较高。

Sigmoid的导数范围为(0,0.25),梯度较小,特别是在[-6,6]之外时,梯度接近于0,在逐层反向传播时,梯度会呈指数级衰减,造成梯度消失。

4. Tanh函数

Tanh(双曲正切)的导数范围为(0,1],梯度较小,特别是在[-3,3]之外时,梯度接近于0,在逐层反向传播时,梯度会呈指数级衰减,造成梯度消失。

5. ReLU函数

ReLU 在正区间保持恒定梯度,使梯度能够高效传播,大大缓解了早期网络中的梯度消失问题,因而在浅层或中等规模神经网络中表现优异。然而,ReLU 对负区间进行“硬截断”,会导致梯度完全为零,从而引发“死亡神经元”现象,即神经元在训练过程中一旦进入负区间可能永久失活,丢失信息;此外,其非线性也较弱。

6. GELU

GELU(Gaussian Error Linear Unit)是早期Transformer预训练模型(例如Bert、GPT-2/3)中曾广泛采用的平滑非线性激活函数

其中Φ(x)表示标准正态分布的累积分布函数。

随着x增大,Φ(x)趋向 1,输出趋近于x;随着x减小,Φ(x)趋向 0,输出则逐渐衰减为 0;对于接近 0 的输入,函数会在 0 与 之间进行平滑过渡。

相比 ReLU,GELU 在全域连续可导,能在深层网络中提供更稳定的梯度传播,且不会出现 “神经元死亡”问题。

7. SiLU和Swish

SiLU(Sigmoid Linear Unit)也是一种连续可导的激活函数,其基本思想是使用 sigmoid 函数对线性输入进行加权,从而得到一种柔和的非线性变换。

当x较大时,σ(x)趋近于1,输出接近x;当x较小时,接近于0,输入会被有效抑制;在接近0的区域,函数呈现平滑的过渡,而不是直接截断为零。

Swish 可视为 SiLU 的一般化形式。主流实现通常将β固定为 1。在工程实践中 Swish 与 SiLU 往往混用,不作严格区分。

8. GLU及其变体

与传统 ReLU、GELU 等单路激活不同,GLU 类结构采用 “主分支 × 门控分支” 的双分支设计,通过引入门控机制,使模型能够对信息流进行更加细致的筛选与调控。

门控结构的关键区别在于门控分支所采用的门控函数。不同的函数会导致门控行为、梯度特性和最终模型性能的差异,因此形成了多种 GLU 变体。常见的门控结构包括

GLU:使用 Sigmoid 作为门控函数;GEGLU:使用GELU作为门控函数;SwiGLU:使用SiLU作为门控函数

在众多变体中,SwiGLU在性能与训练稳定性方面表现最优,因此成为当前主流 LLM(LLaMA、Qwen、DeepSeek 等)的默认门控结构

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。