线性回归模型:f(x) = y = wx + b
想要了解线性回归模型,我们先来了解一下它的一些基本概念:
一、成本函数(代价函数)
代价函数(成本函数):平均误差平方和,其中分母中的2是为了方便后续求导
目标:不断调整参数w和b的值,使得代价函数值最小,即平均误差平方和最小。
为了更好的进行理解,我们可以先理解简化后的式子:暂且将b设置为0,探究成本函数 J 随 w 的变化情况。
现在我们加上b的值,会得到一个3D模型直观示意图,从上往下俯视,可得到对应的平面等高图,等高图由一个个椭圆形组成,一个椭圆上的点所得到的成本函数值是相同的,最小的椭圆即最中心的点即为令成本函数最小的点。
下面我们使用梯度下降算法找出最合适的 w 和 b,使得他们对应的 J 值最小
二、梯度下降算法
梯度下降算法可用于最小化目标函数,它不仅仅只限于含有两个参数的目标函数,其原理如下:
想象一下我们站在山中一点处,想要最快得找到山谷最低点,此时我们就需要环顾一周,找到下坡最陡的方向(偏导数为0的点)前进一步,重复此步骤,我们就会找到一个局部最小值(极小值),接着再从起点出发,换一个下坡最陡的方向重复之前的步骤就会找到另一个局部最小值(极小值)…将这些局部最小值比较,可以找到最小值。
了解了梯度下降的基本原理,下面我们来看以下梯度下降算法的具体实现:
其中,alpha为学习率,他控制着参数w和参数b的更新步长,alpha位于0-1之间,值越大,说明一次迈出的“步伐”越大,进行梯度下降时越激进。
注意:即使固定Alpha的值,梯度下降的速度也会越来越慢,因为偏导数的值在逐渐减少。
你可能会疑问,梯度下降如何能找到局部最小值而停止呢,仔细想想,其实当达到局部最小值时,偏导数值为0,更新前的w和更新后的w相同,也就意味着w的值不再改变,此时也就证明了已经达到了局部最小值。
三、模型实现
了解了线性模型中的一些基本概念:成本函数,梯度下降算法等,下面我们来看一个具体的例子:
注意:当使用梯度下降算法时理论上我们得到的是局部最小值,但在此线性模型中,我们实际上得到的是全局最小值,因为我们的成本函数为平均误差和的平方,这也就意味着我们的成本函数是一个凸函数,而凸函数只有一个局部最小值也就是全局最小值,他的形状就像是一个碗的形状,又由于我们的w和b是同步更新的,所以不管我们从哪个地方进行梯度下降,得到的都是同一个全局最小值。
下面演示线性回归模型的具体过程,我们俗称批量梯度下降: