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

反向传播中计算dW_curr为何要除以m,是否仅交叉熵损失需要该操作

反向传播中dW_curr除以m的相关问题解答

为什么要除以m

核心原因和批量训练的梯度计算逻辑直接相关:

  • 代码中np.dot(dZ_curr, A_prev.T)这一步,已经完成了批次内所有样本的单样本梯度求和操作,这里的m是当前批次的样本总数,除以m本质是对批次内的梯度取平均值。
  • 该操作最核心的作用是保证梯度的量级和批次大小无关:如果不做除法,当你把批次大小从32调整为128时,梯度的数值会直接变为原来的4倍,你必须同步调整学习率才能保证训练正常进行;做了平均之后,无论批次大小怎么变,梯度的尺度都是统一的,学习率不用频繁调整。
  • 同时平均梯度也能提升训练稳定性:避免批次样本较多时,求和得到的梯度过大导致训练过程震荡。

该操作是否仅适用于交叉熵损失

不是,这个除法操作和你选择的损失函数完全无关,是批量训练场景下的通用操作:
无论你使用均方误差(MSE)、平均绝对误差(MAE)还是交叉熵作为损失函数,只要你在计算损失时用的是批次内所有样本的平均损失(这是几乎所有深度学习训练的默认实现),反向传播时就需要对梯度做平均,也就是除以m。只有当你刻意使用批次总损失而非平均损失时,才可以去掉这个除法,这种情况非常少见。


内容的提问来源于stack exchange,提问作者Gabriel Oliveira Guimarães

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:48:00