线性回归与梯度下降

来源:互联网 发布:神话 知乎 编辑:程序博客网 时间:2024/04/30 00:51

  回归分析是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。更具体的来说,回归分析可以帮助人们了解在只有一个自变量变化时因变量的变化量。
  回归分析是建立因变数Y与自变数X之间关系的模型,可以有一个自变量X,也可以超过一个自变量(X1, X2 … Xi)。

  回归分析目的在于找出一条最能够代表所有观测资料的函数(回归估计式),并用此函数代表因变数和自变数之间的关系。
   

  线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。
  线性回归有很多实际用途。分为以下两大类:
  1)如果目标是预测或者映射,线性回归可以用来对观测数据集的和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的Y的情况下,可以用这个拟合过的模型预测出一个Y值。
  2) 给定一个变量Y和一些变量X1,…,Xp,这些变量有可能与Y相关,线性回归分析可以用来量化Y与Xj之间相关性的强度,评估出与Y不相关的Xj,并识别出哪些Xj的子集包含了关于Y的冗余信息。

  一个多变量线性回归模型表示为以下的形式:
 
  

  我们可以用矩阵来表示:

  

  拟合一个回归式就是要合适地选择参数,使函数模型最好的拟合观测值。一般情况下,观测值远多于所选择的参数。
  线性回归模型经常用最小二乘逼近来拟合,它通过最小化误差的平方和寻找数据的最佳函数匹配。

  

  对于单变量线性回归:

  

  就是要使下式最小化:

  
  可以对两个参数分别求导求解。

  梯度下降法(英语:Gradient descent)是一个最优化算法,通常也称为最速下降法。
  
  

  梯度下降法,基于这样的观察:如果实值函数F(x)在点a处可微且有定义,那么函数 F(x)在a点沿着梯度相反的方向 -∇F(a) 下降最快。
  因此,我们我们可以从某个初始值逐步迭代逼近最优值,有:

  

  使得:

  

  这里要满足:
  1)∇F(a)会使得x向最优值逼近
  2)在x达到最优值时,∇F(x)=0
  
  这里γ为学习速率。

  举例:y=x^2/2-2x

   

  计算过程:
  任给一个初始出发点,设为x0=-4。
  (1) 首先给定两个参数:1.5,0.01;
  (2) 计算导数:dy/dx = x-2
  (3) 计算当前导数值:y’=-6
  (4) 修改当前参数:
   x0=-4-1.5*(-6)=5.0;
  (5) 计算当前导数值:y’=3.0
  (6) 修改当前参数:
   x1=5.0 – 1.5*(3.0)=0.5;
  (7) 计算当前导数值:
    y’=-1.5
  (8) 修改当前参数:
    x2=0.5-1.5*(-1.5)=2.75;
  (9) 计算当前导数值:y’=0.75
  (10) 修改当前参数:
   x3 = 2.75-1.5*(0.75) =1.625;
  (11) 计算当前导数值:
   y’=-0.375
  (12) 修改当前参数:x4= 1.625-1.5*(-0.375)=2.1875;
  …

  可见,当学习速率=1.5时,搜索呈现振荡形式,在极值点附近反复搜索。可以证明,当学习速率<1.0时,搜索将单调地趋向极值点,不会振荡;当学习速率>2.0时,搜索将围绕极值点逐渐发散,不会收敛到极值点。
  为了保证收敛,学习速率不应当太大。但如果过小,收敛速度将十分缓慢。可以采用自适应调节的方法加快收敛而又不至于发散。

参考:
https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%80%A7%E5%9B%9E%E6%AD%B8

0 0
原创粉丝点击