1. 引言

在机器学习中,cost(代价)loss(损失)objective function(目标函数) 是常被提及的术语。虽然它们经常被混用,但在某些语境下有细微区别:

  • Loss Function:衡量模型对单个样本的预测误差。
  • Cost Function:衡量模型在多个样本(如训练集、验证集)上的平均误差。
  • Objective Function:我们在训练过程中实际优化的目标函数,通常包括 cost 和正则化项。

理解这三者的区别有助于我们更准确地评估模型表现、设计训练策略。


2. 损失函数(Loss Function)

Loss Function 的作用是衡量模型对单个样本的预测误差。

例如在回归任务中,常见的损失函数包括:

  • 平方损失(Squared Loss): $$ L_{\text{square}}(\hat{y}, y) = (\hat{y} - y)^2 $$
  • 绝对损失(Absolute Loss): $$ L_{\text{abs}}(\hat{y}, y) = |\hat{y} - y| $$

2.1 示例:房价预测中的损失计算

假设我们预测某套房子价格为 110 千美元,实际售价为 105 千美元

  • 平方损失: $$ L_{\text{square}}(110, 105) = (110 - 105)^2 = 25 $$

  • 绝对损失: $$ L_{\text{abs}}(110, 105) = |110 - 105| = 5 $$

注意:选择哪种损失函数取决于任务需求和数据分布,比如平方损失对异常值更敏感。


3. 代价函数(Cost Function)

Cost Function 是 loss 的聚合(如平均、中位数等),用于衡量模型在整个数据集上的表现。

一般形式为:

$$ \text{Cost}(f, \mathcal{D}) = \frac{1}{n} \sum_{i=1}^{n} L(\hat{y}_i, y_i) $$

其中:

  • $ f $:模型
  • $ \mathcal{D} $:数据集
  • $ n $:样本数量

3.1 示例:平均平方损失作为代价函数

假设有如下四套房子的预测与实际价格:

房间数 面积(m²) 楼层 小区 实际价格 预测价格
4 70 1 A 105 104.5
2 50 2 A 83 91
1 30 5 B 50 65.3
5 90 2 A 200 114

平均平方损失为:

$$ \frac{(104.5 - 105)^2 + (91 - 83)^2 + (65.3 - 50)^2 + (114 - 200)^2}{4} = 1923.585 $$

3.2 其他代价函数变体

  • RMSE(均方根误差):平方损失的均值开平方,单位与目标一致: $$ \text{RMSE} = \sqrt{\text{MSE}} = \sqrt{1923.585} \approx 43.86 $$

  • MAE(平均绝对误差): $$ \text{MAE} = \frac{1}{n} \sum |\hat{y}_i - y_i| = 27.45 $$

小技巧:Loss 是“孤独的”(单个样本),Cost 是“群体的”(多个样本)。


4. 目标函数(Objective Function)

Objective Function 是我们在训练过程中优化的目标,通常由 cost 和正则化项组成。

一般形式为:

$$ J(f, \mathcal{D}) = \text{Cost}(f, \mathcal{D}) + \text{Regularizer}(f) $$

目的是在拟合训练数据的同时防止过拟合。

4.1 示例:线性回归中的目标函数

以线性回归为例,模型为:

$$ f(\mathbf{x}) = \sum_{j=0}^d \theta_j x_j $$

使用平方损失作为 cost 函数:

$$ \text{Cost} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$

加入 L2 正则化项(岭回归):

$$ J = \frac{1}{2n} \sum_{i=1}^{n} (y_i - \hat{y}i)^2 + \frac{\lambda}{2} \sum{j=1}^{d} \theta_j^2 $$

4.2 示例计算

继续使用前面的房价预测数据,假设参数为:

$$ \theta_0 = 50,\ \theta_1 = 5,\ \theta_2 = 0.2,\ \theta_3 = 0.5,\ \theta_4 = 20 $$

预测结果与前文一致,cost 已知为 1923.585

加入 L2 正则化项(假设 $\lambda = 0.5$):

$$ \text{Regularizer} = 0.5 \cdot (50^2 + 5^2 + 0.2^2 + 0.5^2 + 20^2) = 1462.645 $$

目标函数值为:

$$ J = 1923.585 + 1462.645 = 3386.23 $$

⚠️ 注意:目标函数的数值本身没有直观意义,主要用于优化过程中的比较。


5. 总结

术语 含义 用途
Loss Function 单个样本的预测误差 构建 cost 函数的基础
Cost Function 多个样本的平均误差 评估模型性能、用于训练
Objective Function 包含 cost 和正则化的训练目标 实际优化的目标

一句话总结

  • Loss 是“个体误差”,
  • Cost 是“群体误差”,
  • Objective Function 是“带约束的训练目标”。

理解这三者有助于我们在建模过程中更精准地设计训练策略、评估模型性能,避免“踩坑”。


原始标题:Difference Between the Cost, Loss, and the Objective Function