2025-11-20 05:56:01
损失函数是教机器学东西的尺子,数值越小说明模型越准。当它变负的时候,就像你算错账把100块当成了-50块,说明损失函数设计时可能自带了负号。比如用公式算的时候,如果写成负的误差差,预测对了就会变负数。
损失函数变负是因为公式里加了负号。比如有个分类任务,真实标签是1,模型预测概率是0.9,交叉熵损失公式是负的log(0.9),算出来是0.105,这时候没变负。但如果公式写成负的(预测值-真实值),当预测值1.2比真实值1大0.2时,损失就是-0.2。就像用弹簧测力,拉长时弹簧会自己产生反向力,负数就是反向的误差。训练时模型会顺着这个负方向调整参数,相当于往正确方向推。比如用均方误差时,预测值1.5和真实值1的误差是0.25,平方后还是正数;但如果是用绝对误差减去0.5,当误差是0.3时,损失就会变成-0.2。这就好比你考试得90分,老师扣了10分又退回5分,算出-5分,说明扣分规则设计有问题。训练时要确保损失函数始终正向,否则优化方向会乱掉。
本题链接: