【漫话机器学习系列】093.代价函数和损失函数(CostandLossFunctions)
- 其他
- 2025-09-06 14:36:03

代价函数和损失函数(Cost and Loss Functions)详解 1. 引言
在机器学习和深度学习领域,代价函数(Cost Function)和损失函数(Loss Function)是核心概念,它们决定了模型的优化方向。在训练过程中,我们希望找到一个最优的模型参数,使得预测误差最小,而这个优化过程正是通过最小化代价函数或损失函数来完成的。
在这篇文章中,我们将深入探讨代价函数和损失函数的概念、数学定义、常见类型、优化方法及其在实际应用中的重要性。
2. 代价函数和损失函数的概念
从概念上来说,损失函数(Loss Function)和代价函数(Cost Function)有细微的区别:
损失函数(Loss Function):用于衡量单个样本的预测误差,即单个数据点的误差大小。代价函数(Cost Function):用于衡量整个数据集的平均误差,即所有样本的损失函数的平均值或总和。从数学上看,假设有 m 个训练样本,每个样本的损失函数为 ,那么代价函数可以定义为:
其中:
是代价函数,表示整个数据集的平均损失; 是损失函数,计算单个样本的误差;θ 是模型的参数; 是真实值, 是模型预测值;m 是训练样本的数量。简单来说,损失函数是针对单个样本的误差计算,而代价函数是所有样本损失的平均或总和。
3. 常见的损失函数和代价函数
不同类型的任务需要不同的损失函数,常见的损失函数可以分为回归问题和分类问题两大类。
3.1 回归问题中的损失函数回归问题的目标是预测一个连续值,常见的损失函数包括:
(1)均方误差(Mean Squared Error, MSE)
计算真实值和预测值的平方误差,并取均值。优点:对较大误差有较强的惩罚作用,有助于优化。缺点:对异常值(outliers)较敏感,因为平方操作会放大大误差的影响。(2)均方根误差(Root Mean Squared Error, RMSE)
RMSE 是 MSE 的平方根,使得误差的单位与目标值相同,便于解释。(3)平均绝对误差(Mean Absolute Error, MAE)
计算真实值与预测值的绝对误差,并取均值。优点:对异常值不敏感。缺点:损失函数不可微分(在 0 点处),可能会影响梯度下降优化。(4)Huber 损失
结合了 MSE 和 MAE 的优点,对小误差使用 MSE,对大误差使用 MAE,减少对异常值的敏感性。3.2 分类问题中的损失函数
分类问题的目标是预测一个类别标签,常见的损失函数包括:
(1)交叉熵损失(Cross Entropy Loss)
对于二分类问题(如 0/1 预测),交叉熵损失定义为:
作用:衡量真实类别分布和预测类别分布之间的差距。优点:适用于概率预测问题,能有效地推动模型进行优化。对于多分类问题(Softmax 作为输出层),交叉熵损失可扩展为:
其中 k 是类别数。
(2)Hinge 损失(用于 SVM)
适用于 SVM(支持向量机),鼓励正确分类的样本有较大的分类边界。4. 代价函数的优化
在训练机器学习模型时,我们的目标是最小化代价函数,从而找到最优的模型参数 θ。
4.1 梯度下降(Gradient Descent) 计算代价函数对模型参数的梯度,然后更新参数:其中 α 是学习率。
4.2 Adam 优化器 结合了动量(Momentum)和RMSProp的优点,能够自适应调整学习率,提高收敛速度。 4.3 牛顿法 适用于二阶可微的代价函数,计算 Hessian 矩阵来进行优化,但计算代价较大。5. 结论 损失函数衡量单个样本的误差,代价函数是所有样本损失的平均值。不同任务(回归 vs 分类)有不同的损失函数,选择合适的损失函数对模型的效果至关重要。最小化代价函数是训练机器学习模型的核心目标,优化方法包括梯度下降、Adam 等。
理解并正确使用损失函数和代价函数,是训练高效、稳定模型的关键。
【漫话机器学习系列】093.代价函数和损失函数(CostandLossFunctions)由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【漫话机器学习系列】093.代价函数和损失函数(CostandLossFunctions)”
上一篇
BMS项目-面试及答疑整理
下一篇
华三交换机-链路聚合配置案例