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

二、单变量线性回归(Linear Regression with One Variable)

2.1 模型描述在这里插入图片描述

我们的第一个学习算法是线性回归,在这节课中,我们将会学习什么是模型,而更重要的是将会看到整个监督学习的过程。

我们再来看一些预测住房价格的例子,我们将根据不同尺寸的房子对应不同的售价组成的数据集来画图。
ype_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RlcmlkZQ==,size_16,color_FFFFFF,t_70)
假设要卖的房子大小是1250平方英尺,想要预测能卖多少钱,我们可以进行模型拟合,我们可以形成一条直线,预测到房价大概在220000美元左右。

这是一个监督学习的例子,同时也是一个回归问题的例子,回归是指我们预测一个具体的数值输出。而另一种最常见的监督学习问题就是之前学过的分类问题,用它来预测离散值输出。

在监督学习中,我们有这么一个数据集,它被称为一个训练集,以住房价格为例,我们有一个房价的训练集,我们要从这个训练集中学习如何预测房价,我们还要定义一些课程中会用到的符号:在这里插入图片描述

  • m—训练样本的数量
  • x—输入变量/特征
  • y—输出变量/特征
  • (x,y)— 一个训练样本
  • (x^(i), y^(i))— 第i个训练样本,上标i只是训练集的一个索引,而不是代表幂指函数

下面我们来看看监督学习算法是怎样工作的:
在这里插入图片描述
我们向学习算法提供训练集,学习算法的任务是输出一个函数(通常用小写h表示,代表假设函数,假设函数的作用是,把房子的大小作为输入变量,然后得到相应的输出值),下一步要做的是决定怎么表示这个假设函数h。

例如:以下这种模型称为线性回归,这个例子是一个一元线性回归,是个单变量x的函数,也叫做单变量线性回归。
在这里插入图片描述

2.2 代价函数在这里插入图片描述

本节课我们将定义代价函数的概念,这有助于我们弄清楚如何把最有可能的直线与我们的数据相拟合。例如在线性回归中我们有一个像这样的训练集:在这里插入图片描述
我们的假设函数,也就是用来进行预测的函数时线性函数形式,其中 θ_i 我们称为模型参数,而本节课程要做的就是谈谈如何选择这两个参数值 θ_0 和 θ_1。选择不同的 θ_0 和 θ_1,我们会得到不同的假设,不同的假设函数。

在线性回归中,我们有一个训练集,如下图所示,我们要做的就是得出 θ_0,θ_1 这两个参数的值,来让假设函数表示的直线尽量的与这些数据点很好的拟合,也许就像这里的这条线一样,那么我们如何得出 θ_0,θ_1 的值来使它很好的拟合数据呢?我们要选择能使 h(x) 最接近该样本所对应的 y 值的参数 θ_0,θ_1。所以在我们的训练集中我们会得到一定数量的样本。
在这里插入图片描述
下面让我们给出标准的定义,在线性回归中,我们要解决的是一个最小化问题,所以我们要写出关于 θ_0,θ_1 的最小化。
在这里插入图片描述
在上式中,其中h(x) 表示对应的预测结果,减去实际结果 y 所得的差的平方相加得到总和,我们希望尽量减小这个值,也就是预测值和实际值的差的平方误差和。这里的 m 指的是训练集的样本容量,我们实际上考虑的是这个数的 1/m ,因此我们要尝试尽量减少我们的平均误差,也就是尽量减少其 1/2m,通常是这个数的一半。

按照惯例,我们要定义一个代价函数,要做的就是关于θ_0 和 θ_1 对函数J(θ_0,θ_1)求最小值,这就是我们的代价函数。代价函数也被称作平方误差函数,有使也被称为平方误差函数,事实上,我们之所以要求出误差平方和是因为误差平方代价函数对于大多数问题,特别是回归问题都是一个合理的选择。

2.3 代价函数(一)

在这里插入图片描述
之前给出了代价函数的数学定义,现在我们来看一些例子,直观的来理解代价函数是用来做什么的以及我们为什么要用它。
在这里插入图片描述
为了更好的使代价函数可视化,我们使用一个简化的假设函数,使它仅包含参数 θ_1*x,或者是直接将其视为 θ_0 = 0,代价函数和之前类似,现在只有 θ_1 一个参数,那么优化目标就是尽量减少 J(θ_1) 的值,使用简化的代价函数可以让我们更好的理解代价函数的概念。

2.4 代价函数(二)

在这里插入图片描述
对代价函数图形化时,保留全部参数 θ_0 和 θ_1,此时图像就变复杂了。当我们只有一个参数时,我们画的这部分是一个碗装函数,现在当我们有两个参数,实际上的代价函数也是同样的碗装函数,而且与训练集有关,可能会得到一个下面形状的代价函数,轴标为 θ_0 和 θ_1,曲面的高度就是 J(θ_0,θ_1) 的值。在这里插入图片描述
为了更好的展示图形,我们经常用等高线图(等高图像)来展示代价函数J。
在这里插入图片描述

2.5 梯度下降

在这里插入图片描述
本节课将学习一种算法,可以将代价函数J最小化的梯度下降法,这是一种很常见的算法,它不仅被用在线性回归上,还被广泛应用于机器学习的众多领域。

下面是问题概述

我们有一个函数 J(θ_0,θ_1) ,也许这是一个线性回归的代价函数,也许是一个需要最小化的其他函数,我们需要用一个算法来最小化函数 J(θ_0,θ_1) 。事实证明,梯度下降算法可应用于更一般的函数,例如 J(θ_0,θ_1,θ_2,… ,θ_n) 。下面就是梯度下降的思路:
在这里插入图片描述我们要做的是开始给定 θ_0 和 θ_1 的初始值,通常的选择是 θ_0 = 0,θ_1 = 0,我们在梯度下降算法中要做的是不停地一点点的改变 θ_0 和 θ_1 来使 J(θ_0,θ_1) 变小,直到我们找到J的最小值或者局部最小值。
在这里插入图片描述
假设我试图让这个函数值最小化,就像从山顶下山一样,寻找一道下山最快的路径,即最佳下山方向,一步一步往下走,直至收敛到局部最低点,这就是梯度下降法。

梯度下降有一个有趣的特点,第一次运行梯度下降法时我们从一个点开始,如果你从不远处另一点开始,将会得到第二个局部最优处,即如果起始点偏移了一点,就会得到一个完全不同的局部最优解。

梯度下降法的数学原理:在这里插入图片描述
其中:
:= — 赋值运算符(a := a + 1 ✔)
= — 判定运算符(a = a + 1 X)
α — 学习率,控制我们以多大的幅度更新参数

当 j = 0 和 j = 1 时,θ_0 和 θ_1 会产生更新,实现梯度下降算法的微妙之处是:对于上面这个表达式,对于这个更新方程,需要同时更新 θ_0 和 θ_1,即同步更新。

2.6 梯度下降知识点总结

在这里插入图片描述
之前我们给出了梯度下降的定义,本次课我们更加深入研究一下这个算法是做什么的,以及梯度下降算法的更新过程有什么意义。
在这里插入图片描述
上式中主要分为两个部分,第一个是α,它控制函数更新的幅度,第二部分是导数项,接下来我们要研究一下这两部分对更新过程起什么作用。

1、导数项对更新过程所起作用

在这里插入图片描述
如上图所示,在起始点在最低点右侧时,刚好在这点与函数曲线相切的直线的斜率为正,也就是说它有正导数,因此得到更新后的 θ_1 为原来的 θ_1 减去一个α乘以正数,于是 θ_1 向左边最低点收敛;

同理,当起始点在最低点左侧时,θ_1就会向右边最低点收敛。

2、学习率α对更新过程所起作用

在这里插入图片描述
如果α太小,函数就用一个比较小的系数来更新,收敛过程就会十分缓慢,要很多步才能达到局部最低点;

如果α太大,那么梯度下降可能会越过最低点,甚至可能无法收敛或者发散,当起始点比较接近最低点时,α太大有可能会直接迈出一大步,使其离最低点越来越远。

初始点在最低点时

在这里插入图片描述
假设初始点在局部最低点,即上图箭头所指处,它已经在一个局部的最优处,此处的导数等于零,这意味着更新后的 θ_1 跟原来的值一样,那么梯度下降法更新其实什么都没做,不会改变参数的值,它使我们的解始终保持在局部最优点。

这也就解释了,即使学习率α保持不变,梯度下降法也可以收敛到局部最低点的原因。
在这里插入图片描述
当我们一步步梯度下降时,即使α保持不变,随着斜率的不断变小,导数项也是不断减小的,θ_1 更新的幅度也就不断变小,随着梯度下降法的运行慢慢的就会收敛到局部极小值。

所以总的来说,在梯度下降法中,当我们接近局部最低点时梯度下降法会自动采取更小的幅度,这是因为当我们接近局部最低点时,根据定义在局部最低时导数等于零,所以当我们接近局部最低时导数值会自动变得越来越小,这就是梯度下降的运行方式,实际上没必要再另外减小α。

2.7 线性回归的梯度下降


在之前的学习中,我们讲解了梯度下降算法、线性回归模型和平方差代价函数,接下来我们要将梯度下降和代价函数结合得到线性回归的算法。
在这里插入图片描述
如上图所示,左侧为梯度下降法,右侧时线性回归模型,包括线性假设和平方差代价函数。我们要做的就是将梯度下降法应用到最小化平方差代价函数,而其中的关键步骤就是导数项,即在 j = 0 和 j = 1 的时候两种情况的偏导数。

下图所示即回归的梯度下降法,不断重复该过程直至收敛,但要注意,θ_0 和 θ_1 应同时更新。在这里插入图片描述
当然,这个算法有时也被称为Batch梯度下降,意味着在每一次梯度下降时我们都遍历了整个训练集的样本,所以在梯度下降计算偏导数时我们计算总和,在每一个单独的梯度下降,我们最终计算m个训练样本的总和。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值