损失函数是什么?模型为什么要算自己错多少

损失函数像训练过程里的成绩单,告诉模型预测结果和真实答案之间差了多少。

学习路线:AI 入门与 PyTorch 基础(1~20) · 第 11 课
第 11 课学习桌面上画着神经网络图,屏幕里有一条逐渐下降的训练曲线。
Learning Path

AI 入门与 PyTorch 基础(1~20)

从 AI 基本概念、机器学习任务、深度学习直觉、PyTorch 入门到中文文本分类项目全貌。

学完本阶段你能做到:能说清 AI、机器学习、深度学习、PyTorch 训练流程和一个中文文本分类项目的大致链路。

推荐读法:零基础建议顺序阅读;已有基础的读者可以把它当作路线地图和查漏补缺清单。

查看完整阶段 · 20 篇
Lesson Guide

这一课怎么学

先看目标,再带着问题读正文。读完后用练习确认自己真的理解了。

本节你会学到

  • 说清楚「损失函数是什么?模型为什么要算自己错多少」解决的核心问题
  • 知道它在「AI 入门与 PyTorch 基础(1~20)」中的位置
  • 把 损失函数、机器学习、激活函数 这些关键词联系起来

前置知识

  • 建议先读完上一篇:激活函数是什么?为什么神经网络不能没有它
  • 能区分输入、输出、数据和模型目标。

概念回顾

  • 【损失函数】损失函数就是模型的扣分规则,分数越低,说明预测越接近真实答案。 前面或后面会反复用到它。
  • 【机器学习】机器学习的重点不是手写所有规则,而是准备数据、定义目标,让模型自己找到可复用的模式。 前面或后面会反复用到它。
  • 【激活函数】没有激活函数,多层网络叠起来仍然像一条直线;有了它,模型才能表达弯曲复杂的关系。 前面或后面会反复用到它。
  • 【人工智能】先把 AI 理解成一类能力:机器不是只照规则执行,而是能从数据、规则或反馈中完成更复杂的判断。 前面或后面会反复用到它。

核心概念

常见误区

  • 不要只记定义,要追问它解决了什么问题。
  • 不要把概念孤立背下来,要放回数据到结果的完整链路里。

课后练习

  • 用 3 句话向一个零基础朋友解释「损失函数是什么?模型为什么要算自己错多少」。
  • 打开概念库里的「损失函数」,补一遍它和本文的关系。
  • 读下一课「梯度下降算法是什么?参数到底怎么一步步更新」前,先写下你认为它会解决的问题。

自检练习与参考答案

1. 用一句话说清「损失函数是什么?模型为什么要算自己错多少」解决了什么问题。

合格答案不是复述标题,而是说清它在“数据进入模型、模型学习、结果评估或项目落地”中的作用。

2. 这篇文章和上一课或下一课是什么关系?

它应该为下一课「梯度下降算法是什么?参数到底怎么一步步更新」铺路:读完后要知道下一课为什么自然出现。

下一步建议读「梯度下降算法是什么?参数到底怎么一步步更新」。

训练模型时,我们经常会看到一个词:loss

很多教程会直接说“让 loss 降低”,但刚开始学的时候,更重要的问题其实是:loss 到底是什么?

简单说,损失函数就是模型的评分规则。

它会告诉我们:这次预测和真实答案之间差了多少。

第 11 课视频 · 损失函数是什么?(约 1 分 34 秒)

为什么模型需要损失函数

模型刚开始训练时,参数通常是随机的,所以预测结果也很随机。

如果我们不告诉模型它错在哪里,它就没有办法改进。

损失函数的作用,就是把“预测得好不好”变成一个数字。

这个数字越小,通常说明模型预测得越接近真实答案;这个数字越大,说明模型错得越离谱。

一个直观例子

假设真实答案是 10,模型预测是 8

那它错了 2

如果另一次模型预测是 2,它就错了 8

很明显,预测 8 比预测 2 更好。

损失函数做的事情,就是把这种“错多少”系统化。

在回归任务里,我们常用均方误差;在分类任务里,我们常用交叉熵。

不同任务需要不同的评分规则。

loss 不是准确率

初学者很容易把 loss 和 accuracy 混在一起。

它们都和模型效果有关,但不是同一个东西。

accuracy 更像最终答对了多少题;loss 更像每道题错得有多严重。

有时准确率没变,但 loss 已经在下降,这说明模型虽然还没多答对题,但它对正确答案的信心可能在变强。

所以训练时同时看 loss 和 accuracy,会比只看一个指标更稳。

loss 为什么要下降

训练模型的目标,通常就是让损失变小。

因为损失越小,代表预测和真实答案越接近。

优化器会根据 loss 计算出来的梯度,调整模型参数,让下一次预测更好一点。

这个过程会反复进行很多轮:

预测 -> 计算 loss -> 反向传播 -> 更新参数 -> 再预测

这就是训练循环的核心。

loss 一直不下降怎么办

如果训练时 loss 长时间不下降,可能有很多原因:

  • 学习率太大或太小
  • 数据没有处理好
  • 标签有问题
  • 模型太简单
  • 模型太复杂导致训练不稳定
  • 损失函数选错了

所以看到 loss 不下降,不要第一反应就换模型。先检查数据、标签、学习率和训练流程,往往更有效。

小结

损失函数不是一个抽象名词,它就是模型训练里的成绩单。

它把预测错误变成数字,让模型知道自己离正确答案还有多远。

理解了损失函数,再看梯度下降、反向传播和优化器,就会顺很多。

Discussion

留言讨论