45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读

2019-03-28 04:33:35 来源:www.45fan.com 【

本文将涉及以下知识点

 

(1)线性关系

(2)线性回归

(3)假设函数

(4)代价函数

(5)学习速率

(6)梯度下降

(7)特征向量

相关的线性代数或微积分知识,可参照另两篇博文

我的人工智能之旅----线性代数基础知识

我的人工智能之旅----微积分基础知识

线性关系

解释线性回归之前,先来看一下线性关系。

什么是线性关系?如果自变量与因变量存在一次方函数关系,那么就成自变量与因变量存在线性关系。例如

y=2x+3 //x为自变量,y为因变量

y=2j+3k+i //j,k,i为自变量,y为因变量

但需要注意的是,类似

y=zx //z,x为自变量,y为因变量

就不是线性关系。

线性关系还必须满足以下条件

【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读

线性回归

所谓线性回归,就是利用数理统计中的回归分析,来确定两种或两种以上变量间,相互依赖的定量关系的一种统计分析方法。

即由样本(x,y),推断y=ax+b的过程。其中a,b为需要推断的常量。那么,问题来了。

(1)为什么是"y=ax+b"型的一元一次结构?而非其它一元N次结构?

(2)如何推算出a,b?

假设函数

先来回答上一小节的问题(1)。可以使用其它一元N次结构。选择一元一次结构只是为了方便。之后的学习,可以换为更复杂的拟合结构。由于我们假设x,y之间存在"y=ax+b"型的映射关系,所以函数f(x)=ax+b被称为假设函数,hypothesis function。

对于假设函数中的参数a,b,我们没有办法直接算出正确的值。也无法让所有样本,都映射到假设函数上。因此,只能推算出对于样本集合整体来说,最佳的a,b取值。

 

代价函数(损失函数?)

如何评断参数a,b最佳?最佳a,b应使得假设函数求得的数据,与实际数据之间误差的平方和为最校

【人工智能】我的人工智能之旅——线性回归 研读

注:关于为何使用1/2m,而非1/m,我们在下一小节说明。

由于样本集中的每个样本(x,y)已知,算式中a和b成为了变量,算式可以看作是a,b作为变量的函数。即

【人工智能】我的人工智能之旅——线性回归 研读

该函数,被称为代价函数,cost function,或者平方误差代价函数,squared error cost function。

有了代价函数,推算a,b的问题就演化为,求代价函数何时取到最小值的问题。

当然,除了平方误差代价函数外,还存在其它代价函数。只是平方误差代价函数,是解决线性回归问题最常用的手段罢了。

但不管使用何种代价函数,我们的目的终归是要推算最佳的a,b。那么,如何推算呢?

梯度下降算法

梯度下降算法,gradient descent,用于求函数的最小值。该算法运用了微积分(claculus)中的导数(derivatives)或偏导数(partial derivatives)知识。

简单的说,导数体现了自变量在变化时,对因变量所产生的影响。若存在多个自变量,那么对其中一个变量进行的求导,即为偏导数。换句话说,一个自变量在变化时,对因变量和其它自变量所产生的影响。

若某一点的导数大于0,那么说明,因变量随自变量增大而增大,随自变量减小而减校若小于0,则因变量随自变量的增大而减小,随自变量减小而增大。依据该特性,我们不断地同时更新a,b的取值,直至(a,b)所对应的点导数为0。那么,如何更新呢?

【人工智能】我的人工智能之旅——线性回归 研读

我们将J(a,b)带入,来看一下运算过程。

【人工智能】我的人工智能之旅——线性回归 研读

 

还记得上一节的“1/2m”or“1/m”的疑问吗?通过运算,“1/2”被约掉。因此,代价函数之所以劝1/2m”作为参数,是为了运算方便。

将导数结果带入,通过不断的迭代尝试获取和,直至两者的偏导数为0或接近0。此时,得到的a,b的值,即为最佳值(全局最佳,或局部最佳)。

需要注意的是,由于受限于样本集合的大小,该最佳值可能为局部最佳值。

 

此外,初始点的选取,也将影响最佳值的推算。
【人工智能】我的人工智能之旅——线性回归 研读【人工智能】我的人工智能之旅——线性回归 研读

 

 

可见,梯度下降算法其实是一步一步的试出了对于样本集合最佳的a,b取值。有了a,b的估值,假设函数的真容也便浮出水面了。

梯度下降并非唯一的推算最佳参数的方法。其它常用方法还包括,BFGS算法,L-BFGS算法,共轭梯度法(Conjugate Gradient)等。这些方法远比梯度下降法复杂的多,但优点在于,它们不用人为的选择学习率,甚至可以每次迭代自动使用更优的学习率,因此收敛速度较梯度下降更快。由于篇幅及范围的原因,此处暂不过多涉及。

 

多元线性回归

至此,我们其实还是在讨论一元一次的简单假设,即一个自变量和一个因变量的情况。但实际遇到的问题并非如此简单。例如,房子的价值,不仅仅与面积有关,还要参考楼层,房龄,房间数量等多重因素,即多元线性回归的问题。

那么,我们的假设函数也相应发生了变化。

【人工智能】我的人工智能之旅——线性回归 研读

这里,我么把参数都变为了【人工智能】我的人工智能之旅——线性回归 研读,自变量变为了【人工智能】我的人工智能之旅——线性回归 研读(例如,【人工智能】我的人工智能之旅——线性回归 研读分别代表楼层,房龄,房间数量,【人工智能】我的人工智能之旅——线性回归 研读默认为1)。之所以这样表示,是为了方便矩阵的引入。根据矩阵内积(矩阵与向量的乘法),【人工智能】我的人工智能之旅——线性回归 研读可以表述为

【人工智能】我的人工智能之旅——线性回归 研读

若假设向量【人工智能】我的人工智能之旅——线性回归 研读向量【人工智能】我的人工智能之旅——线性回归 研读那么,向量A的转置【人工智能】我的人工智能之旅——线性回归 研读 = 【人工智能】我的人工智能之旅——线性回归 研读

则假设函数转化为【人工智能】我的人工智能之旅——线性回归 研读其中【人工智能】我的人工智能之旅——线性回归 研读称为特征(feature)X称为特征向量(feature vector)

解决多元线性回归的问题,我们同样使用梯度下降算法,即我们要推算出合适的A。而推算过程,我们已在上一小节进行了描述。那么,套用之前的公式,可得到代价函数,【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读(j=0,1,2,3)的迭代算法则为

【人工智能】我的人工智能之旅——线性回归 研读

其中

【人工智能】我的人工智能之旅——线性回归 研读

当j=0,1,2,3时,各偏导数为

【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读

【人工智能】我的人工智能之旅——线性回归 研读

由于【人工智能】我的人工智能之旅——线性回归 研读,所以

【人工智能】我的人工智能之旅——线性回归 研读

最终,参数向量A中的元素【人工智能】我的人工智能之旅——线性回归 研读的迭代算法为

【人工智能】我的人工智能之旅——线性回归 研读

小结

线性回归,可分为一元或多元线性回归。通过构建合理的假设函数和代价函数,利用梯度下降算法,迭代推算出对于样本集合来说,最佳的参数或参数向量。希望通过本文的叙述,使得大家对推算过程,线性回顾问题的解决思路,有一个大致的了解。

 
 

本文地址:http://www.45fan.com/a/question/99764.html
Tags: 人工智能 我的 之旅
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部