参考Andrew Ng
模型描述
一个监督学习的例子。
h是一个引导从x得到y的函数,该函数叫做假设函数。
我们先从这个例子开始,先拟合线性函数,然后在此基础上,最终处理更复杂的模型,以及学习更复杂的学习算法,这种模型被称为线性回归,该例子是一个一元线性回归,也称为单变量线性回归。
代价函数
代价函数的数学定义。
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数,该函数是解决回归问题最常用的手段。
使用简化的代价函数,可以让我们更好的理解代价函数的概念。
只有一个参数(简化)
两个参数,即保留全部参数
为了更好的展现图形,不使用三维图形,使用等高线表示代价函数J的图形。
虽然不是最小值,但是相当接近最小值。
梯度下降
梯度下降是个很常用的算法,它不仅被用到线性回归上,还被广泛应用于机器学习其他领域,我们将使用梯度下降法,最小化其他函数,而不仅仅是最小化线性回归的代价函数J,接下来我们用梯度下降算法最小化任意函数J。
问题描述如下
(两个参数初始值是什么不重要,一般都设为0。)
通过一些图片来看梯度下降法如何工作
从图像上某一点出发(两个参数的初始值决定),环顾四周,决定从什么方向最快下山,迈出一小步,再环顾四周......直至收敛至局部最低点。
如果你从另个点出发,梯度下降算法会带你来到另一个局部最优处。
该算法实现过程
α被称为学习率,决定梯度下降时我们迈出的步子有多大,其值越大,梯度下降就越迅速。注意参数要同步更新。
上图为导数在图像上的直观含义,下图为学习率的直观含义
如果α太大,将会导致无法收敛甚至发散。
如上图所示,导数值会变得越来越小,所以梯度下降将会自动采用最小的幅度,所以实际上没有必要减小α。
线性回归的梯度下降
Batch梯度下降算法,意味着每一步梯度下降,我们都遍历了整个训练集的样本,所以在梯度下降中,计算偏导数时,我们计算总和,在每个单独的梯度下降,我们最终计算m个训练样本总和。相比正规方程组法,梯度下降适用于更大的数据集。