AI News HubLIVE
站内改写2 分钟阅读

随机梯度下降的频率偏差与Adam如何解决它

现代语言模型因token分布极不均匀面临优化挑战:常见token的参数频繁接收梯度更新,而罕见token的参数可能数百步无有效信号。标准SGD以相同学习率更新所有参数,导致罕见token权重难以学习。Adam通过方差归一化自动为罕见token提供更大的有效学习率,使其快速收敛。在控制实验中,使用频率跨四个数量级的六个token,SGD对最罕见token的权重仅学到0.15(真实值为1.0),而Adam使其接近1.0。

来源MarkTechPost作者: Arham Islam

现代语言模型训练数据中的token分布极不均匀,常见词如“the”几乎出现在每个句子中,而罕见但重要的词如“thalweg”则极少出现。这种不平衡带来了一个隐藏的优化挑战:与常见token相关的参数持续接收梯度更新,而与罕见token相关的参数可能数百甚至数千步都收不到有意义的信号。在标准随机梯度下降(SGD)中,所有参数使用相同的学习率,导致常见token的权重快速收敛,而罕见token的权重往往停留在随机初始化附近。

Adam优化器通过自适应学习率解决了这一问题。虽然Adam常被描述为带动量的SGD,但其最关键的特性是方差归一化:它单独跟踪每个参数的历史梯度统计,并根据可靠梯度信息的观测频率自动调整更新大小。更新频率低的参数会获得成比例更大的有效学习率,使罕见特征比在普通SGD下学习得更快。

为了具体展示这一行为,研究者设计了一个受控的NumPy实验,使用包含六个token的词汇表,这些token的频率跨越四个数量级——从几乎每个批次都出现的token到仅0.1%批次出现的token。他们对同一线性模型分别使用SGD和Adam训练,保持所有目标权重相同(真实权重均为1.0),通过比较最终参数值、非零梯度次数以及Adam的有效学习率,直接观察自适应优化如何补偿频率不平衡。

实验设置了高度简化的训练环境,仅聚焦于token频率因素。词汇表包含从极常见词“the”到极罕见词“thalweg”的六个token,出现概率跨越四个数量级。每个token被赋予相同的重要性——真实权重均为1.0,从而去除语义复杂性,专注于参数接收梯度更新的频率。每个训练样本表示为稀疏二元向量,表示批次中出现的token,目标值为激活token权重之和加少量噪声。梯度仅针对批次中的token计算,因此罕见token自然比常见token接收的更新少得多。

训练3000步后,结果清晰显示出SGD与Adam的差异。对于常见token,两种优化器都成功学得正确权重,因为这些token几乎出现在每个批次中。但对于罕见token,SGD表现糟糕:“xenobiotic”仅在约15%的步骤中接收到梯度,权重停留在0.53左右(真实值为1.0),而最罕见的“thalweg”仅3.4%的步骤有梯度,权重仅约0.15。相比之下,Adam尽管接收到同样稀疏的梯度信号,却使两个罕见token的权重都接近正确值。

Adam之所以成功,是因为它的方差归一化机制。Adam维护每个参数的动量估计(平均值)和方差估计(平方梯度的平均值),并在更新前进行偏差校正。参数v_hat跟踪梯度平方的指数移动平均,即历史梯度幅度的近似值。在罕见token的案例中,大多数时间梯度为零,因此v_hat很小,导致有效学习率(lr/√(v_hat))非常大,从而在接收梯度时给予大幅更新。随着训练推进,v_hat逐渐增加,有效学习率下降,避免过冲。实验测量了每个token在最后100步的平均有效学习率,发现参数频率与有效学习率之间呈反向关系:频率越低的token,Adam分配的有效学习率越高,近乎完美地补偿了梯度稀疏性。

这项实验直观地证明了Adam为何能有效处理长尾token分布。它并非仅仅增加所有参数的学习率,而是智能地将大更新分配给最需要它们的参数。这一特性对现代语言模型至关重要,因为这类模型必须从频繁出现的语法功能词到极少出现的专业术语中学习所有类型的token。