Andrew Ng网课笔记-Linear Regression(一)

本文通过房价预测实例介绍了线性回归的概念及其监督式学习方法,并详细解析了梯度下降算法的工作原理,用于求解代价函数的最小值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一讲说到了线性回归(Linear Regression)

线性回归是一种监督式学习。我们给机器一些带标签的数据,然后机器用这些带标签的数据学习。

1.从一个例子入手

首先Ng老师举了个例子:

这是有关于房价预测的例子。

图中的点横坐标是面积,从纵坐标是房价, 我们要做的事情是想找到一个模型,让这个模型更好的符合当前的房价与面积的对应关系,之后我们用这个模型简单的预测房价。

首先,我们有一些training set

我们用一些符号让我们之后的表述更清楚。

如果有4000条数据, m = 4000

x = [2104, 1416, 1534, 852 ... ]

y = [460, 232, 315, 178 ...]

(x^(i), y^(i))表示第i条数据

x^(i) = 2104, y^(i) = 460

2.我们要做什么

第一步拿到训练集,之后选一种学习算法,学习出一个hypothesis, 就是那个h, 个人觉得这个用模型来表示更好,只不过在机器学习最开始的时候用假说这个词, 后面就一直这么叫了。当我们算出hypothesis 之后,输入一个x预测这个x对应的y值(不是真实的y值)。

我们假设这个假说是线性的, θ表示参数

我们要做的是找到合适的θ, 让hθ(x) 距离真实的y值更接近

2.1 cost function

我们来简化一下cost function,来让我们更好的理解这个式子。

假如我们让hypothesis 函数中的参数中的θ0等于0的话, hθ(x)就由hθ(x)=θ0+θ1*x变成了hθ(x)=θ1*x

在几何中的意义呢就是直线过原点

比较一下hθ(x)和J(θ)

hθ(x)J(θ1)
自变量是x,θ1是固定的说明这个函数是针对x来说自变量是θ1,说明这个函数是针对θ1来说的

假如我们的数据为(1, 1)、(2, 2)、(3, 3),如果我们的θ1取1的话

直线方程如上图所示,斜率为1的过原点的直线

θ1取1的时候,我们来算一下J(θ1),结果是0所以在这个坐标系

中一个点是(1, 0)

如果θ1等于0.5呢,我们将会得到一个新的图像,斜率是0.5过原点

的直线

继续算θ1等于0.5时候的J(θ1) ≈ 0.58, 所以第二个点是(0.5, 0.58)
再看一个,如果θ1等于0的话,图像是x轴

继续算θ1等于0时候的J(θ1) ≈ 0.23, 所以第二个点是(0,0.23), 依次类推

如果我们继续算θ1等于不同值时候的J(θ1),我们能得到如下图所示的图像

我们要求的是θ1取什么值的时候J(θ1)能到最小,从图像上可以看到,当θ1

等于1的时候J(θ1)有最小值,对应到左图也就是那条蓝线,确实是模型与

真是数据最符合的时候,所以我们要求醉符合数据的模型就可以转换成求

J(θ1)的最小值

以上对hθ(x)J(θ1)有了一个对比,相信大家对这两个方程有了更直观的认识,不过以上说的都是只有一个参数θ1的情况, 我们之后要把两个参数都加上:

hθ(x)     J(θ0, θ1)
自变量是x,θ0θ1是固定的, 说明这个函数是针对x来说自变量是θ0θ1,说明这个函数是针对θ0θ1来说的      
θ0=50, θ1=0.06的时候,画出的线如图所示

当我们转到J(θ0θ1)的时候,因为自变量变成了θ0θ1, 我们只能用一

个三维图表示,为了之后表达方便,我们将三维图变成二维图,于是我们用‘等高线’表示,如下图所示:

θ0θ1分别是800和-0.15的时候,画的线,过点(0, 800), 斜率是-0.15

我们可以看到,这条线与点的符合并不是很好。

这张图就是等高线的图,在同一条线上的点J(θ0θ1)的值是相同的,所以

如果我们在图上选中一点, 他的坐标为(800, -0.15),在左图看效果不

好,在右图看该点距离椭圆的中心点距离也很远。

θ0θ1分别是350和0的时候,画的线,过点(0, 350), 斜率是0, 

直线与数据的符合程度比上一个图好一些。

换一个新的点(350, 0), 该点距离椭圆的中心点距离少了一些,相对应

左图,直线与数据的符合程度好一些。

θ0θ1分别是200和0.12的时候,画的线,过点(0, 200), 斜率是

0.12,直线与数据符合程度最好。

当点取(200, 0.12)的时候,最接近椭圆的中心点,所以我们要做的就是找

到椭圆的中心点。

实际上我们要求的就是J(θ0, θ1)图像的最低点,也就是椭圆的中心点,但是我们不能遇到一个问题就画图,手动的去找,而且现在只有θ0, θ1两个参数,以后参数一多起来根本无法做图做出来,所以我们要利用计算机,利用算法将这个椭圆的中心点算出来,这就引出来下一个话题,梯度下降。


 

2.2梯度下降(Gradient Descent)

正如前面说的,我们要求min J(θ0, θ1 ), 一般情况下,参数肯定会多于两个,扩展到一般形式的话,就是在求minJ(θ0, θ1, θ2……θN), 但是为了说明方便,之后我们会拿两个参数举例,多个参数的操作方法与两个参数的是一样的。

步骤是:

  • 初始化θ0, θ1的值,假设θ0 = 0, θ1 = 0
  • 不断的改变θ0, θ1的值为了减小J(θ0, θ1)的值,直到达到我们所期望的,最小值
直观的用图表示一下:

如这张图所示,假设我们初始位置选在了1点,我们可以把找最低点想象成一个下山的过程,当我们在1点时要怎样做才能快速的下到山底呢?做法就是在1点四周环视,寻找一个方向向下,坡度最陡的方向,往前走一步,之后再做同样的事情直到局部最低点。

假如我们初始化时选的是另一个新的点,即使按照刚才的步骤,我们也很有可能走到一个完全不同的局部最低点,如何解决这个问题我们之后讨论。

我们来看看公式 :

有几点要注意一下:

  • := 在这里是赋值的意思,将后边的结果给到前边
  • α 表示learning rate,学习速度,如果α 很大,J(θ0, θ1)的值会变化的很剧烈,如果α 很小,J(θ0, θ1)的值会变化的很缓慢。
  • 在这个式子中的θ0, θ1是同时计算的。什么意思呢?

第三点什么意思呢?

我们来看这两个运算步骤,左边的是先把θ0, θ1算完之后再赋值过去,右边的是算一个,更新一下,再用更新过的θ0来算θ1,这样就会产生错误,因为式子中的参数发生了变化。

我们重点关注公式中的求导项:

为了让大家理解的更简单,我们先用一个参数的 J(θ1)函数。

说明完导数项之后,我们来说一下α 

至于说为什么θ1能变化到最低点,是因为:

2.3利用梯度下降计算线性回归的cost function

下图是公式计算过程:

之前我们提到过,由于我们选择的初始点的位置的不同, 在经过梯度下降计算后有可能走到不同的局部最低点。在线性回归问题中,暂时是不会涉及到的,因为线性回归的cost function 是凸函数(convex function)意思就是,只有一个局部最低点,也就是全局最低点。

2.4结果展示

2.5思维导图

最后附上一张思维导图,帮助记忆。

ps:以上内容对应着Ng老师的lesson 2.1-2.7, 有兴趣的同学可以看一下视频。

视频地址:https://www.youtube.com/watch?v=GtSf2T6Co80&list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN&index=10

第一次写技术博客,希望大家不吝赐教,共同探讨,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值