线性回归与梯度下降算法

发布时间:2022-09-13 03:00

线性回归与梯度下降算法

1.1 线性回归

概念:在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个 自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。

一元线性回归分析:只包括一个自变量和一个因变量,二者关系能用一条直线近似表示(两个及以上的自变量,且因与自变量成线性:多元线性回归分析)

例如:

​ 房价(因变量)与面积(自变量)根据一些数据集,可以通过画回归方程图像得到线性方程:

img

若再添加一个自变量房间数:分析得到的线性方程:

img

因此一元线性方程还是多元线性方程可以统一写成

img

上式中x0=1,而求线性方程则演变成了求方程的参数ΘT。

线性回归假设特征和结果满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以有前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算,这样就可以表达特征与结果之间的非线性关系。

1.2 梯度下降算法

为了得到目标线性方程,确定以及判断公式(3)中ΘT效果好坏使用一个损失函数(loss function)或错误函数(error function)评估h(x)函数的好坏。错误函数如公式(4)。

img

最小二乘法(min square)和梯度下降法可以调整ΘT以使得J(Θ)取得最小值。

1.2.1 批量梯度下降算法

求ΘT演变成了求J(Θ)的极小值,使用梯度下降法。梯度下降法中的梯度方向由J(Θ)对Θ的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的反方向。

img

公式(5)中α为学习速率,当α过大时,有可能越过最小值,而α当过小时,容易造成迭代次数较多,收敛速度较慢。假如数据集中只有一条样本,那么样本数量很小,所以公式(5)中

线性回归与梯度下降算法_第1张图片

即公式(5)演变成:

img

当样本数量m不为1时,将公式(5)中img由公式(4)带入求偏导,那么每个参数沿梯度方向的变化值由公式(7)求得。

img

初始时ΘT可设为img,然后迭代使用公式(7)计算ΘT中的每个参数,直至收敛为止。由于每次迭代计算ΘT时,都使用了整个样本集,因此我们称该梯度下降算法为批量梯度下降算法(batch gradient descent)。

1.2.2 随机梯度下降算法

当样本集数据量m很大时,批量梯度下降算法每迭代一次的复杂度为O(mn),复杂度很高。因此,为了减少复杂度,当m很大时,我们更多时候使用随机梯度下降算法(stochastic gradient descent),算法如下所示:

线性回归与梯度下降算法_第2张图片

每读取一条样本,就迭代对ΘT更新,然后判断其是否收敛,若没收敛,则继续读取样本进行处理,如果所有样本都读取完毕了,则循环重新从头开始读取样本进行处理。

这样迭代一次的算法复杂度为O(n)。对于大数据集,很有可能只需读取一小部分数据,函数J(Θ)就收敛了。比如样本集数据量为100万,有可能读取几千条或几万条时,函数就达到了收敛值。所以当数据量很大时,更倾向于选择随机梯度下降算法。

但是,相较于批量梯度下降算法而言,随机梯度下降算法使得J(Θ)趋近于最小值的速度更快,但是有可能造成永远不可能收敛于最小值,有可能一直会在最小值周围震荡,但是实践中,大部分值都能够接近于最小值,效果也都还不错。

1.2.3 算法收敛判断方法

  • 参数ΘT的变化距离为0,或者说变化距离小于某一阈值(ΘT中每个参数的变化绝对值都小于一个阈值)。为减少计算复杂度,该方法更为推荐使用。
  • J(Θ)不再变化,或者说变化程度小于某一阈值。计算复杂度较高,但是如果为了精确程度,那么该方法更为推荐使用。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号