KDnuggets

Loss Function Explained For Noobs (How Models Know They Are Wrong)

8.5内容质量

TL;DR · AI 摘要

损失函数是机器学习模型评估预测错误程度的核心机制,通过量化预测与真实值的差距指导模型优化。

核心要点

  • 损失函数通过量化预测与真实值的差距,指导模型优化。
  • 均方误差(MSE)常用于回归问题,如房价预测。
  • 损失函数的反馈机制类似于打靶游戏中的距离反馈。

结构提纲

按章节快速跳转。

  1. 文章指出初学者在学习机器学习时,常对损失函数的原理感到困惑。

  2. 损失函数用于衡量模型预测与真实值之间的差距,是模型学习的核心机制。

  3. §均方误差(MSE)

    MSE是回归问题中最常用的损失函数,用于量化预测值与真实值的平方差。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 损失函数
    • 定义与作用
      • 衡量预测与真实值的差距
      • 指导模型优化
    • 常见类型
      • 均方误差(MSE)

金句 / Highlights

值得收藏与分享的关键句。

#机器学习#损失函数#MSE#模型优化
打开原文

为新手解释损失函数(模型如何知道自己错了) - KDnuggets

publ: 2026年6月19日

  • 博客热门文章
  • 主题 人工智能 职业建议 计算机视觉 数据工程 数据科学 语言模型 机器学习 MLOps NLP 编程 Python SQL
  • 数据集
  • 活动
  • 资源 快速参考指南 推荐 技术简报
  • 广告

加入新闻通讯

#header end

/ad_wrapper

为新手解释损失函数(模型如何知道自己错了)

这是一个简单的指南,用于理解机器学习中的损失函数以及模型如何从错误中学习。

作者:

Kanwal Mehreen

KDnuggets 技术编辑和内容专家,2026年6月19日发布于

机器学习

<div class="addthis_native_toolbox"></div>

# 引言

我知道,当初学者开始学习机器学习时,事情起初似乎很简单。你跟随一个教程,它要求你加载一个数据集,训练一个模型,然后你看到类似这样的内容:loss = "mse" 或 criterion = nn.CrossEntropyLoss() 。

就这样,教程开始谈论方程、梯度、优化和希腊字母。如果你曾经点头表示理解,但其实并不清楚损失函数的作用,你并不孤单。损失函数通常被反向解释。大多数教程从公式开始,而他们应该从概念开始。本文是我在新手系列的一部分,我将努力使你更容易理解。那么,我们开始吧。

# 什么是损失函数?

损失函数是机器学习模型知道自己错误的方式。这其实就是整个概念。模型做出一个预测。损失函数将该预测与正确答案进行比较。然后它给模型一个数字,表示“你的错误有多严重”。

高损失意味着模型非常错误。

低损失意味着模型接近正确。

在训练过程中,模型不断调整自己以减小损失。

这就是学习发生的方式。如果你玩过飞镖游戏,它非常相似。你投掷飞镖。为了改进,你需要反馈。你需要知道你的飞镖是稍微偏离了,离得很远,太高了,还是太偏左了。没有这些反馈,你无法改进。因此,中心点基本上就是正确答案,飞镖就是预测。你测量飞镖与中心点之间的距离。损失函数测量飞镖落地的距离。这个距离成为模型的反馈信号。如果你喜欢可视化,它看起来会是这样。

就像距离中心点的远近很重要一样,投得太近和偏离太远是不一样的。同样地,对于模型来说,仅仅知道答案是错误的并不够。模型需要知道它失败的程度,以便改进。

现在我们已经了解了损失函数是什么以及为什么我们需要它,让我们看看机器学习中使用的一些常见损失函数。

code
def mean_squared_error(predictions, actuals):
    squared_errors = [(p - a) ** 2 for p, a in zip(predictions, actuals)]
    return sum(squared_errors) / len(squared_errors)

现在,我知道从错误中计算平均值在直觉上是有意义的,但理解为什么我们要对它们进行平方可能会让人感到困惑。这是出于两个原因:

  • 平方可以将每一个错误变为正数。+3 的错误和 -3 的错误一样糟糕,平方后两者都变为 9,这样它们就不会相互抵消了。平方对大的错误惩罚比对小的错误惩罚更严厉。这对于许多使用场景来说是很有好处的。例如,如果你在预测房价,预测错误 1000 美元和预测错误 200,000 美元应该分别受到相应的惩罚。

# 平均绝对误差

另一个常见的损失函数是平均绝对误差(MAE)。MAE 同样衡量预测值和实际值之间的差距,但它不会对误差进行平方。相反,它只是取绝对值。

下面是用 Python 编写的函数:

code
def mean_absolute_error(predictions, actuals):
    absolute_errors = [abs(p - a) for p, a in zip(predictions, actuals)]
    return sum(absolute_errors) / len(absolute_errors)

因此,它对大的错误进行惩罚,但不像 MSE 那样严厉。

  • 10 的误差成本是 10,20 的误差成本是 20。如果你的数据自然存在一些异常值,并且你不想让模型对它们过度反应,MAE 是一个不错的选择。

让我展示一个快速的图表,比较 MSE 和 MAE 曲线。

# 交叉熵损失

到目前为止,我们讨论了预测数字的问题。但许多机器学习问题是关于预测类别的。

这封电子邮件是垃圾邮件还是不是?

这是一张狗、猫还是鱼的图片?

某笔交易是欺诈性的还是不是?

对于分类任务,模型通常会输出类似以下的概率:

code
狗: 70%
猫: 20%
鱼: 10%

如果图片确实是狗,这是一个好的预测。但如果它是猫,那么模型需要因为给正确答案分配了较低的概率而受到惩罚。

因此,直觉是:

  • 正确且自信 —— 损失低
  • 正确但不确定 —— 损失中等
  • 错误且自信 —— 损失高

这就是为什么交叉熵被广泛用于分类。它不仅关心模型是否正确,还关心模型的置信度。

# 损失与准确率

现在我们已经了解了不同的损失函数,我也想澄清损失和准确率之间的区别。它们并不是一回事。

准确率告诉你有多少预测是正确的。

但损失告诉你模型的错误有多严重。

如果你有两个模型 —— 模型 A 和模型 B —— 它们都正确预测了 100 个预测中的 90 个,它们的准确率是相同的。但一个模型可能在正确答案上非常自信,而在错误答案上只是稍微错误,而另一个模型可能在许多例子上只是勉强正确,而在错误时却非常自信。

在这种情况下,准确率是相同的,但损失是不同的。

# 训练循环

一旦模型有了一个损失值,它就可以进行改进。训练循环如下:

  • 模型进行预测。损失函数衡量错误。优化器更新模型。模型再次尝试。损失希望变得更小。

在训练模型时,我们也会绘制损失随时间变化的曲线。起初,模型会犯很多错误,预测能力较差,因此损失较高。但随着训练的进行,损失会下降,模型的预测能力也会提高。

一条健康的训练曲线通常如下所示:

初始损失较高 → 快速下降 → 逐渐趋于平稳

如下面的图所示。

趋于平稳是正常的。这意味着模型已经学会了简单的模式,现在正在做出较小的改进。但如果训练损失下降的同时,验证损失开始上升,这可能是过拟合的警告信号——这意味着模型可能正在记忆训练数据,而不是学习可以泛化的模式。

# 最后的想法

损失函数是模型的错误分数。

它告诉模型其预测错误的程度,并为训练提供一个明确的目标:让这个数字变小。

一旦你理解了损失函数,许多其他机器学习的概念将变得更容易理解——包括梯度下降、反向传播、优化、过拟合和评估指标。

你不需要从可怕的公式开始。从这个想法开始:

  • 模型进行猜测。损失函数对猜测进行评分。模型更新自身以减少这个评分。

这就是机器学习的核心。

损失是模型知道自己错误的方式。

训练是它学习如何减少错误的方式。

这将我们带到了本文的结尾。我们将继续在我们的新手系列中介绍一些有趣的概念。

Kanwal Mehreen 是一位机器学习工程师和技术作家,对数据科学以及人工智能与医学的交汇点有着浓厚的热情。她合著了电子书《如何利用 ChatGPT 最大化生产力》。作为 2022 年 Google Generation Scholar(亚太地区),她倡导多样性和学术卓越。她还被认定为 Teradata 技术多样性学者、Mitacs Globalink 研究学者和哈佛 WeCode 学者。Kanwal 是变革的坚定倡导者,她创立了 FEMCodes 以赋能 STEM 领域的女性。

关于此主题的更多内容

  • 为新手解释人工智能
  • 如何使用 pivot_table 函数进行高级数据汇总…
  • 我们在真实数据集上使用了 5 种异常值检测方法:它们…
  • 10 分钟内了解 7 个必须知道的机器学习算法
  • 用三个难度级别解释大型语言模型
  • 5 分钟内解释 5 个机器学习模型

<hr class="grey-line"><br> <div><h3>我们推荐的 5 个免费课程</h3><br> </div>

Mailchimp for WordPress v4.13.0 - https://wordpress.org/plugins/mailchimp-for-wp/

/ Mailchimp for WordPress 插件

你可以从这里开始编辑。

如果评论已关闭。

<= 上一篇

#content end

<script type="text/javascript">kda_sid_write(kda_sid_n);</script>

最新文章

  • 为新手解释损失函数(模型如何知道自己是错误的)实用 SQL 技巧每位数据科学家都应该知道的 Python 字典技巧和窍门你应该始终记住的高级连接技术:LATERAL 连接、半连接、反连接如何(以及为什么)我构建了一个 AI 助手使用 OpenAI Codex 的 5 个有趣项目

热门文章

  • 将 Claude Code 与本地模型配对
  • 为你的创业点子获得资金的 7 个最佳方法
  • 2026 年成为 LLM 工程师的路线图
  • 低成本的本地智能代理编程:Claude Code + Ollama + Gemma4
  • Anthropic 的 Claude 技能构建完整指南
  • 如何(以及为什么)我构建了一个 AI 助手
  • 使用 Python 的 sktime 构建时间序列机器学习模型
  • 使用 OpenAI Codex 的 5 个有趣项目
  • 停止在 Pandas 中编写循环:尝试 7 种更快的替代方法
  • 5 个有用的 Python 脚本,用于自动化无聊的 PDF 任务

#content_wrapper end

© 2026

Guiding Tech Media

|

关于

联系

广告

隐私

服务条款

发布于 2026 年 6 月 19 日 by

blank

不,谢谢!

/.main_wrapper

<script defer type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=gpsaddthis"></script>

noptimize

/noptimize