在前两篇文章中介绍了线性回归模型,梯度下降算法,代价函数。这篇文章主要是将梯度下降算法与代价函数结合得到线性回归算法,使其可用来拟合直线模型。如下图,左边为梯度下降算法,右边为假设函数h以及代价函数J,我们要做的就是将梯度下降算法应用到最小化代价函数。
在将代价函数代入到梯度下降算法时,需要注意一点也是比较难理解的一点就是对代价函数求偏导,需注意求偏导时自变量是谁,是0和1,所以是对 0和1分别求偏导,这里不妨将这个偏导设为Z。
当对 0求偏导时,根据显函数的求偏导的法则,先对平方项整体求一次导出来一个2,与前边的1/2m的相乘得到1/m,然后再对 0求导,结果为1
当对 1求偏导时,根据显函数的求偏导的法则,先对平方项整体求一次导出来一个2,与前边的1/2m的相乘得到1/m,然后再对 1求导,得到x
好了,现在我们得到的结果带入到梯度下降算法中可以得到如下图所示,需要注意一点,在更新 0和 1时需要同时更新,不要先更新 0然后在更新 1
对于线性回归的代价函数图像往往如下图所示,从图中可以看出线性回归的代价函数没有局部最优解,只有全局最优解
最后我们运行一下梯度下降算法,左图为假设函数h,右图为代价函数J,我们从 0为900和 1为-0.1开始进行梯度下降,直至找到最小化的代价函数对应的的 0和 1,将 0和 1带入到假设函数h,这个假设函数h就可以很好地预测数据了
总结:由下图的梯度下降算法可知,我们每进行一步梯度下降,都会遍历整个数据集。后续我们将学习到不遍历整个数据集的梯度下降算法。