以下叙述并不严格,但比较好理解:

(1)损失函数(Loss Function)

损失函数通常是定义在单一数据点、预测和标签上的函数,用于为衡量惩罚。例如:

  • 平方损失 l(f(xiθ),yi)=(f(xiθ)yi)2l(f(x_i|\theta),y_i) = \left (f(x_i|\theta)-y_i \right )^2l(f(x_i|\theta),y_i) = \ left (f(x_i|\theta)-y_i \right )^2,用于线性回归
  • 铰链损失 l(f(xiθ),yi)=max(0,1f(xiθ)yi)l(f(x_i|\theta), y_i) = \max(0, 1-f(x_i|\theta)y_i)l(f(xiθ),yi)=max(0,1f(xiθ)yi)l(f(x_i|\theta), y_i) = \max (0, 1-f(x_i|\theta)y_i),用于SVM
  • 0/1 损失 l(f(xiθ),yi)=1    f(xiθ)yil(f(x_i|\theta), y_i) = 1 \iff f(x_i|\theta) \neq y_il(f(xiθ),yi)=1    f(xiθ)yil(f(x_i|\theta), y_i) = 1 \iff f(x_i|\theta) \neq y_i,用于理论分析和精度定义

(2)代价函数(Cost Function)

代价函数 通常更一般。它可能是训练集上的损失函数加上一些模型复杂性惩罚(正则化)的总和。例如:

  • 均方误差 MSE(θ)=1Ni=1N(f(xiθ)yi)2MSE(\theta) = \frac{1}{N} \sum_{i=1}^N \left (f(x_i|\theta)-y_i \right )^2MSE( theta)=1Ni=1N(f(xiθ)yi)2MSE(\ theta) = \frac{1}{N} \sum_{i=1}^N \left (f(x_i|\theta)-y_i \right )^2

  • SVM 代价函数 SVM(θ)=θ2+Ci=1NξiSVM(\theta) = \|\theta\|^2 + C \sum_{i=1}^N \xi_iSVM(θ)=θ2+Ci=1NξiSVM(\theta) = \|\theta\|^2 + C \sum_{i=1}^N \xi_i(连接 ξi\xi_iξi\xi_iCCCC 和训练集的附加约束)

    (3)目标函数(Object Function)

目标函数是你在训练期间用于优化的任意函数的通用术语。例如,在最大似然方法中生成训练集的概率是一个定义明确的目标函数,但它不是损失函数也不是代价函数(但你可以定义一个等效的代价函数)。例如:

  • 似然估计是一种目标函数,通常希望最大化似然
  • 类型之间的散度可以是一个目标函数,但它几乎不是代价函数,除非你定义一些人为的东西,比如 1-Divergence,并将其命名为代价。

长话短说: 损失函数代价函数 的一部分,而 代价函数目标函数的一种。