机器学习系列2:代价函数

未命名图片.png

现在我有一些数据集,就像上图中的叉。那么我想通过一个一次函数也叫线性回归函数(一条直线)去拟合这些数据,一次函数在没有确定之前,应该是这个样子的:

未命名图片.png

其中 θ0 和 θ1 都是未知量。现在关键就是如何求 θ0 和 θ1 这两个参数。θ0 和 θ1 可以取任意值,怎么取值才能让这条直线最佳地拟合这些数据呢?这就是代价函数登场的时刻了。

未命名图片.png

这就是一次函数的代价函数 J(θ0, θ1)。看到这个复杂的函数有没有头很晕的感觉呢?如果晕,没关系,让我们一步步来分析这个函数。判断拟合的这个函数是否准确就是判断通过这个函数的出来的结果与实际结果有多大的误差:

未命名图片.png

i 为第 i 个数据,上式表示我通过拟合函数 hθ(x) 得到的第 i 个数据与真实的第 i 个数据的误差。总共有 m 个数据,那么我们就应该把 m 个数据的误差求和然后再求出平均误差,得到下面这个式子。

未命名图片.png

只要我让这个值尽可能的小,我所做的拟合函数就越准确,那么刚才求拟合函数的问题就转化成了通过 θ0 和 θ1 求 J(θ0, θ1) 的最小值。

 

为了说明代价函数是如何进行工作的,现在我们来简化一下问题,让 θ0=0,这样我们要求的拟合函数就是一条过原点的直线,参数就剩下一个 θ1,θ1 代表直线的斜率。如下图所示,我想要拟合左图中的 3 个点,我就要取不同的参数 θ1 进行尝试,θ1 取值不同,直线的颜色不同。这里 θ1 分别取 0, 0.5, 1,直线的颜色分别为深蓝、紫色和浅蓝色。如何确定哪条直线拟合的最好呢,我们就要把 θ1 的不同取值带入到代价函数 J(θ1) 中(右图)。这里我们就发现,当 θ1=1 时,代价函数值最小为 0,那么我们就找到了拟合函数 hθ(x)= θ1x 的最佳参数 θ1=1。

未命名图片.png

 

如果有两个参数 θ0 和 θ1,那么他们的代价函数图像就是这样。

未命名图片.png

用轮廓图画出来的话就是这样(轮廓图类似于等高线图)

未命名图片.png

 

那么现在关键的问题来了,我个人比较懒,不希望每次都要我亲自处理这些数据,从代价函数图中找到最小值所在的点。有没有一种算法可以自动地求出使得代价函数最小的点呢?有,那就是梯度下降。在这里先卖个关子,梯度下降算法我下次再介绍。

 

ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。如果想要一起学习机器学习,可以关注微信公众号「SuperFeng」,期待与你的相遇。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值