梯度下降实例:一元线性回归

前言

梯度下降作为一种求解函数局部最小值的方法,在机器学习的许多方面都有所体现,本文主要通过介绍一元线性回归进而引入梯度下降。

1.一元线性回归

首先要理解回归的概念。回归的目的就是通过几个已知数据来预测另一个数值型数据的目标值。假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。

一元线性回归就是只包括一个自变量和一个因变量且二者之间的关系可以用一条直线表示,如果回归分析中包含两个或以上的自变量且因变量和自变量之间的关系是线性的,那么这种回归分析就叫多元线性回归分析。

下面举一个例子:

这是一张自变量房屋面积和因变量房屋价格之间的关系图

梯度下降实例:一元线性回归_第1张图片

如果画出两者之间的散点图并用一条直线去拟合的话如下图所示:

梯度下降实例:一元线性回归_第2张图片

那么可以得到这条直线的方程为

 如果再增添一个自变量房间数,数据集就如下图所示

梯度下降实例:一元线性回归_第3张图片

按照同样的方法,这时回归方程就可以表示为

所以当自变量增多时回归方程可以统一写成

这时我们要做的就是通过 某种方法来求方程中的\theta参数。

2.梯度下降

梯度是函数在某一点 变化率最大的方向他是一个向量,他的值为函数在这一点的方向导数的最大值。相信大家也都通过下山的例子很好的理解了梯度下降的使用原理。梯度下降就是要求我们沿着梯度的负方向(因为是求最小值的)去不断的迭代要求解的参数,直到收敛。

梯度下降理解后要记住一个公式:

 

这是参数更新的公式其中 \theta是我们要求的参数,\alpha叫做步长,\frac{\partial J( \theta )}{\partial \theta_{j} }就是梯度,-表示沿梯度的负方向。

梯度下降还分为批量梯度下降,随机梯度下降,小批量梯度下降,他们的不同在于选择谁作为梯度

批量梯度下降(Batch Gradient Descent):

选取所有样本的梯度来进行更新参数。                

随机梯度下降(Stochastic Gradient Descent):

选取一个样本的梯度来更新参数。    

小批量梯度下降(Mini-Batch Gradient Descent):

选取一部分样本的梯度来更新参数比如10个。 

梯度下降的关键还是寻找损失函数。

3.运用梯度下降 

在知道了梯度下降这一个求解函数局部最小值的方法后,我们就可以运用这一方法来求解线性回归中的参数θ,

首先肯定还是要构建损失函数,既然我们要求θ,我们对θ就有一个预期,当然是求出的结果最大程度拟合我们的样本,这时我们就可以构建一个函数:

来描述我们得到的θ的方程和真实值之间的误差,这个误差是越小越好,我们就自然而然的想到用梯度下降的方法来求θ。

于是我们得到θ的迭代公式:

                                       

                                                                                                                                                      

这里运用的就是批量梯度下降,对于每一个θ我们可以设置一定的迭代次数,或者当θ的变化值小于我们设置的某个阈值(如0.0001)时停止迭代,或者说损失函数的变化值小于某一阈值,这种方法的复杂度高,但得到的结果较精确。

总结

梯度下降在机器学习的很多方面都会用到,有时也会是梯度上升,线性回归只是他运用的一个方面。这里只是大致介绍了一些他的运用方法和基本概念,要想真正熟练运用,还是得掌握损失函数的构建方法。

参考文章:线性回归与梯度下降算法 - 上品物语 - 博客园线性回归与梯度下降算法 作者:上品物语 转载自:线性回归与梯度下降算法讲解 知识点: 线性回归概念 梯度下降算法 l 批量梯度下降算法 l 随机梯度下降算法 l 算法收敛判断方法 1.1 线性回归 在https://www.cnblogs.com/eczhou/p/3951861.html

你可能感兴趣的