吴恩达机器学习笔记1---单变量线性回归(Linear Regression with One Variable)

吴恩达机器学习笔记1—单变量线性回归(Linear Regression with One Variable)

模型表示

首先我们引用一个房价预测的例子,由于是单变量模型,此处影响房价的变量只有房屋尺寸的大小
在这里插入图片描述
这也是个监督学习,监督学习的意思是对与每个数据都给出了正确的答案,即告诉我们:根据我们的数据来说,房子实际的价格是多少,而且,更具体来说,这是一个回归问题。更进一步来说,在监督学习中我们有一个数据集,这个数据集被称训练集。

以房屋的交易问题来看,假设我们的回归训练集如下:
在这里插入图片描述
我们将要用来描述这个回归问题的标记如下:

𝑚 代表训练集中实例的数量
𝑥 代表特征/输入变量
𝑦 代表目标变量/输出变量
(𝑥, 𝑦) 代表训练集中的实例
(𝑥(𝑖), 𝑦(𝑖)) 代表第𝑖 个观察实例
ℎ 代表学习算法的解决方案或函数也称为假设(hypothesis)

在这里插入图片描述
这就是一个监督算法的模型,我们输入一个x值(房子的尺寸),经过h的加工(h是个函数),输出了一个y值(预测的价格),因此:h是一个从x到y的映射。
一种可能的表达方式为:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题

代价函数

在这里插入图片描述
在线性回归中我们有一个像这样的训练集,𝑚代表了训练样本的数量,比如 𝑚 = 47。
而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥。
接下来我们会引入一些术语我们现在要做的便是为我们的模型选择合适的参数(parameters)𝜃0 和 𝜃1,在房价问题这个例子中便是直线的斜率和在𝑦 轴上的截距。我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
在这里插入图片描述
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数最小
在这里插入图片描述
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,平方误差代价函数可能是解决回归问题最常用的手段了。

关于代价函数,可能有两点问题。

1.为什么取平方?

是由于预测出得值和实际值的误差可能有正有负,这样可能会出现抵消的状况,加上平方之后就不会有这个状况。

2.前面为什么多乘一个2?

其实这个2是为了在梯度下降的时候求导出来更加直观,也没什么影响。

梯度下降

可以想象有一个瞎子,此刻在一座山上想要下山,他摸索了四周,找了了一个坡度最大的地方,往下走一小碎步。接着在摸索四周,再找一个坡度最大的地方。就这样反反复复,最终下到山底。这就是梯度下降。

梯度下降的本质就是寻找局部最小值
批量梯度下降法的算法为
在这里插入图片描述
其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
在这里插入图片描述
在梯度下降算法中,还有一个更微妙的问题,梯度下降中,我们要更新𝜃0和𝜃1 ,当 𝑗 = 0 和𝑗 = 1时,会产生更新,所以你将更新𝐽(𝜃0)和𝐽(𝜃1)。实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,你需要同时更新𝜃0和𝜃1,我的意思是在这个等式中,我们要这样更新:𝜃0:= 𝜃0 ,并更新𝜃1:= 𝜃1。
实现方法是:你应该计算公式右边的部分,通过那一部分计算出𝜃0和𝜃1的值,然后同时更新𝜃0和𝜃1。

梯度下降的直观理解

梯度下降的算法如下
在这里插入图片描述
对𝜃赋值,使得𝐽(𝜃)按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值。其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。

在这里插入图片描述
求导的目的,可以说是这些不同颜色点的切线,当我们求的导数为正时,我们减去这个正导数乘与学习率,实现了向左走,也就是向着最低点迈进。这也是梯度下降的更新规则。

让我们来看看如果𝑎太小或𝑎太大会出现什么情况:

如果𝑎太小了,即我的学习速率太小,结果就是只能这样像小宝宝一样一点点地挪动,去努力接近最低点,这样就需要很多步才能到达最低点,所以如果𝑎太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。

如果𝑎太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低越远,所以,如果𝑎太大,它会导致无法收敛,甚至发散。

梯度下降与线性回归

对我们之前的线性回归使用梯度下降法

算法如下:
在这里插入图片描述
这个算法也称为批量梯度下降,指的是下降的每一步中都用到了全部样本。还有些只需要考虑部分样本的方法例如随机梯度下降法,不再赘述

如果你之前学过线性代数,有些同学之前可能已经学过高等线性代数,你应该知道有一种计算代价函数𝐽最小值的数值解法,不需要梯度下降这种迭代算法。在后面的课程中,我们也会谈到这个方法,它可以在不需要多步梯度下降的情况下,也能解出代价函数𝐽的最小值,这是另一种称为正规方程(normal equations)的方法。实际上在数据量较大的情况下,梯度下降法比正规方程要更适用一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值