机器学习(2)单变量线性回归

2.1 模型表示

我们学习的第一个算法是线性回归算法
在监督学习中,我们有一个数据集,这个数据集被称为训练集(Training Set)。

我们用小写字母m来表示训练样本的数目

监督学习算法的工作方式

以房屋价格的训练为例,将训练集里房屋价格喂给学习算法,学习算法工作后输出一个函数h,h代表hypothesis(假设)。
函数h输入为房屋尺寸大小x,h根据输入来得出y值,y值对应房子的价格。因此,h是一个从x到y的函数映射。

h该如何表达呢?
一种可能的表达方式为

因为只含有一个特性(输入变量),因此这样的问题叫做单变量线性回归问题

2.2 代价函数

我们现在要做的是为我们的模型

选择合适的参数和。

建模误差(modeling error):模型所预测的值与训练集中实际值之间的差距。

我们的目标是选择出可以使得建模误差的平方和能够最小的模型参数。
即使得代价函数:

代价函数

最小。

刚才的代价函数也称作平方误差函数(平方误差代价函数)。之所以求出误差的平方和,是因为误差平方代价函数对于大多数问题尤其回归问题,都是一个合理的选择。

平方误差代价函数是解决回归问题最常用的手段。

2.3 代价函数的直观理解

2.4 第一个机器学习算法——梯度下降

使用梯度下降来求函数最小值(代价函数的最小值)。
思想:开始时随机选择一个参数的组合

计算代价函数,然后寻找一下个能让代价函数值下降最多的参数组合,持续这么做直到一个局部最小值(local minimum)。

由于没有尝试完所有的参数组合,所以不能确定我们得到的是否为全局最小值(global minimum),选择不同的初始参数组合,可能会得到不同的局部最小值。

其中是学习率(learning rate),决定了让代价函数下降程度最大的方向向下迈出的步长。

在批量梯度下降中,每一次都同时让所有的参数减去学习速率乘以代价函数的导数。

注意一个微妙的问题:
梯度下降算法实现时需要同步对各个参数进行更新,因此需要先将各个参数的更新值计算出来暂时保存,当所有更新值都计算完毕后同时更新新一轮参数。

同步更新是更自然的实现方法

梯度下降的直观理解

对于这个问题,求导目的是取切线。

如果太小了,挪动会很慢,需要很多步才能到达全局最低点。
如果太大了,可能会越过最低点,甚至无法收敛,一次一次越过最低点,实际上离最低点越来越远。

我们可以发现,随着每一步的梯度下降,图线越来越趋近于平缓,斜率越来越小,最终移动幅度非常小,已经收敛到局部极小值。

2.6 梯度下降的线性回归

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

批量梯度下降,指在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,计算微分求导项时,我们需要进行求和运算。

此外,在计算代价函数J最小值的时候有一种数值解法,不需要梯度下降这种迭代算法,是一种成为正规方程(normal equations)的方法。

实际上,在数据量较大时,梯度下降发比正规方程要更适用一些。

你可能感兴趣的:(机器学习(2)单变量线性回归)