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

批量梯度下降:在梯度下降的每一步中都用到了所有的训练样本。

思想:找能使代价函数减小最大的下降方向(梯度方向)。

    ΔΘ = - αJ      α:学习速率

 

梯度下降的线性回归

  线性模型的代价函数:

    

 

  对于更新项,为什么是 - α▽J :

  Θ如果在极值点右边,偏导大于0,则Θ要减去偏导的值(Θ偏大,减去一个正值)

  Θ如果在极值点左边,偏导小于0,则Θ要减去偏导的值(Θ偏小,减去一个负值)

 

  实现方法:同步更新每个Θ

  特点:当α过小时,梯度下降算法收敛得很慢(步长小)。当α过大时,可能会越过最低点,甚至发散(步长太大)。

     确定α之后,在算法随后的运行过程中,我们没有必要另外减小α的值,因为梯度下降算法能够自动减小步长。

     随着算法的进行,越接近局部最小值点,偏导的那一项越小,Θ的变化量也就越小。

  图中可以看出,初始Θ取粉色点所在的值,随着算法的进行步长越来越小。所以在算法运行过程中我们可以保持α固定不变,算法会自动收敛到局部最小值。

 

 

梯度检验(Gradient Checking)

  当对一个比较复杂的模型使用梯度下降算法时,可能存在一些不易察觉的错误。有时候cost虽然看上去在不断减小,但是最终结果可能并不是最优解。为发现以及避免这些错误的出现,我们采取一种叫做梯度检验的方法(数值计算梯度)。

            

注意:在代码中,梯度检验部分的代码比较耗时,所以仅在检验的时候使用,检验完就及时注释掉。

 

转载于:https://www.cnblogs.com/J-K-Guo/p/7163311.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值