第二章 单变量线性回归(Linear regression with one variable)
第一节 模型描述
这一节主要讲述了一元线性回归模型,还是使用的第一章监督学习中面积与房价关系的例子,具体数据如下图所示。
从图中可以看出,我们需要通过这些数据拟合出绿色的直线(即假设函数),用于预测其他面积房子的价格。
已知的数据集就是这个回归问题的训练集,为了描述这个回归问题,需要定义一些字符。
m = Number of training examples (对应到上图的例子为已知房价的个数)
x's = “input” variable / features (对应到上图的例子为房屋的面积)
y's = “output” variable/ “target” variable (对应到上图的例子为房屋的价格)
(,)= ith training example (对应到上图的例子为某一个红色的叉)
训练集通过一定的学习算法便可以得到对应的假设函数,通过假设函数便可以根据特征(x,如例子中的房屋面积)获得目标变量(y,如例子中的房屋价格)。
假设函数一种可能的表达方式为:,只有一个特征变量,也被称为单变量线性回归问题。
第二节 代价函数 (Cost function)
如何求出假设函数中的参数,或者说选择参数的标准是什么,就是这一节的主要内容。
构建假设函数是为了获得接近真实值的目标变量(y),因此目标变量是否与真实值相同便是一个参考标准。为了更好地选择参数,引入了代价函数(Cost function)。
当为最小值时,对应的就是假设函数的参数。代价函数也称为平方误差函数,从公式中可以看出,代价函数最小,即所有已知点纵坐标与假设函数的目标变量的差值平方和最小,近似可以看成假设函数与训练集数据最接近。
第三节 代价函数理解1
为了更好地理解代价函数,先令,观察 和的关系。
上图左侧表示的是不同取值的对应的 ,上图右侧表示的是不同取值的对应的,可以发现当最小时刚好就是 与训练集的点最接近时。
第四节 代价函数理解2
当两个参数均不为0时,观察假设函数和代价函数的关系。
因为中存在两个变量,所以其图像应该是三维的,如下图所示
从图中可以看出,图像上点的高度即为的值。为了便于和假设函数比较,将采用等高线的方法将数三维的图像变成二维,具体如下图所示。
当越接近右侧图最中心圆的圆心时,代价函数的值越小,如何才能让其接近圆心,则是接下来需要讨论的梯度下降算法。
第五节 梯度下降(Gradient descent)
梯度下降是为了获得代价函数的最小值,它的思路是,从某一个点开始,不断改变的值,使代价函数的值变小,最后接近最小值,当然选择不同的起始点,可能会得到不同的局部最小值,如下图所示。
梯度下降算法的公式(更新方程)为:
( for j = 0 and j = 1)
其中的为学习率,为正数;当较大时,梯度下降迅速,当较小时,梯度下降缓慢。
同时需要注意的是,在编程时需要对同步更新(即先将更新后的值存放在中间变量中,再对其赋值)。
第六节 梯度下降的理解
由上文可知
当在上图所示位置时,偏导数为正值, 会不断变小,接近最低点。
当在上图所示位置时,偏导数为负值, 会不断变大,接近最低点。
当取值特别小时,梯度下降地会特别慢, 当取值特别大时,梯度下降地会特别快(这时有可能会超过最低点),具体情况如下图所示。
因此选择合适的学习率也很重要,当快接近最小值时,偏导数会逐渐变小,因此在梯度下降过程中不用改变学习率的大小。
第七节 线性回归的梯度下降
利用梯度下降的算法获得线性回归模型,首先需要计算出,就需要把 和带入的表达式中。
这种算法称作批量梯度下降,在每次下降的过程中都用到了所有样本的数值。后续将会介绍另一种算法正规方程,但在数据量较大的情况下,使用梯度下降的方法更好。