博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量梯度下降法(Batch Gradient Descent)
阅读量:4478 次
发布时间:2019-06-08

本文共 684 字,大约阅读时间需要 2 分钟。

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

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

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

 

梯度下降的线性回归

  线性模型的代价函数:

    

 

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

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

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

 

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

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

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

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

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

 

 

梯度检验(Gradient Checking)

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

            

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

 

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

你可能感兴趣的文章
DexClassLoader和PathClassLoader
查看>>
Beta阶段敏捷冲刺前准备
查看>>
Fabric 1.0交易流程
查看>>
我的json理解
查看>>
mysql存储过程详解
查看>>
mini web框架-3-替换模板
查看>>
Siamese Network简介
查看>>
第六节 MongoDB 状态监控、备份复制及自动分片
查看>>
第三部分:Android 应用程序接口指南---第二节:UI---第五章 设置(Settings)
查看>>
Purfer Sequence
查看>>
(转载)linux下各个文件夹的作用
查看>>
转 能说明你的Javascript技术很烂的五个原因
查看>>
省电的iPhone定位
查看>>
easyUI解析器
查看>>
POJ 2411 压缩状态DP
查看>>
用requests库和BeautifulSoup4库爬取新闻列表
查看>>
mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法...
查看>>
ESB---企业服务总线
查看>>
svg学习(三)rect
查看>>
面向对象的注意事项
查看>>