介绍单变量的线性回归以及用梯度下降法求解参数。
2.1 模型表示
机器学习的目标就是,给定一个训练集,去学习一个假设,它能很好地预测出输入对应的输出值。
-
描述问题的标记:
2.2 代价函数
单变量线性回归的一种可能的表示如下:
-
参数 theta 的选择决定了模型预测值与实际值之间的差距。下图中蓝色垂线代表建模误差。
-
我们的目标选择出可以使建模误差的平方和最小的模型参数。即,使得下列代价函数最小:
平方误差是解决回归问题最常用的手段。
2.3 梯度下降
在前面一小节已经说到,我们要找到使得代价函数最小的那组theta值,因此这里引入梯度下降法。
-
目标:
-
梯度下降算法:
更新theta的值,使得代价函数按梯度下降最快的方向进行,一直迭代下去,最终得到局部最小值。
-
学习率 α 决定了沿着能让代价函数下降程度最大的方向,向下迈出的步子有多大。
学习率太大,梯度下降法可能会越过最低点,甚至导致无法发散。
学习率过小,梯度下降会非常慢,因为每次迭代只能走一小步。
假设θ开始被放在局部最低点会怎样?
局部最低点导数为0,θ将不被更新。这也解释了为什么即使学习率不变,梯度下降也能收敛到局部最低点。其实在梯度下降过程中,向局部最小值方向移动时,切线斜率会越来越小,实际上每次更新的幅度也在减小,所以没必要再另外减小α。
2.4 梯度下降的线性回归
介绍到这里,我们就可以拿梯度下降法来求解线性回归的最优解了。回顾下线性回归模型和代价函数,我们要做得是对代价函数求关于θ的偏导数,从而不断更新θ,使得到达局部最低点。实际上对于线性回归,其代价函数是凸函数,所以局部最低点也是全局最低点。
以下是求导过程,省略了某些细节。
所以,在算法中,只需要按照上式更新。