机器学习中的成本函数2025年6月17日 | 阅读6分钟 机器学习模型要想在实际应用中表现良好,准确率必须非常高。但如何计算模型的准确率,即我们的模型在现实世界中的表现好坏呢?在这种情况下,成本函数就出现了。它是正确评估模型的一个重要机器学习参数。 ![]() 成本函数在理解模型在多大程度上准确地估计了输入和输出参数之间的关系方面也起着至关重要的作用。 在本主题中,我们将解释机器学习中的成本函数、梯度下降和成本函数的类型。 什么是成本函数?成本函数是一个重要参数,它决定了机器学习模型在给定数据集上的表现有多好。 它计算预期值和预测值之间的差异,并将其表示为一个实数。 在机器学习中,一旦我们训练了模型,我们就想看看模型的表现如何。虽然有各种准确率函数可以告诉你模型的表现如何,但它们不会提供改进模型的洞察。因此,我们需要一个函数,通过找到欠拟合和过拟合模型之间的那个点来找出模型何时最准确。 简单来说,“成本函数衡量模型在估计 X(输入) 和 Y(输出) 参数之间的关系时有多错误。” 成本函数有时也称为损失函数,可以通过迭代运行模型来估计,以比较估计的预测值和已知的 Y 值。 每个 ML 模型的主要目标是确定能够最小化成本函数的参数或权重。 为什么要使用成本函数?虽然有不同的准确率参数,但为什么我们需要机器学习模型的成本函数呢?我们可以通过一个数据分类的例子来理解它。假设我们有一个包含猫和狗的身高和体重的数据集,我们需要相应地对它们进行分类。如果我们使用这两个特征绘制记录,我们将得到如下散点图: ![]() 在上图中,绿点代表猫,黄点代表狗。下面是这个分类问题的三个可能的解决方案。 ![]() 在上面的解决方案中,所有三个分类器都具有很高的准确率,但第三个解决方案是最好的,因为它正确地分类了每个数据点。最好的分类的原因是它处于两个类别之间,既不接近也不远离任何一个。 要获得这样的结果,我们需要一个成本函数。这意味着为了获得最优解,我们需要一个成本函数。它计算实际值和预测值之间的差异,并衡量我们的模型在预测中的错误程度。通过最小化成本函数的值,我们可以获得最优解。 梯度下降:最小化成本函数正如我们在上面部分讨论的,成本函数告诉你你的模型有多错误?并且每个机器学习模型都试图最小化成本函数以给出最佳结果。这时就轮到梯度下降发挥作用了。 “梯度下降是一种优化算法,用于优化模型中的成本函数或误差。” 它使模型能够沿着梯度或方向减少误差,从而达到最小的可能误差。这里的方向指的是模型参数应该如何被修正以进一步降低成本函数。你的模型在不同点处的误差可能不同,你需要找到最快的减少误差的方法,以防止资源浪费。 梯度下降是一个迭代过程,模型会逐渐收敛到最小值,如果模型在此点之后进一步迭代,则只会产生很少或零的损失变化。这一点称为收敛,此时误差最小,成本函数得到优化。 下面是线性回归中梯度下降的方程: ![]() 在梯度下降方程中,alpha 被称为学习率。此参数决定了您应该以多快的速度沿斜坡向下移动。对于较大的 alpha,步长较大;对于较小的 alpha 值,您需要采取较小的步长。 成本函数的类型成本函数的类型有很多,取决于具体问题。但主要有三种类型,如下所示:
1. 回归成本函数回归模型用于对连续变量进行预测,例如房价、天气预测、贷款预测等。当成本函数与回归一起使用时,它被称为“回归成本函数”。在这种情况下,成本函数根据距离计算误差,例如: 有三种常用的回归成本函数,如下所示: a. 平均误差 在这种类型的成本函数中,为每个训练数据计算误差,然后取所有误差值的平均值。 这是最简单的方法之一。 训练数据中出现的误差可能为负或正。在计算平均值时,它们可能会相互抵消,导致模型的平均误差为零,因此不建议将其用作模型的成本函数。 但是,它为回归模型的其他成本函数提供了一个基础。 b. 均方误差 (MSE) 均方误差是最常用的成本函数方法之一。它改进了平均误差成本函数的缺点,因为它计算实际值和预测值之间差值的平方。由于差值的平方,它避免了负误差的可能性。 计算 MSE 的公式如下: ![]() 均方误差也称为 L2 损失。 在 MSE 中,每个误差都进行了平方,这有助于减小与 MAE 相比的预测中的小偏差。但是,如果数据集中存在会产生更多预测错误的异常值,那么该误差的平方将使误差成倍增加。因此,我们可以说 MSE 对异常值的鲁棒性较差。 c. 平均绝对误差 (MAE) 平均绝对误差通过取实际值和预测值之间的绝对差值来克服平均误差成本函数的问题。 计算平均绝对误差的公式如下: ![]() 这意味着绝对误差成本函数也称为L1 损失。它不受噪声或异常值的影响,因此如果数据集中存在噪声或异常值,则可以获得更好的结果。 2. 二元分类成本函数分类模型用于对分类变量进行预测,例如预测 0 或 1、猫或狗等。在分类问题中使用的成本函数称为分类成本函数。但是,分类成本函数与回归成本函数不同。 交叉熵损失是分类中常用的损失函数之一。 二元成本函数是分类交叉熵的特殊情况,其中只有一个输出类别。例如,红蓝分类。 为了更好地理解,假设只有一个输出变量 Y: 二元分类中的误差计算为所有 N 个训练数据的交叉熵的平均值。这意味着: 3. 多类别分类成本函数多类别分类成本函数用于需要将实例分配给两个以上类别之一的分类问题。同样,与二元分类成本函数类似,交叉熵或分类交叉熵是常用的成本函数。 它的设计方式是,它可以用于目标值范围从 0 到 1、3、...、n 个类别的多类别分类。 在多类别分类问题中,交叉熵将生成一个分数,该分数总结了实际概率分布与预期概率分布之间的平均差异。 对于完美的交叉熵,当分数最小化时,其值应为零。 |
我们请求您订阅我们的新闻通讯以获取最新更新。