吴恩达机器学习笔记12-梯度下降法用于线性模型

2020-08-14 10:22:24 浏览数 (1)

本文是吴恩达《机器学习》视频笔记第12篇,对应第1周第12个视频。

Linear regression with one variable——Gradient descent for linear regression”

这次视频在文章的末尾。

01

笔记

前面的两个视频讲了梯度下降的算法,再前面的视频还讲了线性模型、平方差代价函数。本段视频将前面几次讲解的内容糅合起来,将梯度下降用于代价函数从而得到线性回归的算法。

来看一下这个图,左边是梯度下降、右边是线性模型,我们就是想用梯度下降的方法找到代价函数的最小值。如果想用程序来实现梯度下降这个事,关键是要把这个偏导数给写明白。

偏导数呢,我们把代价函数J代入左边的梯度下降,然后展开分别对

来求一下偏导。看下图。

如果你考过研,或者学过高等数学,上面的式子肯定不陌生。如果感觉到陌生,其实也没多大关系,你直接用结果就好了。

那么,自然而然的,线性回归的梯度下降算法就变成这样了,

你看,这里我们代价函数的1/2m,分母上这个2就没了。需要注意的是,它们是一起求偏导的。

梯度下降怎么实现的呢?上次笔记里说的陷入局部最优的问题有办法解决了么?

对于线性回归模型来说,有一点很优秀,就是它的代价函数总是要给凸函数,如下图。也就是说对于线性模型,我们暂时不需要考虑局部最优的问题,实在是松一口气啊。

再来看一下前面视频中看过的图,左边是线性模型的具体形式,每一对

就对应一条特别的直线,而这条直线在代价函数的等高线图中对应一个代价函数的值。

不停调整

,就会发现代价函数慢慢就溜到最低点上去了,而我们线性模型的直线也越来越顺眼了。最后这条直线更好的拟合了房子面积和房屋售价之间的线性关系。如果在视频中来看这个过程,是很爽的。

接下来,给刚刚的梯度下降给起个名字,它常被称为“Batch”梯度下降。别问我“Batch”是什么意思,因为一翻译就没味道了。“Batch”梯度意味着,每一步梯度下降都遍历了整个训练集的样本,你看这个“Batch”它和“Bitch”差不多,因为太浪费时间了。

但,不管怎样,我们总算学会了第一个机器学习算法,虽然看上去有点初级。但所有的高级都是从初级升上来的啊。

那有没有更好的方法呢?还是需要继续往下学习。

0 人点赞