美文网首页
2.1 基本线性回归

2.1 基本线性回归

作者: 躺在稻田里的小白菜 | 来源:发表于2018-06-25 15:56 被阅读0次

一.线性回归问题

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归包括一元线性回归和多元线性回归,一元是只有一个自变量x,多元是指有多个自变量x1,x2.....如y=a0+a1x1+a2x2。
首先我们来看一个例子:

假定我们有一个数据集,数据集中给出了来自俄勒冈波特兰的47所房子的居住面积,卧室数和价格。现在要根据卧室数和面积来得出价格。很明显,这是一个监督学习中的回归问题。
我们不妨先假设一个线性函数关系:函数h表示房价,x1表示面积,x2表示卧室数目。 为了简化我们的符号,我们也引入x0=1,那么上述函数可以写成:

现在,我们想要根据训练集数据拟合一个函数,这就需要我们求出参数值。大家可以想象,我们肯定希望找到的那个函数,距离每个点都很近,最好所有的点上都在这个函数上,但是这肯定不现实,所以我们希望这些点尽量离函数近一点,也就是所有训练样本到函数的距离之和最小。用数学的方式形式化,我们得到代价函数J

这里为了便于计算,将距离做了平方并且乘以一个1/2,xi,yi表示训练集第i行的属性和标记。现在问题就转化成了求出所有参数值,使得代价函数J的值最小。解决这个问题可以选择梯度下降法,也可以使用最小二乘法

二.梯度下降法

(一)前提

在介绍梯度下降法之前,我们先回顾一下几个基础的数学概念。

  1. 导数
    一个点的导数不仅仅表示该点切线的斜率,还反应了函数在该点的变化率。


  2. 偏导数
    在二元函数中,偏导数仅仅是表示某点在x方向的导数和在y轴方向的导数。这反应了偏导数的局限性,仅仅是多元函数沿着坐标轴的变化率,但是如下图,在M0点处存在很多方向的偏导数(并不仅仅x和y方向),这就引出了方向导数。


  3. 方向导数
    我们不仅仅要知道函数在坐标轴方向上的变化率(即偏导数),还需要设法求得函数在其他方向上的变化率。而方向导数就是函数在其他特定方向上的变化率。
    从二元函数上某点P点向某个方向发出一条射线,通过p0(x+△x,y+△y)且P0在领域内。

    两点间距离
    若极限存在则方向导数为:
  1. 梯度
    由上面的方向导数可知,方向导数是在各个方向上都有,而且每个方向上的变化一般是不一样的,那到底沿哪个方向最大呢?沿哪个方向最小呢?为了研究方便,就有了梯度的定义。


  • 梯度是一个向量,由函数f关于它的n个变量的偏导数构成,比如三元函数f的梯度为(fx,fy,fz),二元函数f的梯度为(fx,fy),一元函数f的梯度为f(x)
  • 梯度的方向是函数增长最快的方向,梯度的反方向是函数降低最快的方向。
(二)梯度下降法(BGD)

梯度下降法的基本思想:
我们的目的是寻找J最小时的参数,开始时我们随机选择一个参数的组合(θ_0,θ_1,......,θ_n ),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

前文线性回归的代价公式
目标函数J关于参数θ的梯度是目标函数上升最快的方向,那么让函数从任意一点开始,沿着梯度反方向移动一个步长α(α是学习率,它决定了我们沿着梯度方向向下迈出的步子有多大,α的值是根据情况自行设定的),就可以使得函数J下降的最快,形式化如下。(注意,这里所有的参数θ都要同时更新) 那么进行多次迭代,每次迭代都更新所有的θ(j=0,1,2,3.....),直到J收敛停止迭代:
我们发现在迭代过程中,每更新一个参数θ,都会计算一遍全部训练集,如果训练集很大,那么将很耗时间。
随机梯度下降(SGD):去掉求和公式,用样本中的一个例子来近似我所有的样本,来调整。
批量梯度下降(MBGD):其实批量的梯度下降就是一种折中的方法,他用了一些小样本来近似全部的,其本质就是1个样本近似全部不太准,那我多取几个样本会比随机的要准不少了吧,而且批量的话还是非常可以反映样本的一个分布情况的。

注意(以一元函数举例说明)

  1. 梯度下降法是收敛到局部最小值,不一定可以收敛到全局最小值,这与我们选择的初始参数有关。


    image

我们初始值选择了如图的x0,由于f在点x0的导数大于0,梯度方向向右,负梯度方向向左,从而x0向左移动,逐渐收敛到了局部最小值,而不能收敛到全局最小值。

  1. α的大小要适中
    学习率α太小,每次移动步长太小,收敛太慢,这个比较容易理解。
    学习率α太大,每次移动步长大,可能导致不收敛,这里用一个图来表示一下:



    由于距离最小值点越远,导数越大,从而导致步长越来越大,不会收敛。通常可以考虑尝试这些学习率:
    α=0.01,0.03,0.1,0.3,1,3,10

三. 最小二乘法

最小二乘法的本质就是利用向量表示代价方程J,然后对参数向量进行求导,令导数为0求极值,从而解出参数向量。

假设多元线性模型是:
那么将样本属性X带入方程可以得到:

用向量表示出来:



也就是:
同样,为了保证点到函数的距离和的平方最小,得到代价公式(Y是样本目标向量):

令J对参数向量求导:

最后如果 是可逆的,也就是说X是满秩的,那么解得:

如果不可逆,那就是有很多解了,取哪个解由归纳偏好决定。
至此,我们得到了所有的参数,模型建立完成。

相关文章

  • 2.1 基本线性回归

    一.线性回归问题 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法...

  • 线性模型

    1. 基本形式 即已知x,y通过机器学习的算法求得w与b 2.线性回归 2.1 问题描述 2.2 一元线性回归 2...

  • 第一次打卡

    线性回归主要内容包括: 线性回归的基本要素线性回归模型从零开始的实现线性回归模型使用pytorch的简洁实现线性回...

  • 动手学深度学习(一) 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 第一天-线性回归,Softmax与分类模型,多层感知机

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 机器学习笔记_02单变量线性回归

    二、单变量线性回归(Linear Regression with One Variable) 2.1 模型表示 n...

  • 第二章 线性表

    主要讨论线性结构 2.1 线性表的类型定义及基本操作 线性表的类型定义 线性表的基本操作

  • 动手学深度学习

    线性回归 一.主要内容包括: 1.线性回归的基本要素 2.线性回归模型从零开始的实现 3.线性回归模型使用pyto...

  • 动手学深度学习-01打卡

    线性回归 主要内容包括:1.线性回归的基本要素2.线性回归模型从零开始的实现3.线性回归模型使用pytorch的简...

网友评论

      本文标题:2.1 基本线性回归

      本文链接:https://www.haomeiwen.com/subject/kgdjeftx.html