当前位置:   article > 正文

机器学习线性回归_机器学习笔记——线性回归

更一般的线性回归模型

4f74499d3af67dde5b54aa2d964bef5a.png

有监督学习的目的,即从数据集中提炼特征值和标签值的相关性,也可以看作想要得到从特征空间到解空间的一种映射。由于真实的映射对我们来说永远是未知的(除非整个数据集都是人为“创造”而来),我们只能对这种映射做出一些合理的猜想。而最简单也最容易想到的一种猜想就是特征值与标签值之间具有线性关系。因为这是我们在学习数学的过程中最早接触的一种映射关系:线性函数

1. 简易的线性回归模型

如果这里的

是预测的标签值,而
是对应的特征值,就能得到线性回归的最简单形式:

这里的

是这一线性映射计算得出的值,即预测值,也可以写作
借以与
真实的标签值
进行区分。
也是根据数据集计算出的参数值,而并非
真实的特征与标签之间的关系。事实上,将计算得出的值与真实值严格加以区分是因为这种线性模型几乎不可能完美预测出真实的映射关系。由于多种因素,例如没有将所有真正有影响的属性纳入模型或者是某些特异点的出现,特征与标签之间真实的映射关系应该表示为:

这里的

被称为"
irreducible error"。它是由于模型本身的缺陷造成的无法消除的误差值,是均值为0的随机值。这一误差值与特征值无关,因此是不能通过数据集中的特征值进行预测或求解的。因此我们能做的只能是尽量用猜想出的
模拟出真实的函数
,并减少两个函数之间的误差。

对于训练集中已有的真实标签值

,要使
相差最小,容易想到令二者的差值最小即可。由于实际上样本点是有可能分布在函数的上下两侧的,为了消除正负号差异,就取差值的平方来计算。这种差值的平方也称作
残差平方和

即,训练集中有

个样本,
表示第
个样本的特征值,
表示第
个样本的标签值。对所有样本求得假设函数值与实际标签值的误差再求和,能使得这个总误差值最小化的参数
就是最优的参数。这种使用均方误差最小化来求解最优参数的方法也叫
最小二乘法

要令

最小化,可以分别对参数
求导,并令导数为0。由于这个均方误差的函数是一个凸函数,因此其最小值一定是全局范围内的最小值。可以求出最优解为

当然,实际生活中所研究的一般不会是只有一个特征值这样的简单情况。

2. 更加一般化的线性回归模型

一般在实际生活中遇到的线性模型中,训练集里的实例都会有多个属性,即多个特征值。此时的假设函数形式变为:

此处,全部实例的全部特征值

其实是一个
维的矩阵。为了方便表示,在这个矩阵的最开始插入一个全部为1的列,即引入一个常量
。此时
变为一个
维的矩阵,而
则是一个
维向量。于是上式可以转而表示为:

如果将所有标签值表示为一个

维向量
,与上一小节中的最简形式相似,可以通过最小化残差平方和求得参数
的值:

将残差平方和的式子对

求导可以得出导函数为:

令该式为0,同样可以解出最优的参数向量

。但由于计算该式涉及到了矩阵求逆的运算,此处分情况讨论具体的求解过程。如果
是可以求逆的满秩矩阵或者正定矩阵,就可以令上式为0解得:

该式也称为正规方程(Normal Equation)

然而现实生活中经常遇到特征种类远远大于实例个数的情况,此时

的列数远大于行数,不可能使得
满秩。此外,由于在计算机中对矩阵求逆的时间复杂度非常高,如果特征维度很高的话使用正规方程法也会让计算速度极大减缓,浪费时间。因此,在编程求解线性回归模型时,需要有效率更高的方法进行参数的优化。

3. 梯度下降法优化参数

梯度下降的核心思想是:从某一组特定的参数值出发并不断变化这些参数值,使得代价函数的值不断减小,直到最终到达其最小值。该算法只能达到所谓“局部最小值”,但由于线性回归的特殊性,其代价函数(凸函数)只有一个最小值,因此梯度下降在线性回归中总能到达全局最小值。

梯度下降的思想如同在山丘上逐步向可见的最低谷处出发,逐步下降。

梯度下降的具体算法如下:

如果令残差平方和的均值(均方误差)为代价函数

(此处取1/2只是为了求导方便,并不影响最小化的过程)

梯度下降算法对所有参数不断重复这一步:

直到最终收敛至最小值。

此处的

是称为
学习速率(learning rate)的参数,这一参数控制着算法在每一步下降时的步长大小。如果学习速率偏大,则算法将会一次下降较多。需要注意的是,如果
值过大,算法很有可能永远无法到达最小值,即一步迈过了最小值。

所有的

个参数值必须同时更新

公式中的偏导数项则用来确保梯度下降的方向一定朝向最小值。同时,由于该偏导数项会在逐步接近局部最小值时不断变小,因此即便不减小学习速率值,梯度下降也将会越来越缓慢。

为了将梯度下降算法应用到线性回归中,只要将线性回归的代价方程带入梯度下降公式即可。求得偏导数项为:

这种每次下降都要求方差和,即需要使用所有实例的梯度下降算法称为批量梯度下降(batch gradient descent)如果在训练集中实例过多的情况下,这一算法的运行速度会极为缓慢。但该方法的优势在于确保参数能收敛至局部最优。

为了弥补批量梯度下降的这一问题,提出了随机梯度下降(stochastic gradient descent)算法。该算法并不在更新参数时对所有实例进行计算,而是对所有参数进行循环计算,每次只使用一个参数去提升模型对于某一个实例的预测能力。这种算法并不能收敛至全局最优,但能够保证尽量接近,同时节省了很多运算时间。 同时也可以逐渐减小学习速率保证准确度。

4. 线性回归的推广

显然,上述线性回归模型的输出值是可以在整个实数集中取值的。然而有时在实际任务中,输出空间不一定需要这么大;又或者单纯在线性尺度上变化的输出变化幅度太小了,需要一些幅度更大的变化。此时就可以让

不仅仅作为预测的值,而是让其作为另一个函数
的自变量,再让该函数输出真正的预测值。

举例而言,如果我们认为某个训练集中的标签值可能与特征值具有类似指数函数的关系,即:

这里,函数

就称为
链接函数(Link Function),而这种通过链接函数再做线性回归的模型就称为广义线性模型(Generalized Linear Model, GLM)

对广义线性模型的参数估计一般通过极大似然法进行,而线性回归,逻辑回归等属于广义线性模型的模型,其代价函数的选取也可以从极大似然法中推导出来。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/144935
推荐阅读
相关标签
  

闽ICP备14008679号