【转载】理解代价函数
【转载】理解代价函数
1、代价函数是什么?
代价函数就是用于找到最优解的目的函数,这也是代价函数的作用。
损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
2、代价函数作用原理
对于回归问题,我们需要求出代价函数来求解最优解,常用的是平方误差代价函数。
比如,对于下面的假设函数:
里面有 θ0 和 θ1 两个参数,参数的改变将会导致假设函数的变化,比如:
现实的例子中,数据会以很多点的形式给我们,我们想要解决回归问题,就需要将这些点拟合成一条直线,找到最优的 θ0 和 θ1 来使这条直线更能代表所有数据。
而如何找到最优解呢,就需要使用代价函数来求解了,以平方误差代价函数为例。
从最简单的单一参数来看,假设函数为:
平方误差代价函数的主要思想就是将实际数据给出的值与我们拟合出的线的对应值做差,求出我们拟合出的直线与实际的差距。
为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。
这样,就产生了代价函数:
而最优解即为代价函数的最小值,根据以上公式多次计算可得到代价函数的图像:
解(求导):可以看到该代价函数的确有最小值,这里恰好是横坐标为 1 的时候。
如果更多参数的话,就会更为复杂,两个参数的时候就已经是三维图像:
高度即为代价函数的值,可以看到它仍然有着最小值的,而到达更多的参数的时候就无法像这样可视化了,但是原理都是相似的。
因此,对于回归问题,我们就可以归结为得到代价函数的最小值:
3、为什么代价函数是这个?
首先思考:什么是代价?
简单理解代价就是预测值和实际值之间的差距(两点之间的距离),那对于多个样本来说,就是差距之和。
代价的正负问题:
如果直接使用,这个公式看起来就是表示假设值和实际值之差,再将每一个样本的这个差值加起来不就是代价了吗,但是想一下,如果使用这个公式,那么就单个样本而言,代价有正有负,全部样本的代价加起来有可能正负相抵,所以这并不是一个合适的代价函数。使用绝对值函数来表示代价,为了方便计算最小代价(计算最小代价可能用到最小二乘法),直接使用平方来衡量代价,即使用绝对值的平方来表示单个样本的代价,解决有正有负的问题。
【转载】理解代价函数相关推荐
- [转载] 理解RESTful架构
原文: http://www.ruanyifeng.com/blog/2011/09/restful.html 理解RESTful架构 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意 ...
- [转载]理解OAuth 2.0
原文地址:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 理解OAuth 2.0 作者: 阮一峰 OAuth是一个关于授权(authoriz ...
- 学习Javascript闭包(Closure)(转载+理解心得)
以前看了闭包的文章,感觉都没有这次理解的深刻,主要是说到了把"局部函数返回给了全局变量",而根据我的理解,全局变量是在内存里专门分配了一块. 从程序开始直到结束一直存在的,所以闭包 ...
- [转载]理解PYTHON中的装饰器
[翻译]理解PYTHON中的装饰器 来源stackoverflow上的问题 链接 python的函数是对象 要理解装饰器,首先,你必须明白,在python中,函数是对象. 这很重要. 简单例子来理解为 ...
- linux内存机制的virt,关于linux:转载理解virt-res-shr之间的关系
想必在linux上写过程序的同学都有剖析过程占用多少内存的经验,或者被问到这样的问题--你的程序在运行时占用了多少内存(物理内存)?通常咱们能够通过top命令查看过程占用了多少内存.这里咱们能够看到V ...
- 2. 代价函数与梯度下降
2.1模型描述 **预测房价问题** 以之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示: 我们将要用来描述这个回归问题的标记如下: m 代表训练集中实例的数量 ...
- 第1周 - 课程材料
This week, we introduce the core idea of teaching a computer to learn concepts using data(用数据教电脑学习概念 ...
- 深度学习之反向传播算法
深度学习之反向传播算法 直观理解反向传播 反向传播算法是用来求那个复杂到爆的梯度的. 上一集中提到一点,13000维的梯度向量是难以想象的.换个思路,梯度向量每一项的大小,是在说代价函数对每个参数有多 ...
- 深度学习入门笔记系列 ( 二 )——基于 tensorflow 的一些深度学习基础知识
本系列将分为 8 篇 .今天是第二篇 .主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 . 1.Tensor .Flow .Session .Graphs TensorFlo ...
最新文章
- centos7安装tomcat8.5
- NYOJ 685 查找字符串(map)
- vb.net2019- 机器学习ml.net情绪分析(1)
- 大数据 就业 缺口_大数据人才缺口大!乌兰察布从政策激励等方面吸引人才
- Error:Could not find appcompat-v7.aar (com.android.support:appcompat-v7:26.1.0). Searched in the fol
- 现在很多人都在网上找富业
- shell学习之创建函数
- Eclipse修改代码字体
- vba 数组填充单元格
- ubuntu18.04安装微信、QQ、百度网盘
- 微信表白神秘代码!快发给ta!(学习资料)
- tmap | 制作地图动画、放大局部区域
- 互联网思考悲伤之后 如何重新定位移动互联网方向
- 益聚星荣:核心数据持续上扬,亏损持续扩大,我们究竟该如何看待B站?
- 百度云不限速-proxyee-down
- h5拨打电话 写法IOS无效
- 好看的微信忧心文案小程序源码 文案+头像+背景图
- C语言单元测试框架——CUnit
- thinkphp使用阿里大鱼短信接口
- python django考勤签到系统
热门文章
- macpro如何清理磁盘空间_Mac磁盘空间不足怎么办?苹果电脑磁盘空间清理方法
- unity中实现镜子效果
- 仿写微博 按照时间顺序发表内容
- Xcode上传appstore 出现 Found an unexpected Mach-O header code: 0x72613c21 错误
- MongoDB error processing document #2: invalid character ',' looking for beginning of value
- dpdk编译安装igb_uio报错 insmod: ERROR: could not insert module igb_uio.ko: File exists 问题
- 拼多多多多进宝怎么删除商品?四川万顿思
- QT配置Eigen库
- 进化计算(四)——NSGA/NSGA II算法详解
- [ZT]:自己动手提高ubuntu性能