以下叙述并不严格,但比较好理解:
(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 )^2,用于线性回归
- 铰链损失 l(f(xi∣θ),yi)=max(0,1−f(xi∣θ)yi)l(f(xi∣θ),yi)=max(0,1−f(xi∣θ)yi),用于SVM
- 0/1 损失 l(f(xi∣θ),yi)=1⟺f(xi∣θ)=yil(f(xi∣θ),yi)=1⟺f(xi∣θ)=yi,用于理论分析和精度定义
(2)代价函数(Cost Function)
代价函数 通常更一般。它可能是训练集上的损失函数加上一些模型复杂性惩罚(正则化)的总和。例如:
-
均方误差 MSE(θ)=N1∑i=1N(f(xi∣θ)−yi)2MSE( theta)=N1∑i=1N(f(xi∣θ)−yi)2
-
SVM 代价函数 SVM(θ)=∥θ∥2+C∑i=1NξiSVM(θ)=∥θ∥2+C∑i=1Nξi(连接 ξiξi 与 CC 和训练集的附加约束)
(3)目标函数(Object Function)
目标函数是你在训练期间用于优化的任意函数的通用术语。例如,在最大似然方法中生成训练集的概率是一个定义明确的目标函数,但它不是损失函数也不是代价函数(但你可以定义一个等效的代价函数)。例如:
- 似然估计是一种目标函数,通常希望最大化似然
- 类型之间的散度可以是一个目标函数,但它几乎不是代价函数,除非你定义一些人为的东西,比如 1-Divergence,并将其命名为代价。
长话短说: 损失函数 是 代价函数 的一部分,而 代价函数 是 目标函数的一种。