跳到主要内容

第 10 章证明了「弯必须有」,这一章回答「弯该长什么样」。答案是被一场事故逼出来的:几十年里,深层网络一深就训不动,而病根就在这道弯的导数上。

激活函数与门控单元

1. 这一章讲什么

三件事: 深层网络训不动的两个梯度病(消失和爆炸)是怎么从这道弯的导数里长出来的; 从挤压型到折线型再到自门控,激活函数的三代各自改了哪一件事; 以及一类不再是「激活函数」的东西——自带参数的门控单元,它是现代大模型前馈层的真身。

它在全书链条里的位置: 这是「训得动」三部曲的第一章(12、17、18)。 第 11 章保证了「梯度算得对」,这一章回答「传回来的梯度还剩多少」—— 第 11 章的递推公式里那个「乘激活导数」,就是这一章全部故事的起点。

需要第 10、11 章。

2. 顶层全景

第 11 章的递推:δ⁽ˡ⁾ = f′(z⁽ˡ⁾) ⊙ (W⁽ˡ⁺¹⁾)ᵀδ⁽ˡ⁺¹⁾

▼ 每回传一层,乘一次这个导数
f′ 的取值决定了误差能传多远:

Sigmoid 型(Logistic/Tanh) f′ ≤ 0.25(或 ≤1),饱和区 ≈ 0
──▶ 几十层连乘 ≈ 0 梯度消失
权重范数 > 1 误差连乘指数放大
──▶ 更新溢出 梯度爆炸
ReLU x>0 时 f′ = 1 恒成立
──▶ 传多远都不衰减,但 x<0 时 f′ = 0,神经元可能「死亡」
Swish/GELU 用软开关乘自己:平滑、非单调
GLU 两组线性变换,一组当值一组当门
──▶ 不是激活函数,是现代前馈层的替代品

一句话链条: 误差每传一层乘一次激活导数 → 导数小于 1 就连乘消失、大于 1 就连乘爆炸 → 换一条「正半轴导数恒为 1」的折线 → 折线的硬边界又有新毛病 → 用软开关把边界熨平 → 再把开关做成可学习的门。

3. 先看现象:深层网络训不动

先看一个几十年的悬案。 80 年代末,前馈网络加通用近似定理就都齐了, 可实际能训的网络始终只有两三层——一加深,训练就瘫痪。

第 11 章的递推公式里藏着答案。误差每回传一层,都要乘一次 本层激活函数的导数1。而那个年代默认的激活函数是 Sigmoid 型, 看它们的导数值域2:

Logistic:σ′(x) = σ(x)(1−σ(x)) ∈ [0, 0.25] 最大才 0.25
Tanh: tanh′(x) = 1 − tanh²(x) ∈ [0, 1] 两端趋近 0

更要命的是饱和:输入绝对值一大,函数进入平坦区,导数直接趋近 0—— 书里给了专门定义:某一端导数趋于 0 叫那一端饱和,两端都饱和的 Logistic/Tanh 就是两端饱和函数3

算一笔账就够了: 哪怕每层都取到 Logistic 导数的最大值 0.25, 传 10 层就是 0.25¹⁰ ≈ 百万分之一;落在饱和区,直接是 0。 误差还没传到前面的层,已经衰减没了——前面的参数收不到任何更新信号, 这就是梯度消失问题4。书里称其为「深层网络训练的核心困难之一」, 并给了四条缓解路线:换导数大的激活函数、合理的初始化、规范化、残差连接4—— 第一条就是本章后半,后三条分别在第 18 和第 14 章。

(顺带一记:训练难还有第二个原因——损失地形是非凸的。 书里用一个 1-1-1 的小网络画出损失曲面,平方损失和交叉熵损失下都不是凸的5。 非凸交给第 17 章,本章管梯度本身。)

4. 另一头:梯度也会炸

消失不是唯一的病,同一个连乘还有反向的失效模式。

递推公式里除了激活导数,还要乘权重矩阵 W。 当权重矩阵的范数大于 1 时,误差信号在回传中被指数级放大—— 参数更新跟着暴涨,甚至直接溢出成 NaN,这叫梯度爆炸6

书里给的止血办法很直接:梯度截断—— 梯度范数超过预设阈值时,等比例把它缩回去6。 (它的细节和自适应学习率一起,在第 17 章。)

注意消失和爆炸是同一条连乘的两端: 连乘的因子小于 1 就消失、大于 1 就爆炸。 激活函数管的是因子里「激活导数」那一半, 权重那一半(初始化、规范化)是第 18 章的事。

5. 挤压型的两个老将

把两个 Sigmoid 型函数摆在一起,是因为它们只差一件事,而这件事后面天天见。

Logistic 函数把实数挤到 (0, 1),两端饱和、近似软性开关7—— 它能当「门」用这一点,第 15 章的 LSTM 会大用特用。 Tanh 是放大并平移的 Logistic:tanh(x) = 2σ(2x) − 1,值域 (−1, 1)8

差别只在一件事:输出是不是零中心的。8

Logistic 输出恒在 (0, 1) 均值恒正
Tanh 输出在 (−1, 1) 零中心

为什么零中心要紧? 书里给的机制是: 非零中心化的输出,会让后一层神经元的输入发生偏置偏移—— 这一层所有输出都带着一个正的平均值,下一层收到的净输入整体偏一边, 梯度下降的收敛随之变慢9。(直觉:下一层所有的输入分量同号, 各权重只好一起往同方向挪,更新路径被迫绕路。)

所以两员老将里的胜出者是 Tanh——但它们的导数都逃不过第 3 节那个连乘。 零中心解决的是「收敛快慢」,解决不了「传不远」。

6. 换一条折线:ReLU

ReLU(修正线性单元)简单到不好意思:负的砍成 0,正的原样通过10。 f(x) = max(0, x),一条折线。

它在三个方向同时占了便宜11:

计算 只有加、乘、比较——没有指数,便宜到几乎免费

稀疏 任一时刻约一半神经元输出 0
(书里的对照:人脑同一时刻约 1%~4% 的神经元活跃,
Sigmoid 型会让网络非稀疏,ReLU 自带稀疏性)

优化 x > 0 时导数恒为 1——第 3 节那个连乘,在它身上不衰减
左饱和但右不饱和,「在一定程度上缓解了梯度消失」

代价也写得清楚,两条12:

  1. 输出不是零中心的——第 5 节的偏置偏移,它一样有;
  2. 神经元会「死亡」:某次不恰当的更新之后, 一个 ReLU 神经元在所有训练数据上的净输入都落到负半轴, 那它的输出恒为 0、自身参数的梯度也恒为 0—— 从此再也活不过来,这叫死亡 ReLU 问题12

第二条值得展开一句,因为它是「硬边界」的结构性后果: 折线左半边是平的,一旦净输入掉进左半边, 梯度这条路就断了——不是学得慢,是永远收不到信号。

7. 给死掉的一条活路

死亡 ReLU 的病根是「负半轴梯度为 0」,药也都开在同一处:

变体负半轴怎么处理顺带解决了什么
Leaky ReLU留一条小缝:f(x) = max(0,x) + γ·min(0,x),γ 取 0.01 之类非激活区也有梯度可流13
PReLU缝的斜率 γ_i 改成可学习的参数,每个神经元各学各的缝多宽由数据定14
ELU换成指数曲线 γ(eˣ−1),输出均值被拉回 0 附近近似的零中心化15
Softplus整条熨平:log(1+eˣ),导数正好是 Logistic 函数处处光滑,但丢了稀疏性16

读这张表的方式:没有谁淘汰谁,是在「负半轴怎么办」这一条线上做不同的取舍—— 留缝(Leaky)、学缝(PReLU)、熨平(ELU/Softplus)。 注意 ELU 那一列:它顺手把 ReLU 丢掉的零中心化也补回来了, 这说明两条毛病(死亡、非零中心)本来就是同一处设计空间里的两个旋钮。

8. 平滑的自门控:Swish 与 GELU

第三代换了一个思路:不在「弯的形状」上改,在「谁来开关」上改。

Swish:f(x) = x·σ(βx)17。读法:用一个 0 到 1 之间的软开关 σ(βx), 去乘 x 自己——书里把这叫自门控:开关接近 1,输出近似 x 本身; 接近 0,输出近似 017。β = 1 时它也叫 SiLU; β → ∞ 时软开关退化成 0-1 硬开关,Swish 就近似成 ReLU18—— 所以 Swish 是「线性函数和 ReLU 之间的插值(两者的过渡混合),程度由 β 控制」18。 它比 ReLU 平滑,而且在负半轴有一点非单调的「回弯」,不是简单砍死。

GELU(高斯误差线性单元):f(x) = x·Φ(x)19, Φ 是标准正态分布的累积分布函数——同样是一条 S 型的软开关, 只是开关从 Logistic 换成了高斯 CDF。 书里特意指出:用 Logistic 近似高斯 CDF 时,GELU 和某个 β 的 Swish 在数值上很接近,但两者的设计动机不同20

这两个函数是现在大模型里的常客—— 但它们在书里真正的意义是过渡:「拿一个可微的软开关去控制信息流」这个想法, 下一步就是把开关本身也做成可学习的。

9. 不再逐元素:门控线性单元

到这里为止,所有激活函数都是「一个数进、一个数出」,逐元素作用。 GLU(门控线性单元)打破了这个前提。

它的做法:对输入做两组不同的线性变换, 一组产出「值」,另一组产出「门」,再逐元素相乘21:

h = φ(W_g·x + b_g) ⊙ (W_v·x + b_v)
↑ ↑
门分支:φ 把输出压到 (0,1),控制哪些信息通过
值分支:候选表示,负责内容

书里把它的身份说得非常清楚:GLU 不是严格意义上的激活函数, 而是自带可学习参数的复合模块——从功能上看, 它更接近传统前馈层的替代品,而不是放在前馈层里的某个激活函数22

门的 φ 可以换:换成 Swish 就是 SwiGLU,换成 GELU 就是 GeGLU23—— 这两个变体,正是今天 Transformer 大模型前馈子层里的默认选择23。 第 12 章开头问的「这道弯该长什么样」,在 2026 年的答案就是它—— 它在整个架构里的落点,第 22 章讲现代前馈层时兑现。

同类的还有 Maxout:对每个输入算 K 组线性打分、取最大值—— 它同样是带参数的复合模块,能分段线性地逼近任意凸函数24这一节要带走的一句话:激活函数的历史, 是从「固定形状的弯」走向「可学习的门」。

10. 主走查:三个值,五种弯,十层之后

输入: 净输入 z 取 −2、0、2 三个值。各函数值按定义计算(β = 1)。

函数f(−2)f′(−2)f(0)f′(0)f(2)f′(2)
Logistic0.1190.1050.50.250.8810.105
Tanh−0.9640.071010.9640.071
ReLU0000(左)21
Swish−0.238−0.09100.51.7621.091
GELU−0.046−0.08500.51.9551.085

先看函数值那一半(f 列): z = −2 时,ReLU 直接输出 0, Swish 留了 −0.238 的小尾巴,GELU 留了更小的 −0.046—— 「负半轴砍多狠」一目了然。

再看导数那一半(f′ 列),它是第 3 节连乘里的因子。 假设误差要经过 10 层同样的激活回传,各剩多少:

Logistic 最好情况(z 全在 0 附近):0.25¹⁰ ≈ 9.5 × 10⁻⁷ 百万分之一
落在 z = ±2 处: 0.105¹⁰ ≈ 1.6 × 10⁻¹⁰ 基本归零
Tanh z = ±2 处: 0.071¹⁰ ≈ 3 × 10⁻¹² 归零
ReLU 净输入全程为正: 1¹⁰ = 1 一个不衰减
只要有一层落到负半轴: × 0 这条路断掉

这张表把全章压缩完了: Sigmoid 型在哪都衰减,只剩衰减速率的差别; ReLU 在正半轴完全不衰减,代价是负半轴整条路断掉; Swish/GELU 的导数能略大于 1,平滑又没有硬断点—— 「训得动」这件事,很大程度上就是这张表里几个数字的事。

11. 作者的判断与证据

书里给了机制级解释的: 梯度消失的归因(Sigmoid 导数值域 + 饱和 + 连乘)24; 梯度爆炸的归因(权重范数大于 1 时的指数放大)6; 偏置偏移的链路(非零中心输出 → 后一层输入偏移 → 收敛变慢)9; 死亡 ReLU 的成因(负半轴梯度恒 0)12

书里给了文献出处的: ReLU [Nair et al., 2010]、Leaky ReLU [Maas et al., 2013]、 PReLU [He et al., 2015]、ELU [Clevert et al., 2016]、 Swish [Ramachandran et al., 2018]、GELU [Hendrycks et al., 2016]、 GLU [Dauphin et al., 2017; Shazeer, 2020]——每个函数都有原始论文。

书里给了好激活函数的三条标准25:连续可导(允许少数点例外); 函数和导数都尽量简单;导数值域在合适区间、不能太大也不能太小。 本章所有函数都可以拿这三条去过一遍——它们各自的取舍,就是对这三条的不同回答。

书里坦白的: GLU 一节主动声明「将其与激活函数放在一起介绍, 主要是因为它同样为网络引入非线性」22——分类学上的含糊是作者自己点破的; 梯度消失一节的措辞是「在一定程度上缓解」4,没有说「解决」。

12. 边界与局限

「哪个激活函数最好」没有定理。 书里给的是机制解释和经验选择, 具体模型里的取舍「会根据训练稳定性、计算代价和经验效果选择不同形式」23—— 第 07 章的没有免费午餐定理,在这里同样适用。

死亡 ReLU 的实际发生率与初始化、学习率强相关, 书里给了现象和变体,发生率的定量讨论不在这本书的范围。

偏置偏移只给了定性机制,它到底拖慢多少收敛, 要靠第 18 章的规范化手段在实践里对冲。

Maxout 之后的花样(SNIS、Mish 等)没有收录, 书里收的是「现代模型里真正在用的」那一小撮——这是教材的取舍,不是疏漏。

13. 可带走的

  1. 误差每回传一层,乘一次激活导数——全章的故事都在这一个乘法里;
  2. Sigmoid 型导数 ≤ 0.25,几十层连乘必然消失;饱和区导数直接是 0;
  3. 梯度爆炸是同一个连乘的另一端(权重范数 > 1),止血靠梯度截断;
  4. Tanh 胜过 Logistic 的唯一理由:零中心——非零中心会让下一层偏置偏移;
  5. ReLU = 正半轴导数恒为 1 的折线,便宜、稀疏、缓解消失;
  6. 死亡 ReLU 是硬边界的结构病:掉进负半轴,梯度之路永久断掉;
  7. 变体全在「负半轴怎么办」上取舍:留缝、学缝、熨平;
  8. Swish/GELU = 用软开关乘自己,β → ∞ 时 Swish 退化成 ReLU;
  9. GLU 不是激活函数,是前馈层的替代品:一组当值、一组当门;
  10. 激活函数的历史:固定的弯 → 软开关 → 可学习的门——SwiGLU 是今天的答案。

14. 原文地图

主题原书章原文位置
训练难的两点原因第4章 前馈神经网络text/05-ch04.txt:763(搜「非凸的」) · text/05-ch04.txt:783(搜「都是关于参数的非凸函数」)
梯度消失第4章 前馈神经网络text/05-ch04.txt:799(搜「∈ [0, 0.25]」) · text/05-ch04.txt:803(搜「值域都小于或等于 1」) · text/05-ch04.txt:823(搜「这就是所谓的梯度消失问题」)
梯度爆炸与截断第4章 前馈神经网络text/05-ch04.txt:833(搜「指数级增长」)
饱和的定义第4章 前馈神经网络text/05-ch04.txt:867(搜「两端饱和」)
Logistic 与软性门第4章 前馈神经网络text/05-ch04.txt:881(搜「挤压」) · text/05-ch04.txt:890(搜「软性门」)
Tanh 与零中心化第4章 前馈神经网络text/05-ch04.txt:898(搜「放大并平移的 Logistic 函数」) · text/05-ch04.txt:903(搜「零中心化」) · text/05-ch04.txt:905(搜「偏置偏移」)
ReLU第4章 前馈神经网络text/05-ch04.txt:922(搜「修正线性单元」) · text/05-ch04.txt:937(搜「1% ∼ 4%」) · text/05-ch04.txt:941(搜「导数为 1」)
死亡 ReLU第4章 前馈神经网络text/05-ch04.txt:952(搜「死亡 ReLU 问题」)
Leaky ReLU 与 PReLU第4章 前馈神经网络text/05-ch04.txt:960(搜「带泄露的 ReLU」) · text/05-ch04.txt:979(搜「带参数的 ReLU」)
ELU 与 Softplus第4章 前馈神经网络text/05-ch04.txt:997(搜「指数线性单元」) · text/05-ch04.txt:1012(搜「平滑版本」)
Swish 与自门控第4章 前馈神经网络text/05-ch04.txt:1033(搜「自门控」) · text/05-ch04.txt:1039(搜「软性的门控机制」) · text/05-ch04.txt:1049(搜「其程度由参数 𝛽 控制」)
GELU第4章 前馈神经网络text/05-ch04.txt:1064(搜「高斯误差线性单元」) · text/05-ch04.txt:1078(搜「设计动机不同」)
GLU 与变体第4章 前馈神经网络text/05-ch04.txt:1106(搜「门控线性单元」) · text/05-ch04.txt:1111(搜「而不是放在 FFN 层内部的某个激活函数」) · text/05-ch04.txt:1138(搜「常见的门控变体」)
Maxout第4章 前馈神经网络text/05-ch04.txt:1164(搜「分段线性近似」)
好激活函数的三条标准第4章 前馈神经网络text/05-ch04.txt:861(搜「值域要在一个合适的区间内」)

Footnotes

  1. 出处:「第4章 前馈神经网络」第 794 段(text/05-ch04.txt:794,搜「𝛿 (𝑙) = 𝑓𝑙′ (𝒛(𝑙) ) ⊙」)。 原文:「在神经网络中误差反向传播的迭代公式为 δ⁽ˡ⁾ = f′_l(z⁽ˡ⁾) ⊙ (W⁽ˡ⁺¹⁾)ᵀδ⁽ˡ⁺¹⁾。 误差从输出层反向传播时,在每一层都要乘以该层的激活函数的导数。」

  2. 出处:「第4章 前馈神经网络」第 799 段(text/05-ch04.txt:799,搜「∈ [0, 0.25]」) 与第 803 段(text/05-ch04.txt:803,搜「值域都小于或等于 1」)。 原文:「Sigmoid 型函数的导数的值域都小于或等于 1。」 2

  3. 出处:「第4章 前馈神经网络」第 867 段(text/05-ch04.txt:867,搜「两端饱和」)。 数学小知识:「对于函数 f(x),若 x → −∞ 时,其导数 f′(x) → 0,则称其为左饱和。 若 x → +∞ 时,其导数 f′(x) → 0,则称其为右饱和。当同时满足左、右饱和时, 就称为两端饱和。」

  4. 出处:「第4章 前馈神经网络」第 823 段(text/05-ch04.txt:823,搜「这就是所谓的梯度消失问题」)。 原文:「由于 Sigmoid 型函数的饱和性,饱和区的导数更是接近于 0。 这样,误差经过每一层传递都会不断衰减。当网络层数很深时,梯度就会不停衰减, 甚至消失,使得整个网络很难训练。这就是所谓的梯度消失问题…… 一种简单有效的方式是使用导数相对较大的激活函数,比如 ReLU 等; 此外,合理的参数初始化、规范化方法以及残差连接等技术也都能够显著缓解这一问题。」 2 3 4

  5. 出处:「第4章 前馈神经网络」第 783 段(text/05-ch04.txt:783,搜「都是关于参数的非凸函数」)。 原文以 1-1-1 网络 ŷ = σ(w₂σ(w₁x)) 为例:「可以看出两种损失函数都是关于参数的非凸函数。」

  6. 出处:「第4章 前馈神经网络」第 833 段(text/05-ch04.txt:833,搜「指数级增长」)。 原文:「当权重矩阵的范数大于 1 时,误差信号在反向传播过程中会指数级增长, 导致参数更新过大甚至溢出(NaN)。常用的缓解方法是梯度截断, 即当梯度范数超过预设阈值时,将梯度等比例缩小。」 2 3

  7. 出处:「第4章 前馈神经网络」第 881 段(text/05-ch04.txt:881,搜「挤压」) 与第 890 段(text/05-ch04.txt:890,搜「软性门」)。 原文:「其也可以看作一个软性门(Soft Gate),用来控制其他神经元输出信息的数量。」

  8. 出处:「第4章 前馈神经网络」第 898 段(text/05-ch04.txt:898,搜「放大并平移的 Logistic 函数」) 与第 903 段(text/05-ch04.txt:903,搜「零中心化」)。 tanh(x) = 2σ(2x) − 1 见公式(4.72),同页。 2

  9. 出处:「第4章 前馈神经网络」第 905 段(text/05-ch04.txt:905,搜「偏置偏移」)。 原文:「Tanh 函数的输出是零中心化的,而 Logistic 函数的输出恒大于 0。 非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移, 并进一步使得梯度下降的收敛速度变慢。」 2

  10. 出处:「第4章 前馈神经网络」第 922 段(text/05-ch04.txt:922,搜「修正线性单元」)。 原文:「ReLU(修正线性单元),也叫 Rectifier 函数,是深度神经网络中常用的激活函数。 ReLU 实际上是一个斜坡函数。」

  11. 出处:「第4章 前馈神经网络」第 934 段(text/05-ch04.txt:934,搜「只需要进行加、乘和比较」)、 第 937 段(text/05-ch04.txt:937,搜「1% ∼ 4%」)与第 941 段(text/05-ch04.txt:941,搜「导数为 1」)。 原文:「人脑中在同一时刻大概只有 1% ∼ 4% 的神经元处于活跃状态…… ReLU 却具有很好的稀疏性,大约 50% 的神经元会处于激活状态。 在优化方面……ReLU 函数为左饱和函数,且在 x > 0 时导数为 1, 在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。」

  12. 出处:「第4章 前馈神经网络」第 946 段(text/05-ch04.txt:946,搜「比较容易『死亡』」) 与第 952 段(text/05-ch04.txt:952,搜「死亡 ReLU 问题」)。 原文:「ReLU 神经元在训练时比较容易『死亡』。在训练时,如果参数在一次不恰当的更新后, 第一个隐藏层中的某个 ReLU 神经元在所有的训练数据上都不能被激活, 那么只要后续数据仍落在非激活区,这个神经元自身参数的梯度会持续为 0, 在后续训练过程中很难再恢复激活。这种现象称为死亡 ReLU 问题。」 2 3

  13. 出处:「第4章 前馈神经网络」第 960 段(text/05-ch04.txt:960,搜「带泄露的 ReLU」)。 原文:「带泄露的 ReLU 在输入 x < 0 时,保持一个很小的梯度 γ。 这样当神经元非激活时也能有一个非零的梯度可以更新参数,降低长期不能被激活的风险。」

  14. 出处:「第4章 前馈神经网络」第 979 段(text/05-ch04.txt:979,搜「带参数的 ReLU」)。 原文:「带参数的 ReLU 引入一个可学习的参数,不同神经元可以有不同的参数。」

  15. 出处:「第4章 前馈神经网络」第 997 段(text/05-ch04.txt:997,搜「指数线性单元」)。 原文:「ELU(指数线性单元)是一个近似的零中心化的非线性函数。」

  16. 出处:「第4章 前馈神经网络」第 1012 段(text/05-ch04.txt:1012,搜「平滑版本」)。 原文:「Softplus 函数可以看作 Rectifier 函数的平滑版本…… Softplus 函数的导数刚好是 Logistic 函数。Softplus 函数虽然也具有单侧抑制、 宽兴奋边界的特性,却没有稀疏激活性。」

  17. 出处:「第4章 前馈神经网络」第 1033 段(text/05-ch04.txt:1033,搜「自门控」) 与第 1039 段(text/05-ch04.txt:1039,搜「软性的门控机制」)。 原文:「Swish 函数是一种自门控激活函数,定义为 swish(x) = xσ(βx)…… σ(⋅) ∈ (0, 1) 可以看作一种软性的门控机制。当 σ(βx) 接近于 1 时, 门处于『开』状态,激活函数的输出近似于 x 本身;当 σ(βx) 接近于 0 时, 门的状态为『关』,激活函数的输出近似于 0。」 2

  18. 出处:「第4章 前馈神经网络」第 1045 段(text/05-ch04.txt:1045,搜「也称为SiLU」) 与第 1049 段(text/05-ch04.txt:1049,搜「其程度由参数 𝛽 控制」)。 原文:「当 β → +∞ 时,σ(βx) 趋向于离散的 0-1 函数,Swish 函数近似为 ReLU 函数。 因此,Swish 函数可以看作线性函数和 ReLU 函数之间的非线性插值函数, 其程度由参数 β 控制。」 2

  19. 出处:「第4章 前馈神经网络」第 1064 段(text/05-ch04.txt:1064,搜「高斯误差线性单元」)。 GELU(x) = xΦ(x) 见公式(4.84),同页。

  20. 出处:「第4章 前馈神经网络」第 1078 段(text/05-ch04.txt:1078,搜「设计动机不同」)。 原文:「当用 Logistic 函数近似高斯 CDF 时,GELU 的形式在数值上与 特定参数的 Swish 函数接近,但二者的设计动机不同。」

  21. 出处:「第4章 前馈神经网络」第 1106 段(text/05-ch04.txt:1106,搜「门控线性单元」) 与第 1120 段(text/05-ch04.txt:1120,搜「控制哪些信息可以通过」)。 原文:「先对输入向量做两组不同的线性变换,再用其中一组去『门控』另一组的输出, 即门控线性单元(GLU)……这里 W_v x + b_v 产生候选表示, 而 φ(W_g x + b_g) 通常取值在 (0, 1) 之间,用来控制哪些信息可以通过。」

  22. 出处:「第4章 前馈神经网络」第 1111 段(text/05-ch04.txt:1111,搜「而不是放在 FFN 层内部的某个激活函数」)。 原文:「需要说明的是,GLU 并不是严格意义上的激活函数,而是一个包含激活函数的 复合模块——它由线性变换、逐元素非线性激活和门控乘法共同组成,自身带有可学习参数…… 从功能上看,GLU 更接近于传统 FFN 层的替代品,而不是放在 FFN 层内部的某个激活函数。」 2

  23. 出处:「第4章 前馈神经网络」第 1138 段(text/05-ch04.txt:1138,搜「常见的门控变体」)。 原文:「其中 SwiGLU 和 GeGLU 都已成为 Transformer 前馈子层中常见的门控变体; 具体模型会根据训练稳定性、计算代价和经验效果选择不同形式。」 2 3

  24. 出处:「第4章 前馈神经网络」第 1164 段(text/05-ch04.txt:1164,搜「分段线性近似」)。 原文:「Maxout 单元可以看作任意凸函数的分段线性近似,并且在有限的点上是不可微的。」

  25. 出处:「第4章 前馈神经网络」第 861 段(text/05-ch04.txt:861,搜「值域要在一个合适的区间内」)。 原文:「激活函数通常希望具备以下几点性质:(1)连续并可导(允许少数点上不可导)的 非线性函数……(2)激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。 (3)激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小, 否则会影响训练的效率和稳定性。」