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

1.模型的定义

下面我们采用波特兰的一个数据集进行举例,数据展示的是房屋的大小以及对应价格之间的关系,数据如下:
吴恩达机器学习笔记(二)——单变量线性回归_第1张图片

对于监督学习,我们通常会有一个数据集,又称为训练集
下面对于一些符号进行定义:
m表示训练样本的数量
x表示输入变量或者说是特征
y表示要预测的目标变量
(x,y)表示一个训练样本
(x^(i) , y^(i))表示特定的第i个训练样本

并且对于监督学习的具体流程我们可以从下图清晰的看出:
吴恩达机器学习笔记(二)——单变量线性回归_第2张图片
其中h通常称为假设函数。那我们要如何求得h呢?
我们可以尝试使用一元线性表达式进行拟合房价的数据,得到以下的假设函数h:
在这里插入图片描述

2.代价函数

在这里插入图片描述
对于上面这个假设函数,下面我们就要继续讨论如何选取最佳的θ0和θ1。选取不同的θ0和θ1我们会得到不同的假设函数,如下
吴恩达机器学习笔记(二)——单变量线性回归_第3张图片
由此我们引出了代价函数,代价函数的具体定义如下:
在这里插入图片描述
代价函数又称为平方误差代价函数,代价函数时解决回归问题最常用的手段。(注:代价函数中的1/2m,m是为了减小平均误差,除以m可以使得整个数变小从而减小误差。2则只是为了方便后续的计算)

通过求得代价函数的最小值,便能计算出最佳的θ0和θ1。

通过计算不同的θ0和θ1,我们可以计算出不同的代价函数值,绘制如下图(为了更好理解,本例假设θ0=0,变量只有θ1):
吴恩达机器学习笔记(二)——单变量线性回归_第4张图片
从图中可以发现,当θ1等于1时,可以完美进行拟合,使得代价函数J(θ1)=0。

如果我们不进行简化,综合考虑θ0和θ1对于拟合函数的变化,我们可以得到如下的代价函数:
吴恩达机器学习笔记(二)——单变量线性回归_第5张图片
同样,也可以采用等高线图表示代价函数。同一等高线意味着代价值时一样的,中心点意味着代价值最小。如下图:
吴恩达机器学习笔记(二)——单变量线性回归_第6张图片

3.梯度下降

梯度下降是一种可以将代价函数最小化的算法,不仅用在线性回归中,还被广泛应用在机器学习的众多领域中。
问题概述:
       使用一种算法最小化代价函数
梯度下降算法思路(outline):

  1. 初始化θ0和θ1(通常令θ0=θ1=0)
  2. 不断的修改θ0和θ1的值,直到取得最小值

根据梯度下降的思路,从某个点开始,选择下山的道路,每次都选择当前看起来下山最快的道路,直到取得局部最优处。注意:从不同的初始值开始,会得到不一样的局部最优解。如下图:

吴恩达机器学习笔记(二)——单变量线性回归_第7张图片 吴恩达机器学习笔记(二)——单变量线性回归_第8张图片

梯度下降算法背后的数学原理如下:

在这里插入图片描述
注::=代表赋值,=代表判断真假。α代表学习速率,表示在梯度下降时迈多大的步子,α越大下降地越快。

梯度下降算法就是反复计算上述表达式,直到收敛为止。注意在计算过程中必须使用同步更新,也就是使用下面的方式:
吴恩达机器学习笔记(二)——单变量线性回归_第9张图片

4.梯度下降的具体实现

根据上一小节中梯度下降的原理,我们可以对梯度下降进行具体的演算,这里为了方便理解简化公式为只有一个参数θ1,如下图:
吴恩达机器学习笔记(二)——单变量线性回归_第10张图片
上图需要注意的点有以下几个:

  1. 首先,梯度下降的公式中的导数实际表示的时该点切线的斜率。在最小点的右边(图一)时,导数值为正。在最小点的左边(图二)时,导数值为负。
  2. 因为图一中,导数为正,α也是正数,因此θ1就会不断减小,向最低点靠近。
  3. 因为图二中,导数为负,α为正数,因此θ1就会不断增大,向最低点靠近。
  4. 随着梯度下降算法的运行,越接近最低点时,斜率越小,导数值越小,所以这时梯度下降算法会自动采取最小的幅度,而无需通过改变α来改变下降的幅度。

下面继续讨论α不同的取值会导致什么样不同的结果,如下图:
吴恩达机器学习笔记(二)——单变量线性回归_第11张图片

上图需要注意的点有以下两个:

  1. 在第一个图中,α的取值非常小,这时梯度下降的速度就很慢,需要一点点的移动。
  2. 在第二个图中,α的取值过大,这时就有可能造成错过最低点的情况,离最小值越来越远。

特别注意,通过梯度下降算法,求得的最低点是局部最优点,不一定是全局的最优点,如下图
吴恩达机器学习笔记(二)——单变量线性回归_第12张图片
当到达某个局部最优点时,导数值为0,就会停止迭代了。

5.线性回归的梯度下降

在这一小节,我们会将梯度下降和代价函数相结合,得到线性回归的算法。
吴恩达机器学习笔记(二)——单变量线性回归_第13张图片
主要的步骤就是将代价函数J(θ0,θ1)进行求导,然后代入到梯度下降算法中,不断迭代就能获得最优值。具体数学推导如下:
吴恩达机器学习笔记(二)——单变量线性回归_第14张图片

根据上一小节中,我们知道梯度下降只能求得局部最优解。但是线性回归的代价函数则总是凸函数,因此并没有多个局部最优解,唯一的局部最优解就是全局最优解。如下图:
吴恩达机器学习笔记(二)——单变量线性回归_第15张图片
基于此我们就可以得到拟合程度最好的函数了。

最后,我们刚刚学习的梯度下降又可以称为Batch梯度下降,因为在每一步的梯度下降中,我们都遍历了整个训练集的样本。对于其他的一些梯度下降算法就可能只使用了部分的训练集。

你可能感兴趣的:(吴恩达机器学习笔记,吴恩达,机器学习,线性回归)