线性回归——梯度下降法

前面的文章讲了使用最小二乘法来求线性回归损失函数的最优解,最小二乘法为直接对梯度求导找出极值,为非迭代法;而本篇文章了使用一个新的方法来求损失函数的极值:梯度下降法(Gradient Descendent, GD),梯度下降法为最优化算法通常用于求解函数的极值,梯度下降法为迭代法,给定一个β在梯度下降最快方向调整β,经过N次迭代后找到极值,也就是局部最小值或全局最小值
  梯度下降法又分为批量梯度下降法随机梯度下降法,通常随机梯度下降法性能会好点;不过我们这里讲的为批量梯度下降法;

梯度

  梯度为微积分中的概念,梯度所指方向为方向导数最大的量,梯度指出了全局或局部范围内哪个方向函数增长最快,可用于求函数极大值或极小值
  梯度求法为:对函数每个自变量求偏导数,将该偏导数作为其自变量方向的坐标;
▽表示梯度
  例如:84976-20161114234609857-1344958809.png的梯度为:
  
84976-20161115002009123-1504469438.png

梯度下降法

  下面先通过一个简单的示例来了解梯度下降法的使用,我们使用梯度下降法来求84976-20161114234651670-2074092043.png

的极小值:
84976-20161114234711185-128291091.png

84976-20161114234720467-1911693393.png

  84976-20161114234735451-841782587.png
            函数的图形

  当X=3为时f(x)=27,关于X的偏导数值为27也就是梯度为27;当X沿着+27方向变化f(X)将会增大,如X沿着相反方向也就是-27方向变化f(X)值将会减小,即增大时为梯度上升,减少为梯度下降;我们可以通过这种方式来求f(X)的极小值与极大值,求极小值的方法也称为梯度下降法;
  已上述84976-20161114234837029-1831713210.png为例,使用梯度下降法求极小值;选择一个自变量初始点(种子点),计算该梯度值,然后自变量沿着梯度相反方向下降(负方向),下降步长通常根据经验值指定,用α表示;通过以下几点来判断是否已经找到极小值:

  1、达到指定迭代次数
  2、当前的函数值大于上次函数值
  3、函数值非常接近于0

  84976-20161114234857404-164415448.png梯度为84976-20161114234905842-1310994087.png,初始点选择3,步长设置为:0.1
迭代方式为:84976-20161114234942623-1130131756.png,i为迭代的次数;
迭代过程:

x = 3,梯度为:27,降下方向为-27方向  
x = 3-0.1*27=0.3,梯度为:3*0.3^2=0.27  
x = 0.3-0.1*0.27=0.273,梯度为:3*0.273^2=0.223587  
x = 0.273-0.1*0.223587= 0.2506413,梯度为:3*0.2506413^2=0.18846318379707  
x = 0.2506413-0.1*0.18846318= 0.23179498,梯度为:3*0.231794982^2=0.1611867410  

  迭代了五次,假设最大迭代次数为5,已经求出极小值;为当x=0.23179498时,函数84976-20161114235006701-1996975887.png

的极小值为:0.01245409225705;

线性回归

  上篇文章中说过,拟合函数为:84976-20161114235025201-576439369.png线性回归的损失函数为:

  84976-20161114235049185-40441567.png
  84976-20161114235121138-1199263485.png

  损失函数关于W的偏导数为:

  84976-20161115011147310-1145743300.png

  则有:

  84976-20161114235220763-278888205.png

  N为数据集的大小,w , x , y 为向量;

  84976-20161114235304982-555034939.png
  84976-20161114235315888-936477536.png
  84976-20161114235325685-1621654882.png
  84976-20161114235334998-84639334.png

  w向量中每个标量的偏导数为:

  84976-20161114235633107-73169253.png
  84976-20161114235641217-203897796.png
  84976-20161114235649935-1443884346.png

  设α为步长,求w的迭代公式为:

84976-20161114235718107-1107861952.png

参考资料:
http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6
a first course in machine learning

文章首发地址:Solinx
http://www.solinx.co/archives/758

转载于:https://www.cnblogs.com/softlin/p/6064034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值