训练模型时,我们经常会看到一个词:loss。
很多教程会直接说“让 loss 降低”,但刚开始学的时候,更重要的问题其实是:loss 到底是什么?
简单说,损失函数就是模型的评分规则。
它会告诉我们:这次预测和真实答案之间差了多少。
为什么模型需要损失函数
模型刚开始训练时,参数通常是随机的,所以预测结果也很随机。
如果我们不告诉模型它错在哪里,它就没有办法改进。
损失函数的作用,就是把“预测得好不好”变成一个数字。
这个数字越小,通常说明模型预测得越接近真实答案;这个数字越大,说明模型错得越离谱。
一个直观例子
假设真实答案是 10,模型预测是 8。
那它错了 2。
如果另一次模型预测是 2,它就错了 8。
很明显,预测 8 比预测 2 更好。
损失函数做的事情,就是把这种“错多少”系统化。
在回归任务里,我们常用均方误差;在分类任务里,我们常用交叉熵。
不同任务需要不同的评分规则。
loss 不是准确率
初学者很容易把 loss 和 accuracy 混在一起。
它们都和模型效果有关,但不是同一个东西。
accuracy 更像最终答对了多少题;loss 更像每道题错得有多严重。
有时准确率没变,但 loss 已经在下降,这说明模型虽然还没多答对题,但它对正确答案的信心可能在变强。
所以训练时同时看 loss 和 accuracy,会比只看一个指标更稳。
loss 为什么要下降
训练模型的目标,通常就是让损失变小。
因为损失越小,代表预测和真实答案越接近。
优化器会根据 loss 计算出来的梯度,调整模型参数,让下一次预测更好一点。
这个过程会反复进行很多轮:
预测 -> 计算 loss -> 反向传播 -> 更新参数 -> 再预测
这就是训练循环的核心。
loss 一直不下降怎么办
如果训练时 loss 长时间不下降,可能有很多原因:
- 学习率太大或太小
- 数据没有处理好
- 标签有问题
- 模型太简单
- 模型太复杂导致训练不稳定
- 损失函数选错了
所以看到 loss 不下降,不要第一反应就换模型。先检查数据、标签、学习率和训练流程,往往更有效。
小结
损失函数不是一个抽象名词,它就是模型训练里的成绩单。
它把预测错误变成数字,让模型知道自己离正确答案还有多远。
理解了损失函数,再看梯度下降、反向传播和优化器,就会顺很多。