在数据科学中,梯度下降Gradient Descent algorithm是重要且困难的概念之一。在这里,我们以非常简单的方式通过一个示例来解释这个概念。看一下这个。

贾纳维·马哈坦(Jahnavi Mahanta)。

当我第一次开始学习机器学习算法时,要弄清算法的作用是一项艰巨的任务。不仅因为很难理解所有的数学理论和符号,而且还很无聊。当我转向在线教程寻求答案时,我只能再次看到方程式或高级解释,而在大多数情况下都无需进行详细介绍。

那时,我的一位数据科学同事向我介绍了在Excel工作表中制定算法的概念。这为我创造了奇迹。任何新算法,我都会尝试在一个很小的范围内以精益求精的方式学习,并相信我,它确实在增强您的理解力,并帮助您充分理解算法的美感。

让我用一个例子向您解释。

大多数数据科学算法都是优化问题,而最常用的算法之一就是梯度下降算法。

现在,对于初学者来说,名称“梯度下降算法”本身可能听起来很吓人,希望在经过这篇文章后,它可能会改变。

让我们以通过住房数据预测新价格的示例为例:

现在,给定历史房屋数据,任务是创建一个模型,该模型在给定房屋大小的情况下预测新房屋的价格。

任务–对于一栋新房子,给定其大小(X),其价格(Y)将是多少?

让我们从绘制历史住房数据开始:

现在,我们将使用简单的线性模型(在历史数据上拟合一条线)来预测给定大小(X)的新房子(Ypred)的价格


在上面的图表中,红线给出了给定房屋大小(X)时的预计房价(Ypred)。

Ypred = a + bX

蓝线提供了历史数据中的实际房价(实际)

Yactual和Ypred之间的差异(由黄色虚线给出)是预测误差(E)

因此,我们需要找到一条具有最佳a,b值(称为权重)的线,以减少预测误差并提高预测精度,从而最适合历史数据。

因此,我们的目标是找到使房屋实际价格和预测价格之间的误差最小的最佳a,b(1/2出于数学上的便利,因为它有助于计算微积分中的梯度)

平方误差总和(SSE)

Sum of Squared Errors (SSE) = ½ Sum (Actual House Price – Predicted House Price)^2=  ½ Sum(Y – Ypred)^2

(请注意,还有其他度量错误的方法。SSE只是其中一种。)

这是渐变下降出现的地方。梯度下降是一种优化算法,可找到减少预测误差的最佳权重(a,b)。

现在让我们逐步了解梯度下降算法:

  1. 步骤1:使用随机值初始化权重(a和b),然后计算误差(SSE)

  2. 步骤2:计算梯度,即当权重(a和b)从其原始随机初始化值改变很小的值时,SSE的变化。这有助于我们在使SSE最小化的方向上移动a和b的值。

  3. 步骤3:使用梯度调整权重以达到最佳值,其中SSE最小化

  4. 步骤4:使用新的权重进行预测并计算新的SSE

  5. 步骤5:重复步骤2和3,直到进一步调整权重不会显着减少错误为止

现在,我们将详细介绍每个步骤(我在excel中制定了步骤,粘贴在下面)。但是在此之前,我们必须对数据进行标准化,因为它会使优化过程更快。

步骤1:要拟合Ypred = a + b X线,请从a和b的随机值开始,然后计算预测误差(SSE)


步骤2:计算权重的误差梯度

∂SSE/∂a= –(Y-YP)
∂SSE/∂b= –(Y-YP)X

在此,SSE = 1/2 (Y-YP)^2 = 1/2 (Y-(a + bX))^2

您需要了解一些微积分,仅此而已!!

∂SSE/∂a∂SSE/∂b是梯度,它们给出了a,b w.r.t到SSE的运动方向。

步骤3:使用梯度调整权重以达到最佳值,其中SSE最小化

我们需要更新a,b的随机值,以便我们朝最佳a,b的方向移动。

更新规则:

a –∂SSE/∂a
b –∂SSE/∂b

回顾上面的图,

因此,更新规则:

  1. 新的a = a – r * ∂SSE/∂a= 0.45-0.01 * 3.300 = 0.42
  2. 新的b = b – r * ∂SSE/∂b= 0.75-0.01 * 1.545 = 0.73

在这里,r是学习率= 0.01,这是权重调整的速度。

步骤4:使用新的a和b进行预测并计算新的总SSE

您可以通过新的预测看到,总的SSE下降了(0.677至0.553)。这意味着预测准确性已经提高。

第5步:重复第3步和第4步,直到进一步调整到a,b的时间不会显着减小误差为止。那时,我们已经得出了具有最高预测精度的最优a,b。

这是梯度下降算法。该优化算法及其变体构成了许多机器学习算法(如神经网络乃至深度学习)的核心

免责声明:

请注意,这篇文章主要是出于教程目的,因此:

  1. 所使用的数据是虚拟的,数据大小非常小。同样为了简化示例,数据和模型是一个可变示例。
  2. 这篇文章的主要目的是强调我们如何通过在excel中解决问题来简化对Gradient descent等算法背后的数学运算的理解,因此,这里没有人声称与最小二乘回归相比,gradient descent可以提供更好的/更差的结果。
  3. 由于数据非常小,出于教程目的,整个数据都用于培训。但是,在构建实际的预测模型时,会利用各种数据验证技术(示例–训练/测试拆分或N交叉验证)

参考

https://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html

另外的资源

Gradient Descent, Step-by-Step
https://www.youtube.com/watch?v=sDv4f4s2SB8&ab_channel=StatQuestwithJoshStarmer

GRADIENT DESCENT: AN INTRODUCTION TO 1 OF MACHINE LEARNING’S MOST POPULAR ALGORITHMS
https://builtin.com/data-science/gradient-descent

Understanding the Mathematics behind Gradient Descent.
https://towardsdatascience.com/understanding-the-mathematics-behind-gradient-descent-dde5dc9be06e

机器学习,梯度下降算法,数学原理,高等数学如此简单
https://www.bilibili.com/video/BV1V5411b7Ne?p=1&share_medium=android&share_plat=android&share_source=WEIXIN&share_tag=s_i&timestamp=1622430288&unique_k=Kc1kqP

机器学习,梯度下降算法,问题引入
https://www.bilibili.com/video/BV1k54y1e7Aa

翻译:如何理解梯度下降算法Gradient Descent algorithm相关推荐

  1. 梯度下降算法(Gradient Descent)

    一.定义      梯度下降法(Gradient desent) 是一个一阶最优算法,通常也称为最速下降法.要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方 ...

  2. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降

    Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...

  3. 梯度下降(Gradient Descent),一句代码,一个式子

    一直以来,总是觉得国外的PhD们的教育以及课程的安排很好很强大,虽然是说很累作业多工作量大,但是功率大了,效果好点儿,浪费的时间也少,年轻人哪有怕苦怕累的.比比身边好多每天睡超过12小时的研究生们,不 ...

  4. 机器学习(1)之梯度下降(gradient descent)

    机器学习(1)之梯度下降(gradient descent) 题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记. 梯度下降是线性回归的一种(Line ...

  5. 【李宏毅机器学习】04:梯度下降Gradient Descent

    李宏毅机器学习04:梯度下降Gradient Descent 文章目录 李宏毅机器学习04:梯度下降Gradient Descent 一.梯度下降方法 二.梯度下降的改进方法 Tip 1: Tunin ...

  6. 随机梯度下降法_动量梯度下降法(gradient descent with momentum)

    简介 动量梯度下降法是对梯度下降法的改良版本,通常来说优化效果好于梯度下降法.对梯度下降法不熟悉的可以参考梯度下降法,理解梯度下降法是理解动量梯度下降法的前提,除此之外要搞懂动量梯度下降法需要知道原始 ...

  7. 理解梯度下降算法中的动量

    理解梯度下降算法中的动量 在深度学习优化算法中,常用的梯度下降算法中一般会有一个参数 -- 动量(momentum).此文章记录动量算法的原理,以及使用它的目的. N.B. 此处的梯度下降算法是广义的 ...

  8. 梯度下降 gradient descent

    文章目录 导数 偏导数 方向导数 梯度 代价函数的梯度 梯度下降的详细算法 先决条件 算法过程 代价损失中 θ 偏导数公式推导 批量梯度下降(Batch Gradient Descent,BGD) 随 ...

  9. 如何理解梯度下降算法?『MindSpore 啃书吧』为你分享

    不停的看手机上的社交媒体,里面有太多东西在干扰我们,每天的时间都被这些干扰碎片化,计划好的一些事情也会被打乱,会按重要程度再排序.读书在你每天的计划表里吗?你觉得读书是重要的事情吗? 古今中外有关读书 ...

  10. 梯度下降法Gradient Descent深度学习 机器学习

    梯度下降法 在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,梯度下降法是一种一阶优化算法,另一种常用的方法是最小二乘法. 求偏导数 ...

最新文章

  1. 服务器虚拟化改写存储演进图
  2. vmstat命令列出的属性详解
  3. SQLAlchemy()分页器paginate方法
  4. 自学C语言能到达怎样的高度?
  5. Go入门之——GOROOT、GOPATH、GOBIN 、Project目录
  6. 原反补移码的概念应用以及异或的作用
  7. 什么是JAP,什么是ORM,与hibernate的关系
  8. 路由事件(鼠标路由事件+键盘路由事件)
  9. linux使用触摸屏驱动程序,Linux触摸屏驱动
  10. ts转换mp4 linux_佳佳MTS格式转换器下载 佳佳MTS格式转换器专业版下载
  11. 运维工程师从月薪 5K 到 50K,中间都经历了什么?
  12. java导出excel 方式_java导出Excel通用方法
  13. Python 实现按键精灵的功能,超简单详细(Windows版)
  14. 微信公众号外部登录与授权,保存登录信息问题记录
  15. 新塘单片机烧写器_新唐单片机软件加密|新唐单片机软件(NuConsole) v2.04.6725官方版 附安装教程_星星软件园...
  16. 2021全新改版影视app系统源码(全开源)
  17. php下载随机api图片_php中直接输出随机图片的API
  18. 配置NAT实现外网主机访问内网服务器(Cisco)
  19. 解决报错:metadata for UsersEntity#photos was not found. Check if you specified a correct entity xx
  20. 【源码】Viewer3D工具包

热门文章

  1. 图标圆角角度_教你在 iOS 和 macOS 上获取 App 图标
  2. 计算机机房维护与管理,计算机机房的管理与维护.doc
  3. wince植入胎压监测_wince设备通过USB连接线上网指南(原创)(测试成功)
  4. LintCode—链表节点计数(466)
  5. 数据库—并发调度的可串行性
  6. hdoj1043 Eight(逆向BFS+打表+康拓展开)
  7. Algs4-1.5.11实现加权quick-find算法
  8. NIO - Buffer
  9. 利用access(接入)模式实现同VLAN互通
  10. Codeforces Round #215 (Div. 2) 解题报告