发布时间:2022-09-13 03:00
线性回归与梯度下降算法
1.1 线性回归
概念:在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个 自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。
一元线性回归分析:只包括一个自变量和一个因变量,二者关系能用一条直线近似表示(两个及以上的自变量,且因与自变量成线性:多元线性回归分析)
例如:
房价(因变量)与面积(自变量)根据一些数据集,可以通过画回归方程图像得到线性方程:
若再添加一个自变量房间数:分析得到的线性方程:
因此一元线性方程还是多元线性方程可以统一写成
上式中x0=1,而求线性方程则演变成了求方程的参数ΘT。
线性回归假设特征和结果满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以有前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算,这样就可以表达特征与结果之间的非线性关系。
1.2 梯度下降算法
为了得到目标线性方程,确定以及判断公式(3)中ΘT效果好坏使用一个损失函数(loss function)或错误函数(error function)评估h(x)函数的好坏。错误函数如公式(4)。
最小二乘法(min square)和梯度下降法可以调整ΘT以使得J(Θ)取得最小值。
1.2.1 批量梯度下降算法
求ΘT演变成了求J(Θ)的极小值,使用梯度下降法。梯度下降法中的梯度方向由J(Θ)对Θ的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的反方向。
公式(5)中α为学习速率,当α过大时,有可能越过最小值,而α当过小时,容易造成迭代次数较多,收敛速度较慢。假如数据集中只有一条样本,那么样本数量很小,所以公式(5)中
即公式(5)演变成:
当样本数量m不为1时,将公式(5)中由公式(4)带入求偏导,那么每个参数沿梯度方向的变化值由公式(7)求得。
初始时ΘT可设为,然后迭代使用公式(7)计算ΘT中的每个参数,直至收敛为止。由于每次迭代计算ΘT时,都使用了整个样本集,因此我们称该梯度下降算法为批量梯度下降算法(batch gradient descent)。
1.2.2 随机梯度下降算法
当样本集数据量m很大时,批量梯度下降算法每迭代一次的复杂度为O(mn),复杂度很高。因此,为了减少复杂度,当m很大时,我们更多时候使用随机梯度下降算法(stochastic gradient descent),算法如下所示:
每读取一条样本,就迭代对ΘT更新,然后判断其是否收敛,若没收敛,则继续读取样本进行处理,如果所有样本都读取完毕了,则循环重新从头开始读取样本进行处理。
这样迭代一次的算法复杂度为O(n)。对于大数据集,很有可能只需读取一小部分数据,函数J(Θ)就收敛了。比如样本集数据量为100万,有可能读取几千条或几万条时,函数就达到了收敛值。所以当数据量很大时,更倾向于选择随机梯度下降算法。
但是,相较于批量梯度下降算法而言,随机梯度下降算法使得J(Θ)趋近于最小值的速度更快,但是有可能造成永远不可能收敛于最小值,有可能一直会在最小值周围震荡,但是实践中,大部分值都能够接近于最小值,效果也都还不错。
1.2.3 算法收敛判断方法