代价函数(Cost Function)吴恩达老师课程笔记

代价函数公式

        为了实现线性回归,第一个关键步骤是定义一个叫做代价函数的东西,成本函数会告诉我们这个模型做的怎么样,以便我们更好的去改进模型。

        下面是上一篇中用到的例子,我们使用的模型是线性回归模型f_{w,b}(x)=wx+b,w和b叫做参数(parameter),有时候我们也叫它们权重(weight)或者系数(coefficient),在机器学习中,我们可以调整参数来改进模型。

        在建立一个线性回归模型的时候,我们要做的事情就是找到合适的w和b,从而使得f可以很好的拟合数据,比如下面这样

        假如我们暂时选择了上面那条直线作为线性回归模型,对于训练集中的第i个训练样本(x^{(i)},y^{(i)})来说,预测得到的值y\hat{}=wx^{i}+b,那现在的问题就是怎样找到w和b使得大部分的y\hat{}y都接近。 

        要回答上面的问题,我们应该先看一看如何衡量一条线与训练集的拟合程度,为了达到这个小目标,我们得构造一个代价函数(Cost Function) ,代价函数会预测y\hat{},并且用它减去y,y\hat{}-y被叫做误差(error),我们是通过距离来衡量的,所以应该要计算误差的平方(y\hat{}^{(i)}-y^{i})^{2},接下来要将所有的误差整合起来,从1到m对误差进行求和(就不打公式了,不知道为什么csdn打不出这个),求和之后,数据越多代价函数值就越大?这显然不合理,所以我们又给和除以m,最后就是这样

        但是事实上为了后续计算更加方便,这个代价函数还要除以2,我们也叫它平方误差代价函数,我们做出代价函数是为了找出使代价函数减小的w和b。

        在机器学习中,不同的人在不同的场景会使用不同的代价函数,但是平方误差代价函数是迄今为止对线性回归最通用的代价函数。

理解代价函数

        学习了代价函数的数学定义,现在让我们来更直观的看代价函数。来以一个很简单的模型为例:f_{w}=wx,那么参数为w,代价函数为

        我们要做的就是找到一个使J最小的w值,下面这个例子中,训练集为(1,1),(2,2),(3,3),当m=1时,我们可以计算得(x^{(1)},y\hat{}^{(1)})=(1,1),(x^{(2)},y\hat{}^{(2)})=(2,2),(x^{(3)},y\hat{}^{(3)})=(3,3),那么J(1)=\frac{1}{2*3}(0+0+1)=0

        当w=0.5时,我们可以计算的(x^{(1)},y\hat{}^{(1)})=(1,0.5),(x^{(2)},y\hat{}^{(2)})=(2,1),(x^{(3)},y\hat{}^{(3)})=(3,1.5),按照同样的方式计算J(0.5)大约等于0.58

        当m=0的时候,按照上面的方式算得J(0)约等于2.3

         最终我们得到J(w)随m变化得图象是这样的,当然这是一个理想的简化的例子,但是这可以让我们更好的理解代价函数,所以线性回归就是要找到能使J最小的w或者w,b

可视化代价函数

        上面我们是做了一个简单的例子(b=0),接下来,我们让b不等于0来看看效果,上面是一个二次函数的样子,这里就不难联想到三维应该是类似于一个碗的样子,我们要找一个最好的w和b,就是要找这个“碗”的底。

总结

        这一篇里我们学了怎么去衡量一个回归模型的好坏,以及怎么通过参数改进模型,应该理解并记住的是代价函数的公式,还有就是知道代价函数大概是长什么的,相信会对后面的学习有所帮助。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值