很多同学会问:sigmoid 输出是 0~1,标签也是 0/1,为啥不能直接用 MSE?
核心在梯度:
- BCE 对 z 的梯度是 y_hat - y,错得越离谱,更新越大
- MSE 会多一个 y_hat(1-y_hat),当模型很自信但预测错时,这一项接近 0,梯度被压扁
举个常见场景:y=1,但模型给出 y_hat≈0.006。
- BCE 梯度接近 -1(强纠偏)
- MSE 梯度只有很小一截(几乎学不动)
所以分类任务优先 BCE,不是“习惯问题”,而是优化效率问题。
#机器学习# #深度学习# #算法面试#