深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」参考知乎回答整理:https://www.zhihu.com/question/52398145主要参考:https://www.zhihu.com/question/52398145/answer/209358209基本概念:损失函数:计算的是一个样本的误差代价函数:是整个训练集上所有样本误差的平均目标函数:代价函数+正则化项实际应用:损失函数和代价函数是同一个东

大家好,又见面了,我是你们的朋友全栈君。

参考知乎回答整理:https://www.zhihu.com/question/52398145

主要参考:https://www.zhihu.com/question/52398145/answer/209358209

基本概念:

损失函数:计算的是一个样本的误差

代价函数:是整个训练集上所有样本误差的平均

目标函数:代价函数 + 正则化项

实际应用:

损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,举例说明:

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」

上面三个图的曲线函数依次为f1(x),f2(x),f3(x),我们想用这三个函数分别来拟合真实值Y。

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

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」

损失函数越小,就代表模型拟合的越好。那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集,f(X)关于训练集的平均损失称作经验风险(empirical risk),所以我们的目标就是最小化经验风险。

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」

到这里完了吗?还没有。

如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的f3(x)的经验风险函数最小了,因为它对历史的数据拟合的最好嘛。但是我们从图上来看它肯定不是最好的,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让结构风险最小化。

这个时候就定义了一个函数J(f),这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有L1, L2范数。到这一步我们就可以说我们最终的优化函数是: 

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」

即最优化经验风险和结构风险,而这个函数就被称为目标函数






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140508.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • leetcode-146. LRU 缓存机制(hash+双向链表)

    leetcode-146. LRU 缓存机制(hash+双向链表)运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久

  • 35道SpringBoot面试题及答案,面试常被问到「建议收藏」

    35道SpringBoot面试题及答案,面试常被问到「建议收藏」作者:Arain|来源于:程序员面试SpringBoot是微服务中最好的Java框架.我们建议你能够成为一名SpringBoot的专家。本文精选了三十五个常见的SpringBoot知识点,祝你一臂之力!问题一SpringBoot、SpringMVC和Spring有什么区别?1、SpringSpring最重要的特征是依赖注入。所有SpringM…

  • matlab里读取txt文件里指定列怎么办_matlab读取音频文件

    matlab里读取txt文件里指定列怎么办_matlab读取音频文件问题描述:想读取一个txt文本中的很多数据。数据之前有几行是中文,然后才是数据,如何用MATLAB读取txt文件中标识符所对应的列啊,多谢指教了!文件大概是这样的:你好欢迎来到…………sum1sum2sum3sum4111111111122222222223333333333444…

  • 消息是什么_消息和信息有什么区别

    消息是什么_消息和信息有什么区别Windows基于消息的模式:一旦程序启动,它只是简单地等待发送给它的消息,然后作出相应的响应。由Windows本身去检测是否有一个键被按下或是否有鼠标移动。当这类事件发生时,Windows

  • tomcat7官网下载

    tomcat7官网下载1.官网地址:tomcat.apache.org,进入后点击Tomcat72.选择不同的类型,以“64-bitWindowszip”为例3.保存文件,确定4.解压后,进入bin目录,双击startup.bat,出现下图5.打开浏览器,输入127.0.0.1:8080,出现下图,安装成功转载于:https://my.oschina.net/u/4052883/blog/29915522…

  • java正则表达式验证手机号码_java邮箱判断合法正则表达式

    java正则表达式验证手机号码_java邮箱判断合法正则表达式java手机号正则表达式目前是截止2019年6月最新,适配各种手机号,满足常见号码验证importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.lang3.StringUtils;/***@authorkpzc*三大运营商号码均可验证(不含卫星通信1349)*/publicclassmobile{/*<br>     2019

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号