机器学习中的目标函数、损失函数、代价函数

结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function)。  

Loss function 损失函数是定义在单个样本上,算的是一个样本的误差。

Cost function 代价函数是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

Object function 目标函数定义为:Cost function+正则化项


      for example

  上面三个图的函数分别为f1(x)  f2(x)  f3(x)。用这三个函数来分别拟合Price,Price的真实值记为Y。

     给定x,三个函数都会输出一个f(X),这个输出的f(X)与真实值Y可能是相同的,也可能是不同的,为了表示拟合的好坏,我们用一个函数来度量拟合的程度:损失函数。

          L(Y,f(X))=(Y-f(X))2,这个函数是损失函数(loss function),或者叫代价函数(cost function)。损失函数越小,拟合函数越好。

      那是不是目标函数需要让cost function越小越好呢?肯定不是

    加入一个新的概念:风险函数(risk function)。风险函数是损失函数的期望,因为我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。

    f(X)关于训练集的平均损失称为经验风险(empirical risk),即,所以我们的目标就是最小化,称为经验风险最小化。

         那么是最右面的f3(x)的经验风险函数最小了,因为它的拟合度是最高的,但是f3(x)的函数过于复杂化(过拟合)。我们不仅要让经验风险最小化,还要让结构风险最小化。定义一个

         函数J(f)结构风险,专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization),常用的有L1,L2范数。

   所以我们最后优化的函数:即最优化经验风险和结构风险,这个函数为目标函数。

   结合上面的例子来说:f1(x)的结构风险最小(因为模型比较简单),但是经验风险太大;f3(x)的经验风险最小(对数据拟合效果好),但是结构风险太大;综合考虑f2(x)最适合用来

预测未知数据集。

在Ng的课程中,给出如下解释:

The loss function computes the error for a single training example.

The cost function is the average of the function of the entire training set.

       loss function 是单个样例的损失/误差;而cost function是对数据集整体的误差描述,是对数据的误差取平均得到的。

 

原文地址:https://www.cnblogs.com/renwjing/p/11688858.html