机器学习 线性回归原理详解

线性回归

线性回归是机器学习最基础的,也是最经典的算法,下面就来介绍这个算法。

假如我们要去银行贷款,那么银行会贷给我们多少钱,我们可以通过特征来计算出来。

  • 数据:工资和年龄(2个特征)
  • 目标:预测银行会贷款给我多少钱 (标签)
  • 考虑:工资和年龄都会影响银行贷款的结果,那么它们各自有多大的影响呢?(参数)
工资 年龄 额度
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

在以前数学课中,线性方程就是要在坐标轴找出一条直线来拟合我们的数据,那当我们的x变成两个特征,那我们就要和下图一样找出一个最合适的平面,来拟合我们的数据了。
在这里插入图片描述
现在,为了求出平面,我们要引入参数了,我们假设年龄对最终的结果造成了θ1的影响,工资对最终的结果造成了θ2的影响,我们把参数和特征结合在一起,那么这个平面的方程为θ0+θ1x1+θ2x2(θ0是偏置项,和特征没有关系),(θ1θ2是权重参数,对结果造成较大的影响,θ0是偏置参数,对结果造成较小的影响)
在这里插入图片描述
我们拟合的平面看起来有点长,我们把他整合成上面的形式,可能有人会问,如果是上面那样,那平面不就变成θ0x0+θ1x1+θ2x2了吗,x0是什么呢,在这里,我们为了方便,我们加入一列x0,每一列都是1,1乘任何数都等于这个数本身,所以我们最后把平面整合成了一个简单的式子(这样是为了矩阵的运算)。

误差

上面的我们求出的平面是我们的预测值,那么,预测值和真实值之间肯定有差异(我们用ε来表示该误差)。
所以对于每个样本,
y代表的是真实值,i表示的是第i个样本,真实值=预测值+误差。

高斯分布(正态分布)

对于误差ε来说,ε符合高斯分布的条件,独立并且具有相同的分布。
高斯分布的意思是,大多数情况下,误差都在对称轴左右浮动,并且浮动不会太大,极小情况下浮动比较大。
在这里插入图片描述
我们知道了误差是服从高斯分布的,那我们把误差代进高斯分布的表达式里(exp(x)代表的是e的x次方)
在这里插入图片描述

似然函数

关于似然函数,https://blog.csdn.net/caimouse/article/details/60142085 这篇博文我觉得还不错,大家可以参考一下,简单来说,似然函数就是求出什么参数跟我们的数据组合后恰好是真实值。
而极大似然估计,讲的是,什么样的概率使得我们的结果越大越好呢,我们要做的就是使他成为真实值的概率越大越好。下面是最大似然估计(m表示有m个样本):
l80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
上面的式子是累乘,我们要把它变成对数似然函数,因为logAB=logA+logB,加法问题比乘法问题好求太多了。
在这里插入图片描述
因为logAB=logA+logB,式子从累成变成累加的了,接着进一步求解mNzZG4ubmV0L3dlaXhpbl80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
在这里插入图片描述

目标

现在我们的目标转换成,让似然函数(对数变换后也一样)越大越好。
那么对于上面的式子,左边的是常数,右边的我们就希望他越小越好,这样整个函数才会越大。
在这里插入图片描述
现在目标函数就变成了上面这个式子,我们希望这个式子越小越好。求这个目标函数,我们有两种方法,第一种方法是矩阵法,第二个方法是梯度下降。

矩阵法求解

我们可以把式子进一步化简,化简成矩阵计算的形式,这里的(X是m行x列,θ是x行1列)
在这里插入图片描述 对于这个式子,我们可以用矩阵法来求解,通过对θ求偏导的方式,求得θ。
https://blog.csdn.net/u012421852/article/details/79562125 这个博文很详细的讲到了求导的过程。
最终,我们可以得到θ的值,就是下面的式子。

梯度下降求解

对于矩阵法,有时候并不能够直接求解,我们就需要用到梯度下降法,是机器学习很重要的一个优化策略。

梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

梯度下降讲的是,对于一个求极值的问题,我们可以沿着各个参数导数为0的方向前进。
这就是我们目标函数的图像(对于线性回归的目标函数,图像是一个碗状,也是凸函数)(2个参数,θ0和θ1),要想走到最低点,我们需要一步一步来。
在这里插入图片描述
我们新构建一个目标函数(平方误差函数,m代表m个样本,我们需要对损失函数求均值,右边括号表示预测值减去真实值的误差的平方):
80MzE3MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们的目标函数求参数求导得到的是(红圈圈起来的表示第i个样本第j个特征的x值):
在这里插入图片描述
接着我们要更新参数了,更新后的参数为原来的参数减去α乘以上面的式子,这里的α代表的是学习率。

学习率值的是你更新权重的快慢,当设置过大,你可以就会错过最低点还会使函数不能收敛甚至发散,所以不能设置过大。
在这里插入图片描述
我们注意到了式子有个m,我们进行梯度下降的时候,可以对m进行设置。

  • 批量梯度下降法
    m=全部样本时,我们可以称为批量梯度下降法,意思是一次迭代所有样本 ,容易得到最优解 ,缺点是,如果面对数量巨大的样本量(如40万个),采取这种训练方式,所耗费的时间会非常长
  • 随机梯度下降
    m=1,每次找一个样本,每训练一组样本就把梯度更新一次。缺点是容易造成过拟合
  • 小批量梯度下降
    每次取一小批样本,不容易造成过拟合速度也快,实用。

总结

我们通过对实际问题的转化求出线性回归的目标函数,通过矩阵法求解或者用梯度下降法求参数进行求解,线性回归函还是比较容易掌握的。

猜你喜欢

转载自blog.csdn.net/weixin_43172660/article/details/83309423