想象一下,你正在构建一台由成千上万个微小开关(神经元)组成的庞大而复杂的机器,这些开关能够学习识别模式。多年来,工程师们一直在通过试错法调整这些机器,添加那些看似有效却未完全理解其原理的功能。
这篇题为《是缺陷还是特性 2》("Bug or Feature2")的论文,深入探究了这些机器在学习过程中隐藏的一个怪癖。作者们在机器中发现了一个“幽灵”:内部设置(权重)倾向于向负方向缓慢漂移,导致许多开关完全关闭。
以下是他们发现的要点,使用简单的类比进行解析:
1. “负向漂移”(拔河赛)
想象机器开始时所有设置都完美地平衡在零值周围。作者发现,由于机器计算错误的方式(使用称为“损失函数”的标准数学公式)以及处理信息的方式(使用如 ReLU 这样的“激活函数”),存在一种微妙而看不见的拔河较量。
- 机制:在训练的最初几秒内,数学计算会将设置略微推向负侧。
- 结果:一旦设置变为负值,它就会保持负值。这就像球滚下山坡;一旦开始滚动,它就会一直滚下去,直到撞墙。即使机器接收的是随机、无意义的数据,这种情况也会发生。这是训练过程本身的缺陷,而非数据的问题。
2. “沉默的开关”(激活稀疏性)
现在,想象那些开关是灯泡。
- 使用 ReLU(一种常见开关类型):如果设置漂移到负值,灯泡就会完全熄灭并保持熄灭状态。作者发现,在某些模型中(例如名为 GPT-nano 的小型语言模型),高达90% 的灯泡会熄灭并保持沉默。
- 问题:这是一个缺陷(Bug)还是一个特性(Feature)?
- 缺陷:如果太多灯熄灭,机器可能会失明并停止学习。
- 特性:如果机器能用更少的灯工作,它可能会更高效。
3. “悬崖”(危险区)
研究人员测试了机器在崩溃前能忍受多少“沉默”。他们发现了一个陡峭的“悬崖”。
- 安全区:如果你关闭多达**70%**的开关,机器的工作表现几乎和以前一样好。这令人惊讶地具有鲁棒性。
- 悬崖:如果你尝试关闭超过 70% 的开关(例如 80% 或 90%),机器的性能就会崩溃。这就像试图只用一个轮子开车;在达到某个速度之前它还能运行,但随后就会分崩离析。
- 例外:带有“跳跃连接”(如 ResNet 或 Transformer)的机器就像装有备用轮的汽车;它们在崩溃前能忍受更多的沉默。
4. “平方”实验(ReLU2)
作者尝试了一种名为ReLU2的新开关类型,它将信号平方(使大数变得更大)。
- 问题:这产生了“尖峰”。想象几个灯泡突然闪烁得如此明亮,以至于烧坏或致盲系统。在机器的中间层,这些尖峰变得异常巨大且危险。
- 修复:他们发现,截断这些尖峰(给灯泡能达到的亮度设定上限)解决了这个问题。
- 赢家:“截断 ReLU2"的表现优于原始版本,而“截断 GELU2"(一种不同的平滑开关)在语言模型上实际上表现最佳,实现了最低的误差率。
5. “冻结”技巧(计算效率)
“漂移”主要发生在训练的最初几步。之后,设置就会稳定下来。
- 想法:通常,机器每次看到新图像或句子时都会重新计算其“重心”(归一化统计量)。这很慢。
- 黑客手段:作者发现,一旦初始漂移稳定(经过短暂的“预热”后),你就可以冻结这些计算。你停止重新计算,直接使用起始时的数值。
- 好处:这使得机器训练速度提高了约25–30%,而不会损害其最终智能。这就像在房间达到适宜温度后设定恒温器,而不是每一秒都检查温度。
总结
该论文揭示,现代 AI 模型会自然地形成“死亡区域”,其中许多神经元由于学习过程中的数学怪癖而停止工作。
- 这不是数据中的缺陷;这是优化数学中的缺陷。
- 沉默是可以接受的,但有一定限度(70%),过多的沉默会导致崩溃。
- 新开关(平方函数) 可能很强大,但需要“截断”以防止危险的尖峰。
- 冻结早期计算 可以显著加快训练速度。
作者得出结论,看似随机的副作用实际上是一种可控的机制,如果加以理解,可以帮助我们构建更快、更高效的 AI。
技术摘要:Bug 还是 Feature2:权重漂移、激活稀疏性与尖峰
问题陈述
现代神经网络架构设计已通过增量式的经验选择不断演进,然而支配训练动态的内在机制仍未被完全理解。本文指出,在缺乏均值中心化归一化的情况下,标准损失函数(MSE、交叉熵)与具有正偏置的激活函数(如 ReLU、GELU、SiLU)之间的相互作用,会引发系统性的负向权重漂移。
核心问题在于,在训练初期,梯度下降会将权重推向负值。这是因为针对正预激活值的期望梯度是非负的。因此,预激活值向下偏移,导致更多神经元落入零以下。当这些负预激活值通过 ReLU 等激活函数时,会被压缩至零,从而引发硬激活稀疏性。作者探讨了这种涌现的稀疏性是有益于效率的特性,还是损害模型性能的缺陷。此外,本文还考察了在 Transformer 架构中使用平方激活函数(如 ReLU2)时观察到的病态激活尖峰。
方法论
1. 权重漂移的形式化分析
作者为初始化阶段的基于 ReLU 的多层感知机(MLP)提供了形式化证明。
- 理论框架:他们定义了一个有效权重矩阵 Veff,表示后续线性层与 ReLU 门的组合。
- 关键定理:在零均值独立同分布(i.i.d.)权重初始化下,Veff 的行均值为零,但具有非负的互相关性(E[⟨vi,vj⟩]≥0)。
- 梯度分析:对于 MSE 和交叉熵损失,针对任何正预激活值的期望梯度均为非负。由于梯度下降沿梯度的负方向更新权重(w←w−η∇w),这种持续为正的梯度会将权重推向负值。
- 自我强化循环:随着权重变为负值,预激活值进一步向下偏移,增加了“死神经元”的比例,从而强化了漂移。
2. 实证验证
作者在多种设置下验证了这些动态:
- 架构:MLP、ResNet-18、MaxViT、MP-SENet 和 GPT-nano。
- 激活函数:ReLU、GELU、SiLU、NoisyReLU、SUGARBSiLU 和 ReLU2。
- 数据:在真实世界数据集(CIFAR-10、ImageNet-1K、FineWeb)和完全随机输入上进行训练,以将优化动态与数据分布隔离。
- 优化器:SGD、带动量的 SGD 以及 Adam/AdamW。
3. 稀疏性控制与权衡分析
为了确定稀疏性是“缺陷”还是“特性”,作者使用两种机制显式控制稀疏性水平:
- Top-K 稀疏性:保留前 k% 的激活值(用于 GELU)。
- 百分位中心化(PC):一种提出的方法,在应用 ReLU 之前,将激活值按目标百分位 q 而非均值进行偏移,直接控制被置零的激活值比例。
- 评估:他们在不同架构上基准测试了 79 种配置,以绘制稀疏性水平与模型准确率/损失之间的关系。
4. 平方激活函数与尖峰的调查
本文分析了 GPT-nano 中的 ReLU2(max(0,x)2)和 GELU2。
- 尖峰检测:他们观察到在使用 ReLU2 时,GPT-nano 的第 2 至 4 层出现了巨大的激活尖峰。
- 缓解措施:他们测试了将这些激活值在阈值(15 和 50)处进行截断,以确定这些尖峰是有害的(缺陷)还是具有信息量的(特性)。
关键结果
1. 负向权重漂移是内在的
- 普遍性:漂移发生在所有测试架构和激活函数中,包括那些没有显式归一化的函数(如 RMSNorm)。
- 优化起源:即使在随机数据上,该现象依然存在,证实它是优化动态的属性,而非数据分布的属性。
- 幅度:漂移在训练的前几个迭代中最为显著,随着梯度减小而趋于稳定。基于动量的优化器会加速这种初始漂移。
- 稀疏性后果:在基于 ReLU 的模型中,这种漂移会引发自然稀疏性,在 GPT-nano 中甚至可达 90%,而无需显式正则化。
2. 稀疏性 - 准确率的“悬崖”
- 权衡曲线:性能在中等稀疏性水平(s≲0.7)下保持稳定,但在超过临界阈值(即“悬崖”)后急剧下降。
- 架构依赖性:
- MLP:在约 85% 的稀疏性下遭受灾难性崩溃。
- ResNet:在结构化(通道级)稀疏性下表现出单调退化,但在非结构化稀疏性下保持鲁棒性。
- Transformer(ViT、GPT):表现出极强的韧性。GPT-nano 在高达约 91% 的稀疏性下仍保持接近基线的性能。
- 机制独立性:诱导稀疏性的具体方法(Top-K 与百分位中心化)相比稀疏性水平本身,影响微乎其微。
3. 激活函数与稀疏性
- GELU:在大多数分类任务中实现最高准确率,但引发的自然稀疏性最小。
- ReLU2:对归一化高度敏感。它在没有归一化的 MLP 上会崩溃,但在 GPT-nano 上实现了最低的验证损失(3.250),优于 GELU(3.260)。
- ReLU 化:通过一个 epoch 的微调将 GELU 训练模型转换为 ReLU,可在几乎不损失准确率(<1%)的情况下恢复 55–74% 的稀疏性,为效率提升提供了实用策略。
4. 病态尖峰与截断
- 尖峰起源:GPT-nano 中的尖峰源于 MLP 块的升维投影,并被 ReLU2 中的平方运算放大。
- 截断益处:
- 截断 ReLU2:优于未截断的 ReLU2(3.236 vs. 3.251),表明极端尖峰是有害的。
- 截断 GELU2:在 GPT-nano 上实现了最佳的整体验证损失(3.233)。
- ViT 结果:在 MaxViT 上,平方激活函数并未优于 GELU,表明平方激活函数的益处可能特定于自回归模型。
5. 通过累积停止实现计算效率
- 观察:由于权重漂移在数千步后趋于稳定,因此在整个训练过程中动态计算归一化统计量(百分位、均值)是不必要的。
- 方法:作者提出了累积停止(Accumulation Stop, AS),即在预热阶段(例如 50k 步)期间通过指数移动平均(EMA)计算统计量,然后将其冻结。
- 结果:这将训练吞吐量恢复至接近基线水平(消除了动态百分位计算带来的约 25–30% 的开销),同时不降低模型质量(FID/IS 分数保持稳定或有所提升)。
意义与主张
本文重新将激活稀疏性框架化为数据涌现属性的对立面,而是损失函数、激活函数与归一化层之间相互作用的可控后果。
- 机制理解:该工作为现代架构(通常省略均值中心化,例如使用 RMSNorm)为何表现出系统性权重漂移和高稀疏性提供了理论和实证解释。
- 设计指南:
- 稀疏性控制:在基于 Transformer 的模型中,可以实现高达约 70-80% 的激进稀疏性,而不会显著降低性能,这为计算效率提供了一条途径。
- 激活函数选择:虽然 ReLU2 在大语言模型(LLM)中提供了性能提升,但需要截断以缓解病态尖峰。GELU 仍然是一个稳健的通用基线。
- 效率:“累积停止”技术提供了一种实用方法,通过在初始漂移稳定阶段后冻结归一化统计量来减少训练开销。
- 局限性:作者指出,理论证明严格适用于初始化和 ReLU,对平滑激活函数的扩展属于实证范畴。这些发现对前沿规模大语言模型(10 亿 + 参数)的适用性,以及不同架构的最佳截断阈值,仍是未决问题。
本文结论认为,理解这些“看似偶然”的设计选择对于未来的架构开发至关重要,特别是随着该领域向非中心化归一化和稀疏推理迈进。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。