线性回归之梯度下降法

1.对梯度下降法概念的理解:

在求解机器学习的算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的算法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。

2.梯度:

在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y),分别对x,y求偏导数,求得的梯度向量就是(f/x, f/y)T,,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(f/x0, f/y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(f/x, f/y,∂f/z)T,以此类推。

3.梯度下降的相关概念:

1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

2.特征(feature):指的是样本中输入部分,比如样本(x0,y0,x1,y1,则样本特征为x,样本输出为y

3. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)。比如对于样本(xi,yi(i=1,2,...n),可以采用拟合函数如下: hθ(x) = θ0+θ1x

4. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于样本(xi,yi(i=1,2,...n),采用线性回归,损失函数为


4.梯度下降的直观了解:

首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。


5.梯度下降法代数实现的步骤:

1. 先决条件: 确认优化模型的假设函数和损失函数

2. 算法相关参数初始化:主要是初始化ε以及步长α,在没有任何先验知识的时候,我喜欢将所有的θ初始化为0,将步长初始化为1,在调优的时候再优化。

3. 算法过程:

1)确定当前位置的损失函数的梯度,对于θi,其梯度表达式如下:


2)用步长乘以损失函数的梯度,得到当前位置下降的距离,即对应于前面登山例子中的某一步,表达式如下:



其中,α表示步长,也就是每次按照梯度减少的方向变化多少。

3)确定是否所有的θi,梯度下降的距离都小于ε,如果小于ε则算法终止,当前所有的θi(i=0,1,...n)即为最终结果。否则进入步骤4.

4)更新所有的θ,对于θi,其更新表达式如下。更新完毕后继续转入步骤1.


参考文献:

http://blog.csdn.net/erli11/article/details/36205505

http://www.360doc.com/content/12/0529/22/4617781_214618453.shtml

http://www.cnblogs.com/pinard/p/5970503.html









                                         





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值