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

深入理解机器学习中的:目标函数,损失函数和代价函数「建议收藏」参考知乎回答整理: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)
blank

相关推荐

  • 怎么安装pycharm及环境变量配置_JRE环境配置

    怎么安装pycharm及环境变量配置_JRE环境配置pycharm安装以及其环境的配置说明此次我们使用win10系统安装pycharm的64位社区版,并且对Anaconda3中自带的Python3进行环境的配置,如果您没有Anaconda3甚至是没有Python3环境,可以参考Anaconda3安装教程及说明,如果您的pip源未更改,这里推荐您改为使用国内的pip源,这样可以更快的下载组件,方法见修改pip源至国内镜像网站。教程从开始菜单中找到你的AnacondaPrompt并打开…

  • webpack配置文件_reconfig

    webpack配置文件_reconfig前言上一篇文章我们使用webpack打包成功了,但是每次都要自己手动输入打包的文件地址和打包到哪里去的地址,非常麻烦,所以这里介绍使用配置文件进行打包webpack.config.js首先我们创

  • 性能调优从哪几个方面入手_cbq是什么意思

    性能调优从哪几个方面入手_cbq是什么意思看了很多的帖子发现很多人都在论坛里写到说CBQ也就是用tc对宽带限速效果不好的论点,其实不是这样的,在后面我们会说到这方面问题怎样解决,但是现在我们还是说点基础知识吧!在对网络宽带进行控制的时候我们通常的选择有两种:CBQ和HTB。

    2022年10月28日
  • HBase面试题总结1「建议收藏」

    HBase面试题总结1「建议收藏」hbase的特点是什么??1)hbase是一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper管理。2)hbase适合存储半结构化和非结构化数据,对于结构化数据字段不够确定或者杂乱无章很难按一个概念去抽取数据;3)hbase为空的纪录不会被存储;4)基于的表包含rowkey,时间戳,列族,新写入数据时,时间戳更新,同时可以查询到以前的版本;5)hbase是…

  • java工程师需要掌握的技能_java软件工程师需要学什么

    java工程师需要掌握的技能_java软件工程师需要学什么关于项目经验关于专业技能1、基本语法static、final、transient等关键字的作用foreach循环的原理等等static:1.静态变量2.静态方法3.静态代码块final:1.修饰类的属性,作用:修饰静态变量不可变,不建议修饰实例变量2.修饰类的方法,作用:可以被继承,但不能重写3.修饰类,作用

  • 40个Unity游戏开发小阴招

    40个Unity游戏开发小阴招Unity游戏开发小技巧集结,不用谢我,我只是大自然的搬运工。借助Prefab暂存数据。可以直接在脚本的Inspector上填写,然后把整个GameObject拖成Prefab暂存。等要用的时候再拖出来。 DontDestroy模式,在跨场景的时候保持某些对象一直存在,不必要每次都重新加载,譬如显示广告的模块。 内置的Awake,Start,Update,FixedUpdate,LateUpdate函数,令开发者直接往游戏循环里加内容,非常方便快捷。 Input.MouseD.

    2022年10月24日

发表回复

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

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