You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch线性回归偏置梯度远小于权重梯度、截距学习异常问题求解

偏置更新异常的原因
  • 梯度量级天然不对齐:线性回归MSE损失对权重w的梯度为 $\frac{2}{N}\sum x \cdot (wx+b-y_{true})$,对偏置b的梯度为 $\frac{2}{N}\sum (wx+b-y_{true})$。你使用的输入x取值范围为0~100,权重梯度的量级天然是偏置梯度的几十上百倍,相同学习率下偏置的更新步长会远小于权重,看起来就像没有更新。
  • 学习率设置过低:你选择的学习率1e-5对于未归一化的数据集来说步长太小,偏置单步更新量几乎可以忽略,100轮训练的累计更新量达不到可观测的阈值。
可行解决方案
  • 输入特征归一化:将输入x缩放到均值为0、方差为1的标准正态分布,或者0~1的区间,让权重和偏置的梯度量级对齐,相同学习率就可以同时更新两个参数。示例代码如下:
# 插入到x生成之后、转tensor之前即可
x = (x - x.mean()) / x.std()
  • 调整学习率策略:直接将全局学习率调高到1e-3~1e-2,适配未归一化的数据集;也可以给偏置项单独设置更大的学习率,示例如下:
optimizer = torch.optim.SGD([
    {"params": model.weight},
    {"params": model.bias, "lr": 1e-3}
], lr=1e-5)
  • 增加训练轮次:如果不想修改数据和学习率,将训练轮次从100调整到10000以上,累积的更新量也足够让偏置收敛到正确值。

以上方案任选其一即可解决问题,同时使用效果更好。

内容的提问来源于stack exchange,提问作者Inkidu616

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:03