吴恩达机器学习笔记(1.单变量线性回归)

 

         吴恩达老师的机器学习第一章节的内容是初识机器学习,主要讲解了一些机械学习大名词,什么是机器学习之类的,因为我估计大家都有所了解,所以咱们这里就不再啰嗦,我们直接在第二章开始。也就是单变量线性回归

1,模型描述

下面是一组数据 ,横坐标是房屋的尺寸,纵坐标是房屋的价格。每一个点都代表是不同屋子的价格。如果我们想预测一所屋子的价格就可以对数据进行模型的拟合。根据给出的数据集,我们大概可以画出一个大概的曲线,这个曲线就可以预测房价的趋势。像这样的你知道准确答案的数据集,来拟合曲线就是监督学习。同理,如果不给出标准答案的就是非监督学习,这个我们在后面介绍。这是监督学习中的一个问题叫做回归问题,回归的意思是:我们根据之前的数据预测出一个准确的输出值,对于这个例子就是房屋的价格,同时,还有另一种最常见的监督学习方式,叫做分类问题,当我们想要预测离散的输出值,比如预测肿瘤是否是良性,预测股价是上涨还是下跌,这个在监督学习中称为分类问题。所以我们说,在监督学习中我们有一个数据集,这个数据集被称训练集。在课程中我们使用m作为训练样本的数量。

 由此,我们可以先根据得到的信息建立数据集:

m:表示训练集中的训练样本的数量

x:代表输入变量,也就是数据的特征

y:代表输出变量,也就是数据的目标变量,也是训练时候的答案

x^{i}, y^{i} :代表第i个样本实例

h:代表问题的解决算法,也就是函数。通俗的说就是建立一个函数,使得输入变量之后,得到的结果和目标变量一致,或者         误差尽可能的减小。

这个算法的整体工作流程就是这样,在监督学习中,首先获得一个数据集,数据集有特征也就是输入变量(自变量)在本案例中就是房屋的面积,建立一个假设或者叫函数,我们成为一个操作,将之前的数据集,都输入到这个操作中,对这个操作进行训练,等训练完成之后,将要预测的输入变量输入操作之后,输出一个值,这个值就是你要预测的结果。

如果我们将这个操作或者称为假设或者函数,表达为 h_\theta (x) = \theta _0 + \theta _1x,因为只含有一个输入变量,这样的问题就叫做单变量线性回归。

2,代价函数

代价函数存在的目的就是使我们的输出变量更加接近真实的值。在本案例里边,我们的目的就是使这条线更加拟合我们的数据。

如果我们只用上边提到的函数表达式,那么我们肯定想确定里边的参数\theta _0,\theta _1,可以说这两个参数决定了我们的预测准确程度。我们的目标就是选择出可以使得误差的平方和能够最小的参数,选取这个参数的方法就叫做代价函数,也就是要让代价函数最小。在这个案例里边的代价函数就是:J(\theta _0, \theta _1) = \frac{1}{2m} \sum_{i=1}^{m}(h_\theta (x^{i}) - y^{i})^{2},还有其他的代价函数表达,但是,平方误差代价函数可能是解决回归问题最常用的方法。对这个函数的解释就是,将输入变量输入到函数中,得到的值与目标变量进行比较,对取得的误差求平方和,然后除以2m。如果利用MATLAB可以绘图的话就可以得到下边的这个图:

可以看出,在空间上有一个点,这个点满足平方误差是最小值的要求。

对代价函数的直观理解

综上,我们可以得出以下信息:

 

我们每在数据集上得到一条拟合曲线,那么我们都可以在代价函数的曲面上有一个对应的点,随着拟合程度的提高,在代价函数对应点的也会越来越接近最小值点。(第二个图是代价函数曲面的等值线,确定两个参数的值就可以确定代价函数的值)

接下来我们就需要一种算法帮我们,使程序自己找出能使代价函数最小化的参数\theta _0,\theta _1

3,梯度下降算法

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J(\theta _0, \theta _1) 的最小值。

梯度下降就是,开始的时候随机选择一组参数,然后计算代价函数,然后寻找下一个能够让代价函数下降最快的参数组合。一直循环,直到我们找到最小值。由此我们也可能陷入局部最小值出不来,我们不能确定得到的局部最小是不是全局最小值,选择不同的起始值就会得到不同的局部最小值。

上式中,\alpha是学习率,也就是每一步减小的步长,步长越大则每一步减小的值越大。收敛的也就越快。学习率小的话会很慢的收敛,但是很大的话有可能会导致无法收敛或者是发散。

梯度下降就是不断重复这个过程,在开始的时候随机得到的参数输入代价函数中,然后在梯度下降算法式子中分别得到新的参数,然后再将新得到的参数输入代价函数中继续执行上述程序,一直循环。在这个过程中,要注意一点就是,原始参数输入之后,计算得到新的参数,这个时候是同步更新的。不断更新这个参数的算法,就是梯度下降算法

梯度下降的直观理解

在二维平面可以这样理解,曲线是代价函数,横坐标是一组函数。随机确定的一组参数,在曲线上有对应的一点,梯度下降算法就是找出这一点下降最快的方向,也就是该点的斜率,学习率决定了,下降的步长,然后去诶定了一组新的参数,新的参数继续如此循环计算。由此得到最小值点。现在你对梯度下降有了一定认识了吧??

这就是梯度下降算法,你可以用它来最小化任何代价函数?,不只是线性回归中的代价 函数?。 接下来,我们要用代价函数?,回到它的本质,线性回归中的代价函数。也 就是我们前面得出的平方误差函数,结合梯度下降法,以及平方代价函数,我们会得出第一 个机器学习算法,即线性回归算法。

4,梯度下降的线性回归

我们要将梯度下降和代价 函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里。

 

我们将上边两个结合之后,可以得到(可能会需要一点偏导数的知识,不懂的可以百度一下):

这个称为批量梯度下降,因为每一次更新参数,都是将所有样本输入算法中,然后得到新的参数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值