
这项由斯科尔科沃科技大学(Skoltech)研究团队主导完成的研究,于2026年5月以预印本形式发布,论文编号为arXiv:2605.17659v1,归档于计算机学习(cs.LG)方向。有兴趣深入了解的读者可以通过该编号在arXiv平台上查询完整论文。
研究团队花了大量时间盯着一个神经网络训练时的奇怪现象:明明没有人刻意去调整权重的方向,可训练过程中网络内部的那些数值——也就是决定网络"如何思考"的权重——却一个劲儿地往负数方向跑。这不是偶然,不是某一个特定数据集造成的,甚至用完全随机生成的、毫无意义的数据来训练,这个"往负数跑"的趋势依然顽固地存在。这究竟是出了什么问题,还是某种隐藏的设计特性?这就是这篇论文要破解的核心谜题。
要理解这件事的重要性,先得明白神经网络是干什么的。你可以把神经网络想成一个复杂的信号处理流水线,数据从一端进去,经过一层又一层的处理,最后从另一端输出答案。每一层处理都包含两个步骤:第一步是做加权求和,就像厨师按照食谱把各种食材按比例混合;第二步是通过一个叫"激活函数"的装置做非线性变换,就像把混合好的食材放进烤箱,烤出来的结果和放进去之前的样子截然不同。权重就是食谱里的"每种食材放多少克"——它们决定了整个网络的行为。
研究团队发现的这个现象,本质上是说:训练开始没多久,食谱里几乎所有食材的用量都会自动调成负数。这个现象有个名字,叫做"负权重漂移"(Negative Weight Drift)。团队不仅从数学上证明了它必然发生,还在从最简单的多层感知机(MLP)到图像识别的ResNet、视觉变换器(ViT)、语言模型GPT-nano,乃至语音增强模型MP-SENet等五种截然不同的架构上都观察到了它,横跨ReLU、GELU、SiLU等多种激活函数。
这个漂移到底有多重要?它会引发一连串连锁反应。权重变负,意味着数据流过网络时被压进负值区间;负值通过某些激活函数(比如ReLU)时会被直接清零;大量神经元输出零,网络就像有大片区域"熄灯"了。在GPT-nano这样的语言模型里,这种"熄灯"现象能达到惊人的90%——每100个神经元里有90个在输出零。这是Bug还是Feature?研究团队用实验仔细回答了这个问题。
一、为什么权重会一路往负数漂?
要理解这个漂移是怎么发生的,先考虑一个简单的场景。一个刚刚被随机初始化的神经网络,权重是零均值的随机数,正的和负的大概一样多。现在开始训练,给它看一个样本,计算损失,然后做反向传播更新权重。
研究团队证明的核心结论是:在训练最初阶段,对于网络中每一个"被激活"(也就是输出正数)的神经元,损失函数对它的梯度在期望上是非负的。"梯度"就像一个指示牌,告诉你"往哪个方向走损失会下降"。梯度是正的,意味着梯度下降算法会把权重往负方向推(因为算法是沿着梯度的反方向走的)。
这个结论的来源,是激活函数的"正偏置"特性。以最简单的ReLU为例,ReLU的规则是:输入是正数就原样输出,输入是负数就输出零。所以ReLU的输出永远不会是负数,它是一个"只往正数方向放行"的单向阀门。当一个神经元激活时,它的输出是正数;这个正数经过后续若干层的线性变换,最终影响网络的输出;网络输出偏高,损失函数(不管是均方误差还是交叉熵)就会产生一个"把输出往下压"的梯度;往下压的梯度通过链式法则反传回来,就会让产生这个输出的权重往负数方向移动。
数学上,研究团队证明了两个关键不等式。在均方误差损失(MSE loss)下,以及在分类任务的交叉熵损失(Cross-Entropy loss)下,对于任意中间层的任意一个激活为正的神经元,损失对其前激活值的期望梯度均大于等于零,且在神经元确实激活时严格大于零。这意味着,只要神经元在工作,就一定在把权重往负数方向推。
这个推力不是来自数据的,而是来自激活函数和损失函数的结构性组合。正是因此,哪怕你用完全随机生成的噪声数据来训练,负权重漂移依然会发生,这一点在实验中得到了明确验证。
与此同时,这个漂移还会自我强化。权重变负→预激活值(进入激活函数之前的原始数值)整体下移→更多神经元输出零→只有更少的神经元携带梯度信号→这些少数还活跃的神经元承受更大的梯度压力→权重进一步变负。这是一个自我加速的循环。
漂移的速度还取决于优化器的选择。使用带动量的SGD或者Adam时,漂移在最初几十步内就急剧累积,然后趋于稳定;使用普通SGD时,漂移更慢、更线性。这是因为动量机制会累积早期的正梯度偏置,让初期的推力被放大。无论哪种优化器,漂移都发生在训练最早期,之后趋于稳定,留下的负偏移会贯穿整个训练过程。
二、漂移发生后:稀疏性的Bug与Feature之辩
既然权重漂移了,接下来会发生什么?答案取决于你用的是哪种激活函数,这让情况变得非常有意思。
以ReLU为激活函数的网络里,负权重漂移的后果最为直观。权重变负,意味着进入ReLU的原始数值普遍偏负;ReLU对负输入的处理是直接清零;因此大量神经元的输出变成精确的零——这就是"激活稀疏性"。在GPT-nano语言模型里,研究团队测量到高达90%的激活稀疏度,意味着任意时刻的任意层里,十个神经元里有九个在输出零。
对于GELU和SiLU这类"更温和"的激活函数,情况稍有不同。它们不像ReLU那样有一个硬性的零阈值,而是在零附近有一个平滑的过渡区。负权重漂移把输入压进这个平滑区,结果是神经元的输出不是精确的零,而是非常接近零的很小的正数。这叫做"软稀疏性"——不是彻底关灯,而是灯光调到了几乎不亮的程度。
现在关键问题来了:这到底是好事还是坏事?
从"坏事"的角度看,大量神经元输出零意味着网络有大片区域对结果没有贡献,这听起来像是算力浪费,更糟糕的是可能造成信息丢失,让模型学不好该学的东西。从"好事"的角度看,稀疏的激活恰好是加速计算的好机会——零乘以任何数还是零,所以稀疏的网络在实际推理时可以跳过大量计算,理论上能大幅提速。已经有研究团队在LLM(大型语言模型)的推理阶段利用这种稀疏性实现了接近2倍的速度提升。
研究团队的回答是:取决于稀疏度高低。他们系统地测试了79种不同配置下的稀疏度与模型准确率的关系,得出了一个重要结论:稀疏度在70%以下时,模型性能几乎不受影响;超过这个门槛之后,性能急剧崩塌,就像走在悬崖边缘,过了临界点就直接掉下去了。这个"悬崖"现象在数学上被拟合为一个幂律衰减曲线,指数约为16.72,意味着在70%以下稀疏度时性能几乎是完全平坦的。
更有趣的是,不同架构的"悬崖位置"差异很大。最脆弱的是没有跳跃连接的普通MLP:稀疏度到85%时直接崩溃到接近随机猜测的10%准确率。加入跳跃连接(skip connection,类似于给网络加了一条"紧急旁路")后,同等稀疏度下还能保留74%的峰值性能。而Transformer架构(无论是图像识别的MaxViT还是语言模型GPT-nano)则极为顽强,GPT-nano在91%的稀疏度下验证损失几乎纹丝不动。跳跃连接起到了一定的保护作用,但Transformer的这种超强韧性背后还有更多原因尚待研究。
三、如何精确控制稀疏度?
认识到稀疏性是可控的、有规律的,而不是随机发生的混乱,研究团队进一步探索了主动调控稀疏度的方法。
第一种方法叫做"百分位数中心化"(Percentile Centering,PC),是研究团队专门提出的新方法。它的思路很简单:在对激活值做归一化处理时,不是像标准批归一化(BatchNorm)那样减去均值,而是减去指定百分位数的值。比如,如果你指定50百分位(也就是中位数),那么归一化后恰好有一半的数落在零以下;再接上ReLU,这一半就变成零,稀疏度精确地被锁定在50%。想要70%的稀疏度,就减去70百分位数,非常直观。这个方法可以无缝嵌入现有的归一化层,几乎不需要改动架构。
第二种方法叫做"Top-K激活稀疏化"(Top-K Sparsity),是已有文献中的方法,作为对比基准。它的做法是:每一层激活之后,只保留绝对值最大的K%的激活值,其余全部清零。这个方法配合GELU使用(因为ReLU本身已经通过权重漂移产生稀疏性,很难控制稀疏度的下限)。
研究发现,这两种方法在同等稀疏度下的效果非常接近,稀疏度本身是决定性能的主要因素,具体用哪种机制来实现这个稀疏度则是次要的。
除了主动构造稀疏度,研究团队还探索了一种"先训练再转换"的策略,叫做ReLUfication(ReLU化)。做法是:先用GELU从头把模型训练到位(GELU训练更稳定,不容易出现神经元"永久熄灯"的问题),然后用仅仅一个epoch的微调把激活函数换成ReLU。结果相当惊人:模型获得了55%到74%的激活稀疏度,而准确率损失不超过1个百分点,有时甚至完全没有损失。而且,转换前后负值预激活的比例几乎没有变化,说明稀疏性来自GELU训练出的权重分布与ReLU阈值的自然契合,并不需要权重发生大幅重组。这个方法被研究团队推荐为实践中权衡准确率与稀疏度的首选策略。
四、哪种激活函数表现最好?
研究团队系统比较了六种激活函数在四种架构上的表现,涵盖MLP、ResNet-18、MaxViT-Tiny(视觉变换器)和GPT-nano(语言模型)。
GELU在综合表现上是最稳健的通用基准线,在五个分类任务中的四个里准确率最高,即便它本身几乎不产生自然稀疏性(稀疏度约1.5%)。SiLU与GELU非常接近,平均准确率相仿,稀疏度也类似,可以视为GELU的近似替代品。ReLU产生的稀疏度明显更高(平均约66%),但准确率普遍低于GELU约2个百分点。
NoisyReLU的表现颇具亮点。它通过在负值预激活区域注入输入相关的随机噪声来防止神经元永久"熄灯",同时推理时恢复标准ReLU行为。它的稀疏度(约65%)与ReLU非常接近,准确率(60.3%)也与ReLU(59.1%)相近,说明它是个可靠的ReLU替代品——如果你需要梯度能流过死神经元的话。
SUGARBSiLU(一种前向传播用ReLU、反向传播用平滑代理梯度的方法)产生了所有激活函数中最高的稀疏度(平均68%),但准确率在所有方法中垫底,平均约54.8%。研究团队认为原因在于其代理梯度引入了持续的噪声,让优化过程始终不稳定。
最耐人寻味的是ReLU?(ReLU的平方,即先做ReLU再平方)。它是通过神经架构搜索发现的激活函数,定义为f(x) = max(0, x)?,平方后保留了稀疏区域(负数依然映射为零),但对正数区域的信号做了大幅放大。ReLU?在GPT-nano语言模型上取得了所有方法中最低的验证损失(3.250,优于GELU的3.260),但在没有归一化层的MLP和使用BatchNorm的ResNet上直接崩溃(准确率跌到10%的随机猜测水平)。它只与LayerNorm或RMSNorm配合良好,对归一化方案极度敏感。这个特殊性质引出了下一个重要发现。
五、激活尖峰:被平方放大的定时炸弹
深入分析GPT-nano时,研究团队发现了一个让人不安的现象:在第2层和第3层(有时延伸到第4层),网络激活值的最大值会出现一个显著的尖峰,就像正常平静的心电图上突然蹦出了几个异常高峰。这个现象与激活函数的选择无关——ReLU、GELU都有,只是高度不同。
通过仔细解剖GPT-nano中MLP模块的结构(每个MLP模块由"上投影→激活→下投影"三步组成),研究团队追踪到了尖峰的来源:上投影层中有少数神经元会产生异常大的预激活值,这些异常值经过激活函数后进入下投影层,形成尖峰。
ReLU?的问题就在这里暴露出来了。普通ReLU在第2层产生的尖峰范围约为42,GELU约为43,这已经不小了。但ReLU?把同一层的尖峰直接放大到1055——超过正常水平的20倍以上。这是因为ReLU?对每个正值做平方,本来异常大的值经过平方后变得更加异常巨大。
那这个尖峰是有用信号还是干扰噪声?研究团队通过裁剪(Clipping)实验给出了答案。他们将ReLU?的激活值上限分别裁剪到15和50,测试对模型性能的影响。结果表明,ReLU?裁剪到50(ReLU?clip50)的验证损失(3.236)优于不裁剪的ReLU?(3.251),说明最极端的尖峰值确实是有害的。裁剪到15(ReLU?clip15)的验证损失(3.242)则介于两者之间,说明过于激进的裁剪会把有用的大激活值也压掉,反而损失信息。
平方GELU(GELU?)的表现更加出色,它在所有配置中取得了最低的验证损失(3.233),同时产生的尖峰远低于ReLU?(第2层约为60,而不是1055)。这是因为GELU的平方在正值区域同样有放大效果,但GELU比ReLU在零点附近的变化更平滑,不会突然从零跳到一个大值,所以极端值出现的概率更低。
研究团队还在更大的视觉变换器MaxViT上验证了这些发现:ReLU?clip50依然优于不裁剪的ReLU?(69.63%对62.38%),说明激活尖峰在视觉模型中同样存在且有害。不过,在MaxViT上没有任何平方激活函数能超越普通GELU(70.30%),这提示平方激活函数的增益可能对自回归语言模型有特殊适配性,或者需要针对不同架构调整裁剪阈值。
六、从权重漂移到计算效率:一个意外的红利
权重漂移的一个关键特征是:它发生在训练的最早期,然后迅速稳定。权重的均值在前几十步急速下沉,之后几乎维持不变。研究团队意识到,这个特征可以被用来做计算效率上的优化。
百分位数中心化需要在每次前向传播时实时计算激活值的分位数,而分位数计算在GPU上很难并行化,计算开销相当大。如果稀疏度统计在早期就稳定了,为什么还要一直实时计算呢?
研究团队提出了"累积停止"(Accumulation Stop,AS)策略:在训练开始阶段,用指数移动平均(EMA)来追踪百分位数统计量(类似于BatchNorm里追踪运行均值的方式)。当运行到第T_warm步(比如50000步)时,把当时的统计量冻结,之后的所有训练步直接使用这个固定值,不再动态更新。
在DiT-S/2(一个用于图像生成的扩散变换器)和MaxViT上的实验表明,动态计算百分位数期间吞吐量下降约25%到30%;冻结统计量之后,吞吐量完全恢复到接近基准(标准LayerNorm)的水平,且在某些配置下还略有超越(比如MaxViT上恢复后的吞吐量从每秒1.55批次提升到2.09批次)。模型质量也得到了完整保留,FID和IS分数在冻结前后几乎没有变化。
值得一提的额外发现是:在DiT-S/2上,用百分位数LayerNorm(以中位数而不是均值做中心化)训练的GELU模型取得了FID 48.21和IS 31.41的成绩,优于标准LayerNorm基准(FID 49.40,IS 29.85)。研究团队认为这可能与分位数梯度的特殊传播方式有关,但具体机制尚未完全厘清,留作未来研究。
七、现代大模型为何让权重漂移更严重?
研究团队还特别讨论了一个重要的架构趋势:现代大型语言模型(如LLaMA家族、Mistral、Gemma、Qwen、DeepSeek等)越来越多地把LayerNorm替换为RMSNorm。
LayerNorm会减去激活值的均值,这个"减去均值"的操作恰好会抵消正激活偏置,从而削弱权重漂移。RMSNorm则只做缩放(除以均方根),完全不做均值中心化,因此对权重漂移没有任何抑制作用。换句话说,为了追求更高的计算效率而采用RMSNorm的主流架构,实际上在不经意间为权重漂移打开了大门,让漂移现象更为显著。
这并不意味着RMSNorm是坏的选择,而是说明我们应当清楚地认识到这个副作用的存在,并在设计激活函数和稀疏化策略时将其纳入考量。研究团队的工作可以被理解为:给现代大模型普遍存在的这一隐性动力学特征画了一张地图。
说到底,这篇研究做的事情是把神经网络训练过程中一个一直存在、却从未被人系统梳理过的现象,从数学、实验、应用三个维度彻底讲清楚了。研究团队证明了:权重往负数漂是必然的,不是数据的问题,不是某种特定架构的怪癖,而是损失函数与激活函数结构性组合的必然结果。这个漂移会产生激活稀疏性,稀疏性在70%以下时基本是免费的——你得到了计算效率的提升,却几乎不用为性能付出代价。超过70%这个门槛,模型就会急速退化。ReLU?加上适当的裁剪,以及GELU?,是目前在语言模型上表现最好的激活选择。平方运算带来的放大效果是有益的,但前提是要管住那些被过度放大的极端尖峰值。对归一化统计量的动态计算完全可以在早期训练稳定后被冻结,从而以极低代价换回可观的吞吐量提升。
这些发现对普通用户的影响或许不是立竿见影的,但对于那些在实际训练大模型的工程师和研究者来说,这相当于一份详细的"内部机制说明书",告诉他们那些看似不起眼的设计选择(用哪种归一化、用哪种激活函数、要不要裁剪激活值)会以什么方式影响训练动态,从而做出更明智的架构决策。
对此感兴趣的读者,可以通过arXiv编号2605.17659v1查阅完整论文,代码也在GitHub上开放,仓库地址为On-Point-RND/BugOrFeature。
---
Q&A
Q1:神经网络权重漂移是什么意思,为什么会发生?
A:权重漂移是指神经网络在训练早期,网络内部的权重数值会系统性地往负数方向偏移的现象。这是因为ReLU、GELU等激活函数对正值放行、对负值压制,导致激活输出整体偏正;而标准的损失函数(如均方误差或交叉熵)在面对这种偏正输出时,会产生向下压的梯度,通过反向传播把权重推向负值。这个过程不依赖于数据内容,用随机噪声数据训练也会发生,因此是优化过程的结构性特征。
Q2:激活稀疏度达到多少时模型性能会受到明显影响?
A:根据研究团队在79种配置上的实验,激活稀疏度在70%以下时,模型性能几乎保持稳定,可以视为"免费的稀疏性"。超过约70%之后,性能会急剧下降,呈现明显的"悬崖效应"。不同架构对稀疏度的容忍度差异显著:GPT-nano等Transformer架构在91%的稀疏度下性能依然几乎不变,而没有跳跃连接的MLP在85%稀疏度时就会崩溃到接近随机猜测的水平。
Q3:ReLU?激活函数和普通ReLU相比有什么优缺点?
A:ReLU?是先做ReLU再平方,即f(x)=max(0,x)?。优点是在语言模型GPT-nano上取得了更低的验证损失,且能产生与ReLU相当的稀疏性。缺点是它会将网络中本就存在的激活尖峰放大超过20倍(普通层尖峰约42,ReLU?可超过1000),这些极端值反而损害性能。解决方案是加裁剪,将激活值上限限制在50左右,裁剪后的ReLU?优于不裁剪版本。此外,ReLU?对归一化方案极度敏感,只与LayerNorm或RMSNorm配合良好,搭配BatchNorm或无归一化时性能会崩溃。
好文章,需要你的鼓励
AWS AI Labs研究团队发布EvalAgent,这是一套通过"评估技能"自动生成AI智能体评测方案的系统,将首次运行成功率从17.5%提升至65%,并在人类专家评测中获得79.5%的偏好选择。
亚历山大大学提出M2Retinexformer,通过融合深度、亮度和语义三种辅助模态,让AI在增强暗光图像时兼顾几何结构与视觉自然度。
浙大、西湖大学等联合提出FAAST,无需反向传播,一次正向扫描将训练样本压缩为快速权重矩阵,推理时间和内存占用分别节省90%和95%以上。
慕尼黑工业大学发布RealICU基准,用专家后见之明评测大语言模型在ICU实时决策中的真实能力,发现现有顶级AI存在有害推荐率过高和锚定偏差两大安全隐患。