首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

走马观花机器学习之线性回归

前文【

走马观花机器学习之初步印象

】中以房屋总价估计的问题粗略解释了机器学习试图干什么。此类问题在机器学习相关问题中属于线性回归问题,也即所谓的 Linear Regression 问题。

一个真实的例子是关于美国波士顿的房屋价格的。该组数据收集了房屋实际出售的价格,和其他一些相关的指标,比如所在区域的犯罪率,距离市中心区域的距离,房子是否是河景房,等一些指标。人们寄希望于通过研究这些指标可以尽可能准确地对房屋售价进行预测。

我们先从最简单的情形开始,只根据房屋大小来预估房屋总价。由于美国人的房子都比较大,不像我们中国以公寓为主,因此他们描述房子大小更习惯用“有几个房间”这个指标,而不是我们中国的更习惯用“多少面积”来表示。房间个数和房子面积多数时候是成比例的,所以这并不影响分析的本质。

下面图中,横轴(x)表示房间数量,纵轴(y)表示房屋总价。我们先简单认为房屋总价和房间数量之间是简单的线性关系。所谓的线性关系,即

y = a*x + b

注意,这个关系只是我们告诉机器的我们认为的关系,不代表这种关系就最准确。我们需要让机器学习的是a和b两个参数的值。图中的蓝线是学习出来的一个结果。

回顾前文【走马观花机器学习之初步印象】中提到的机器学习涉及的主要三个方面:

给“机器”找一些用于学习的数据。

让“机器”试着通过“学习”这些数据,总结出其中的规律。

让总结出的规律在新的数据输入下表现良好。

在上面这个图对应的例子中:

给机器提供的数据是房间数量和对应的房屋总价

让机器学习所用的方法是最小二乘法,总结出的规律是a和b两个参数

判断是否表现良好用的是最小平方和(Least Squares)

这里说的最小平方和是表示误差大小的一种方法。具体来说,我们输入给机器的数据是我们观测到的数据,我们试图让机器学习的是一种规律性的东西。根据这种规律性的东西我们可以计算出一个理论值,理想情况下理论值应该和观测到数据完全一致,但实际上大多是有误差的。

这种不完美是几乎是不可避免的。我们只能让误差尽可能地小。怎么衡量误差大小也不是唯一的。假设,对于输入x,实际观测值是y,这也是我们输入的数据,理论预测值是yhat。对于最小平方和的方法来说,就是希望所有的预测值与观察值的差的平方加在一起得出一个值,这个值应该最小。

利用线性代数的表示方法,机器学习可以认为就是求解下面的方程。

图中的约等于号,表示用某种方法评估出来的误差最小。在误差计算采用最小平方和的情况下,上面的方程可以直接用公式求出。

这种方法看起来更像是一种数学运算,好像与机器学习也没什么关系。在这种输入数据较少的情况下,确实如此。但今日的机器学习往往意味着大量的输入数据,在输入数据量很大的情况下,上面的计算方法因为涉及矩阵的求逆运算,效率就不是很高了。算法复杂度是n的3次方。而如果采用梯度下降法,则算法复杂度是正比于n的2次方,要少的多。

还有一个原因是上面的线性代数方法只适用于误差计算采用最小平方和的情况。但事实上,这并不唯一的衡量误差大小的方法。比如下图中,黑色的点是输入数据,最小平方和方法计算出来的结果如蓝色直线所示,但对于图示的问题,橙色直线才更接近我们想要的结果。梯度下降法可以适用于多种不同的误差估计方法。

因此,目前的机器学习中更多的采用梯度下降的方法来求解参数的取值。梯度下降的方法本质上是一种循环进行的负反馈操作。关于梯度下降算法的细节,留待下一篇介绍。

上面的房屋总价的例子中,只用了房间数量这一个输入参数。但实际上房屋总价可能跟多个因素相关,比如所在区域的犯罪率,距离市中心区域的距离,房子是否是河景房,等一些指标。对上面的例子进行推广,就是我们可以认为要探索的房价规律变成了

y = w0 + w1*x1 + x2*x2 + ... + wn*xn

这实际上仍然是线性代数的范畴,因此上面的线性代数的计算公式依然适用。梯度下降的方法也依然适用。

更进一步的考虑,有可能你觉得房屋总价和房间数量的平方有关系,那么你可以把房间数量的平方作为一个新的指标加入上面的公式。但由此引申出来的一个问题是,这种潜在的可能有关的指标很多,比如也有可能跟 x1*x2 的乘积有关系,也有可能跟x1*x3的乘积也有关系。这样一来,可能的潜在指标的数量太多,而且没办法简单知道到底有没有关系。这种情况下,神经网络的方法可以一定程度上简化这个问题。

机器学习中的线性回归,从粗略认识角度讲,大概就是这么回事。而且事实上也并不是什么新的概念。

机器学习领域的线性回归,主要是引入梯度下降法的计算方式,使得针对大数据的分析成为可能,同时在梯度下降的具体计算方式上有一些新的研究成果。同时,线性回归是机器学习领域其他问题的基石。分类问题(Logistic Regression)是建立在线性回归(Linear

Regression)的基础上的,神经网络中的神经元也是建立在线性回归的基础上的。

欢迎关注 Tcler : 从程序看世界,程序它会说话。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206A0IK5N00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券