专栏首页趣Python机器学习(6)手推线性回归模型(梯度下降法)

机器学习(6)手推线性回归模型(梯度下降法)

今天我们给出梯度下降(Gradient Descent)的推导示例,通过一个简单的例子让我们理解GD的流程和本质。

其实梯度下降是比较怂的解决方案,实在是在数学方法没辙了,那我就用物理的方法:按照一定的步长遍历参数空间,为了加快搜索,每次都沿下降最快的方向寻找,直到找到最佳的参数解;当然这也是一种直觉上的解决方案,就跟在游戏中搜索地图一样,不停去尝试。

这个方法的优缺点也是一目了然的:

相对于矩阵求逆,梯度下降理解简单,计算也简单;

其缺点是迭代较慢,有可能陷入局部最优。

梯度下降的公式推导和示例如下:

在如上的示例中,我们已知y = 2*x + 3的4个样本,GD的学习率取0.1,示例中给出了前两步的计算推导,供参考。

程序计算的迭代数据如下所示,跟手推的一样:

GD对学习率比较敏感,取值过小,迭代极慢;取值过大,可能跑过了,震荡较大,甚至无法收敛。

业界的说法,一般学习率取0.01比较合适。

如下三张图给出了取不同学习率下w,b,J的收敛曲线。

(如果觉得文章不错,请点在看支持,谢谢!)

本文分享自微信公众号 - 趣Python(yang-an-china),作者:滚神大人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习(3)再说监督学习的套路

    当我们辨别一个东西的时候,实际上我们是在比较特征,它跟那些特征相似,我们就认为它是啥?对吧。

    滚神大人
  • 机器学习入门介绍

    机器学习的方法改变了计算机的工作方式,它使得计算机不再依赖于硬编程,而是可以从实例和经验中进行学习。你把数据喂给它,它根据特定的算法和数据建立逻辑,输出结果,期...

    滚神大人
  • 机器学习(2)细说监督学习

    前面说到了监督学习是有老师教的,所以不管是啥类型的算法,只要它是监督学习,要有老师教才行。

    滚神大人
  • 如何记笔记

    Step1. 在听讲过程中,在左侧内尽量多记有意义的论据、概念等讲课内容。 Step2. 下课以后,尽可能及早将这些论据、概念简明扼要地概括(简化)在右侧。 ...

    万木逢春
  • Java中常见数据结构List之ArrayList

    一枝花算不算浪漫
  • 天空飘来五字:Android逆向smali

    本期,我们将继续Android逆向动态分析之smali篇。内容包括smali语言介绍与动态调试。

    漏斗社区
  • Intellij IDEA实现SpringBoot项目多端口启动

    dalaoyang
  • dotnet OpenXML 文本 Kerning 字间距的作用

    在 PPT 和 Word 排版里面,小伙伴会接触到 Kerning 字间距这个属性,本文将告诉大家这个属性的功能,以及为什么需要在 OpenXml 里面设置这个...

    林德熙
  • 【TS】358- 浅析 TypeScript 设计模式

    设计模式就是软件开发过程中形成的套路,就如同你在玩lol中的“正方形打野”,“四一分推”,又或者篮球运动中的“二夹一”,“高位单打”一样,属于经验的总结。

    pingan8787
  • 解读闭包,这次从ECMAScript词法环境,执行上下文说起

    对于x年经验的前端仔来说,项目也做了好些个了,各个场景也接触过一些。但是假设真的要跟面试官敞开来撕原理,还是有点慌的。看到很多大神都在手撕各种框架原理还是有点羡...

    Tusi

扫码关注云+社区

领取腾讯云代金券