zoukankan      html  css  js  c++  java
  • 机器学习中的目标函数、损失函数、代价函数

    结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(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是对数据集整体的误差描述,是对数据的误差取平均得到的。

     

  • 相关阅读:
    数制转换
    禁止用户复制网页的内容
    TdxDBTreeView的节点移动排序
    cxgrid根据字段设置颜色
    获取用户IP
    在sql server中用存储过程发送邮件
    Delphi的DTS编程
    使年份适用于做有浏览器(IE和FireFox)
    用Delphi写扬声器音乐
    过滤字符串中的HTML代码(VBScript)
  • 原文地址:https://www.cnblogs.com/renwjing/p/11688858.html
Copyright © 2011-2022 走看看