【学习笔记】斯坦福大学公开课(机器学习) 之一:线性回归、梯度下降

在学习网易公开课中斯坦福机器学习公开课的讲义和视频过程中自己的认识和体会。

以房屋面积与房屋价格来举例子:



我们如何根据这样的数据,来预测出其他房屋价格?

为了预测其它房屋价格,我们需要建立一个函数,一种特征(输入)和目标变量(输出)的映射关系(h),我们假设这个映射关系是y=h(x),我们需要根据表中的数据(称之为训练数据集),来找到这个能表示他们之间映射关系的函数(h函数又成为假设函数)。算法大致过程如下:

监督学习算法过程:


Training Set:训练数据集,训练样本。

Learning algorithm: 学习算法。

h: h(ypothesis) 函数

X:函数的输入,在课程中,表示房屋的居住面积

y:根据输入和h函数预测而来的房屋价值

首先,我们有一些原始的数据集(称作训练样本),一些作为特征输入,一些作为输出,根据这些训练样本和选定的学习算法来算出假设函数(h函数),训练完成后,可以根据这个假设函数来预测输出(房屋的价值), 通俗的来讲就像知道输入和输出,根据算法来找出他们之间的对应,以便来发现规律,为后面只有输入时,再根据这样的规律来预测输出。当我们需要去预测是目标变量是连续的,比如根据住房面积来预测房价,这类问题可以叫做回归问题。当需要预测的目标变量是离散的(就像根据居住的面积来判断这个住所是公寓还是房屋),这类问题可以叫做分类问题。

第一部分 线性回归

在前面讲到,房价与房屋面积的关系例子中,我们只选取了一个特征(房屋面积),现在再多加入一个特征值,卧室的个数,那么前面的数据表,就会变成如下形式:

我们把房价与特征之间的关系假设成线性关系:

θ表示参数,x表示各项特征(表中的数据项,x1表示卧室个数,x2表示房屋面积)。
那么如何来根据我们的数据求出假设中各个参数(也叫权重)的值?一种比较直观的想法是,让h函数值逼近数据中的房屋价值(y)。所以我们定义一个损失函数J(θ):

这个函数就是最小二乘法,现在的问题就是通过优化使得损失函数达到最小。
       现在要做的就是找到参数θ,使得损失函数J达到最小值,为了达到这个目的,我们会随机选取一个初始值,然后通过算法对这个初始值进行优化,来使损失函数达到最小。我们用梯度下降法,先利用选取的参数θ的初始值,再用下面的算法对参数持续更新:

其中α 叫做学习率,这个值,决定了每次在调整参数θ时的跨度,如果选取较大,可以会在函数的极值点附近来回摆动,如果选取较小,函数的收敛速度会很慢,影响算法的效率。
        对上述公式中求偏导部分进一步展开和化简:

        那么公式就会变化成下面部分:
                                                               (1)
这个公式就是最小二乘法,根据这个公式可以看得到我们对参数做出的调整也就是预测和实际数据之差。上面这个公式只是针对数据集中一个样本的公式,但对于所有样本都进行计算,我们有两种方法:其中一种是用下面的公式做替换:
                                    (2)
对比公式(1),我们会发现公式(2)把数据集中所有样本的误差都加了起来,公式(1)就是简单的梯度下降方法,而公式(2)被称为批梯度下降(batch gradient descent),这里需要注意,梯度下降法容易受到局部的极小值的影响,但是本例中,只有一个全局的最小值,没有局部的极小值,所以我们在使用这个算法时,梯度下降总是收敛的。根据这个算法,就可以找到各个参数的极小值,求出我们的模型h(θ)。
        与公式(2)的批梯度下降算法类似的,还有一种算法:


在这个算法中,每一次迭代我们只用数据集中的一个样本(而不是像公式(2)中把所有样本的在一次迭代中使用),根据这一个样本的误差来更新参数的值,这个方法我们叫做增量梯度下降法。
       批梯度下降法在对一个参数做一次调整时,都会浏览数据集中的每一个样本(如果样本数很多的时候,这就是一个不小的开销),而增量梯度下降法,读一个样本就可以针对参数做出调整。通常情况下,增量梯度下降法能更快使得参数逼近最小值,(这里需要注意,最后的结果不一定真的是最小值,θ可能会让J(θ)在最小值左右不停的震荡,但是根据实际的效果来看大多数接近最小值的θ,已经使函数值逼近我们可接受范围内的最小值了)。
        所以在训练数据集很大的情况下,增量梯度下降法比批梯度下降法更适用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值