机器学习中的目标函数、损失函数、代价函数有什么区别? - 知乎

标签: | 发表时间:2018-04-29 10:32 | 作者:
出处:https://www.zhihu.com

谢谢评论区 @阿萨姆老师的建议,完善下答案:

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

举个例子解释一下:(图片来自Andrew Ng Machine Learning公开课视频)


上面三个图的函数依次为 f_{1}(x), f_{2}(x), f_{3}(x)。我们是想用这三个函数分别来拟合Price,Price的真实值记为 Y

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

L(Y,f(X)) = (Y-f(X))^2,这个函数就称为损失函数(loss function),或者叫代价函数(cost function)。损失函数 越小,就代表模型 拟合的越好

那是不是我们的目标就只是让loss function越小越好呢?还不是。

这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的 (X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集, f(X)关于训练集的 平均损失称作经验风险(empirical risk),即 \frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i})),所以我们的目标就是最小化 \frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i})),称为 经验风险最小化

到这里完了吗?还没有。

如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的 f_3(x)的经验风险函数最小了,因为它对历史的数据拟合的最好嘛。但是我们从图上来看 f_3(x)肯定不是最好的,因为它 过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。

为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让 结构风险最小化。这个时候就定义了一个函数 J(f),这个函数专门用来度量 模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有 L_1, L_2范数。

到这一步我们就可以说我们最终的优化函数是: min\frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i}))+\lambda J(f),即最优化经验风险和结构风险,而这个函数就被称为 目标函数

结合上面的例子来分析:最左面的 f_1(x)结构风险最小(模型结构最简单),但是经验风险最大(对历史数据拟合的最差);最右面的 f_3(x)经验风险最小(对历史数据拟合的最好),但是结构风险最大(模型结构最复杂);而 f_2(x)达到了二者的良好 平衡,最适合用来预测未知数据集。

以上的理解基于Coursera上Andrew Ng的公开课和李航的《统计学习方法》,如有理解错误,欢迎大家指正。

相关 [机器学习 目标 函数] 推荐:

机器学习中的目标函数、损失函数、代价函数有什么区别? - 知乎

- -
@阿萨姆老师的建议,完善下答案:. 首先给出结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function). 举个例子解释一下:(图片来自Andrew Ng Machine Learning公开课视频). 我们是想用这三个函数分别来拟合Price,Price的真实值记为.

机器学习实践系列之5 - 目标跟踪 - 跟随技术的脚步-linolzhang的专栏 - CSDN博客

- -
目标跟踪(Object Tracking),很多专业人士都不陌生,它是计算机视觉里面 用于视频分析的一个很大的分类,就像目标检测一样,是视频分析算法的底层支撑.        目标跟踪的算法有很多,像 Mean-Shift、光流法、粒子滤波、卡尔曼滤波等 传统方法,也有 TLD、CT、Struct、KCF 等掺杂了某些 “外力”,不那么纯粹的方法.

机器学习五步走

- - 我爱机器学习
经常会有人问“我该如何在机器学习方面更进一步,我不知道我接下来要学什么了. 一般我都会给出继续钻研教科书的答案. 每当这时候我都会收到一种大惑不解的表情. 但是进步确实就是持续的练习,保持较强的求知欲,并尽你可能的完成具有挑战性的工作. 因为他是为数不多的几种可以让你真真让你获取坚实知识的媒介. 是的,你可以选择选一门课,注册MOOC,参加一些讨论班.

机器学习之路

- - 我爱机器学习
自从答应简二毛博士将自己的机器学习历程和心得分享给大家至今,转眼间半年已经过去了,感谢简博士分享和开源精神的鼓舞,这也正是本系列关于机器学习介绍博客的动力来源. 之前有些网友,师弟们问我,学习机器学习怎么入手,从看什么书开始. 如果你只愿意看一本书,那么推荐Bishop的PRML,全名Pattern Recognition and Machine Learning. 这本书是机器学习的圣经之作,尤其对于贝叶斯方法,介绍非常完善.

机器学习算法Boosting

- - 标点符
机器学习通常会被分为2大类:监督学习和非监督学习. 在监督学习中,训练数据由输入和期望的输出组成,然后对非训练数据进行预测输出,也就是找出输入x与输出y之间的函数关系F:y = F(x). 根据输出的精确特性又可以分为分类和回归. 分类和回归的区别在于输出变量的类型. 定量输出称为回归,或者说是连续变量预测.

Mahout实现的机器学习算法

- - ITeye博客
使用命令:mahout -h.   在Mahout实现的机器学习算法见下表:. EM聚类(期望最大化聚类). 并行FP Growth算法. 并行化了Watchmaker框架. 非Map-Reduce算法. 扩展了java的Collections类. Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能.

国内的机器学习几个人

- - 丕子
转: http://blog.csdn.net/playoffs/article/details/7588597. 推荐几个机器学习和数据挖掘领域相关的中国大牛:. 李航:http://research.microsoft.com/en-us/people/hangli/,是MSRA Web Search and Mining Group高级研究员和主管,主要研究领域是信息检索,自然语言处理和统计学习.

Apache Mahout 0.8 发布,机器学习库

- - 开源中国社区最新新闻
Apache Mahout 0.8 发布了,Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费使用. 该项目已经发展到了它的最二个年头,目前只有一个公共发行版.

Ruby的机器学习项目

- - 阳志平的网志-技术类
作者是辉瑞公司的小牛,可惜烂尾了. 我在改啊改啊,可惜现在是商业项目,暂时不能放出改掉的部分. 对了,顺便做个小广告,去年组织翻译的一本小书:社会网络分析:方法与实践. 已经上市了,感兴趣的可以翻翻:. 社会网络分析:探索关系背后的科学与技术. treat:自然语言处理. 类似于igraph,也是桥接处理nlp.

机器学习该如何入门

- - CSDN博客综合推荐文章
  对于这个问题的解释,说实话我很有压力,因为在分享篇文章之前就有朋友告诉我,这个百度上一搜一大片,还需要你讲吗. 正如同一千个读者眼里有一千个林黛玉一样,我解释的当然是我个人自从读研到工作这么多年对机器学习的学习到应用过程的独特见解.   首先我们看下图了解一下机器学习在AI(Artificial Intelligence 人工智能)领域的地位.