梯度下降: 02. 批量梯度下降BGD,随机梯度下降SGD,小批量梯度下降MBGD

news2024/11/28 20:53:28

简介

本文从原理上介绍了三种梯度下降的方法,相同点,异同点,优缺点。
内容包含了数学公式的推导与说明

1. 梯度下降的3种方法

梯度下降分三类,原理基本相同,操作方式略有区别

  1. 批量梯度下降BGD(BatchGradient Descent):使用全量数据进行特征抽取,模型训练
  2. 小批量梯度下降MBGD(Mini-Batch Gradient Descent):从全量数据中随机抽取部分数据进行特征抽取,模型训练
  3. 随机梯度下降SGD(Stochastic Gradient Descent):从全量样本数据中随机抽取1个样本进行模型训练
    在这里插入图片描述

1.1 梯度下降的操作步骤分为以下4步

  1. 随机赋值,Random随机数生成 θ \theta θ,随机一组数值 w 0 、 w 1 . . . w n w_0、w_1...w_n w0w1...wn
  2. 求梯度g(默认认为数据符合正态分布,g对应最小二乘法公式),梯度代表曲线某点上的切线的斜率,沿着切线往下就相当于沿着坡度最陡峭的方向下降
  3. if(g) < 0: θ \theta θ​变大,if(g>0): θ \theta θ​变小
    • (x = x - eta * g(x))
  4. 判断是否收敛convergence,如果收敛跳出迭代,如果没有达到收敛,回第2步再次执行2~4步。
    • 收敛的判断标准是:随着迭代进行损失函数Loss,变化非常微小甚至不再改变,即认为达到收敛

1.2 三种梯度下降不同,体现在第二步中:

  1. BGD是指在每次迭代使用所有样本来进行梯度的更新
  2. MBGD是指在每次迭代使用一部分样本(所有样本1000个,使用其中100个样本)来进行梯度的更新
  3. SGD是指每次迭代随机选择一个样本来进行梯度更新

2. 线性回归梯度更新公式

复习一下:最小二乘法公式:
J ( θ ) = 1 2 ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac12 \sum\limits_{i=1}^{n}(h_{\theta}(x^{(i)}) - y^{(i)})^2 J(θ)=21i=1n(hθ(x(i))y(i))2
矩阵写法:
J ( θ ) = 1 2 ( X ⋅ θ − y ) T ( X ⋅ θ − y ) J_(\theta) = \frac12(X\cdot\theta-y)^T(X\cdot\theta - y) J(θ)=21(Xθy)T(Xθy)

2.1 求解上面梯度下降的第2步,即推导出损失函数的导函数来。

θ j n + 1 = θ j n − η ∗ ∂ J ( θ ) ∂ θ j \theta_j^{n+1} = \theta_j^{n} - \eta * \frac{\partial {J(\theta})}{\partial \theta_j} θjn+1=θjnηθjJ(θ)

这是对第 j j j个系数的梯度更新公式,n+1,n表示次数(不是次幂)

∂ J θ ∂ θ j = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 \frac{\partial{J\theta}}{\partial \theta_j} = \frac{\partial}{\partial {\theta_j}}{\frac12 (h_{\theta}(x) - y)^2} θjJθ=

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1804683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++题解】1265. 爱因斯坦的数学题

问题&#xff1a;1265. 爱因斯坦的数学题 类型&#xff1a;简单循环 题目描述&#xff1a; 爱因斯坦出了一道这样的数学题&#xff1a;有一条长阶梯&#xff0c;若每步跨 2 阶&#xff0c;则最最后剩一阶&#xff0c;若每步跨 3 阶&#xff0c;则最后剩 2 阶&#xff0c;若每…

webapi跨越问题

由于浏览器存在同源策略&#xff0c;为了防止 钓鱼问题&#xff0c;浏览器直接请求才不会有跨越的问题 浏览器要求JavaScript或Cookie只能访问同域下的内容 浏览器也是一个应用程序&#xff0c;有很多限制&#xff0c;不能访问和使用电脑信息&#xff08;获取cpu、硬盘等&#…

JWT 从入门到精通

什么是 JWT JSON Web Token&#xff08;JWT&#xff09;是目前最流行的跨域身份验证解决方案 JSON Web Token Introduction - jwt.ioLearn about JSON Web Tokens, what are they, how they work, when and why you should use them.https://jwt.io/introduction 一、常见会…

Kimichat使用案例010:快速识别出图片中的表格保存到Excel

文章目录 一、介绍二、图片信息三、输入内容四、输出内容五、markdown提示词六、markdown输出一、介绍 如果有一张图片格式的表格,想要快速复制到Excel表格中,那么一般要借助于OCR工具。之前试过不少在线OCR工具,识别效果差强人意。其实,kimichat就可以非常好的完成这个任务…

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件

普通组件 1,注意&#xff0c;如上图&#xff0c;build只能有一个根节点 2,Entry表示程序的入口 Component表示自定义的组件 Preview表示可以预览 3&#xff0c;图片存放的地方 4&#xff0c; Image组件最好只给宽度&#xff0c;给了高度又给宽度容易失真。 build() {Row() {/…

Scanpy(3)单细胞数据分析常规流程

单细胞数据分析常规流程 面对高效快速的要求上,使用R分析数据越来越困难,转战Python分析,我们通过scanpy官网去学习如何分析单细胞下游常规分析。 数据3k PBMC来自健康的志愿者,可从10x Genomics免费获得。在linux系统上,可以取消注释并运行以下操作来下载和解压缩数据。…

【Python机器学习】PCA——特征提取(2)

上一篇写过了用单一最近邻分类器训练后的精度只有0.22. 现在用PCA。想要度量人脸的相似度&#xff0c;计算原始像素空间中的距离是一种相当糟糕的方法。用像素表示来比较两张图像时&#xff0c;我们比较的是每个像素的灰度值与另一张图像对应位置的像素灰度值。这种表示与人们…

IDEA下项目发送到Gitee

一、首先在Gitee创建一个仓库&#xff08;什么都不选&#xff0c;这是最简单的方式&#xff0c;否则需要 pull push等一些操作&#xff0c;我嫌麻烦&#xff09; 二、按图点击&#xff08;创建存储区&#xff0c;选择你要上传的项目&#xff09; 三、按图点击后正常文件名会变绿…

信息安全与密码技术概述

1. 信息安全的法律法规 2016年11月7日&#xff0c;中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议通过《中华人民共和国网络安全法》&#xff0c;自2017年6月1日起施行。 2019年10月26日&#xff0c;中华人民共和国第十三届全国人民代表大会常务委员会第十四…

Ubuntu虚拟机使用纯命令行对根分区进行扩展

Ubuntu虚拟机使用纯命令行对根分区进行扩展 前排提示 因为Ubuntu再安装时&#xff0c;根分区是没有使用LVM进行磁盘管理的&#xff0c;所以如果想扩展根分区&#xff0c;我们不得不使用另外一种暴力的方法。简单来说就是利用fdisk删除原来的根分区再基于原来的起始块号重新建…

PHP超详细安装及应用

目录 所需安装包如下 一、PHP安装 依赖包安装 安装扩展工具&#xff08;先将PHP所需的软件包全部拖进centos根目录下&#xff09; 安装libmcrypt 安装mhash 安装mcrypt 安装PHP 二、设置LAMP组件环境&#xff08;要保证mysql、http都安装完成了&#xff09; Php.ini的建…

MySQL常用的库操作、表操作、INSERT、DELETE

库操作 查询数据库&#xff1a; show databases&#xff1b; 创建数据库&#xff1a; create database chat&#xff1b; 删除数据库&#xff1a; drop database chat&#xff1b; 选择数据库&#xff1a; use chat&#xff1b; 表操作 查询表&#xff1a; show tables&am…

数据库同步软件PanguSync常见错误解决方法

​​​​​​在部署PanguSync数据库同步软件的过程中&#xff0c;常常会遇见一些错误提示&#xff0c;某些老铁可能会一脸懵逼&#xff0c;本文对一些常见的错误信息进行了总结&#xff0c;并提供了解决方法。 1.")"附近有语法错误 该问题是由于源表未设置主键&…

中国现代书法第一人颜廷利:全球知名哲学家思想家教育家

在人生的旅途中&#xff0c;如果一个人的所有追求仅仅是为了满足自己的需求和欲望&#xff0c;而非出于善意、行善或造福他人&#xff0c;那么无论其遭受了多少苦难&#xff0c;这样的生活是难以赢得他人的同情或怜悯的。这是东方哲学家、科学家颜廷利教授在其著作《升命学说》…

如何借助ChatGPT写文献综述?从文献搜索到综述生成,顶级高效指令值得收藏

欢迎关注EssayBot&#xff0c;为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI工具的相关问题可以添加作者七哥沟通 在学术研究的过程中&#xff0c;文献综述是学术论文的核心组成部分&#xff0c;其主要目的在于对特定问题的先行研究成果进行总结和梳理&a…

往前冲,

最近换了个手机&#xff0c;原因是之前的手机存储空间一直不够&#xff0c;隔一段时间就提醒我删除东西&#xff0c;刚好那天去三诺出差&#xff0c;那边有一个工程师给我推荐了红米手机Turbo3&#xff0c;存储直接干到了1T。 第二天&#xff0c;就下定决心要换手机&#xff0c…

哈希表与哈希扩容

一&#xff0c;哈希表 哈希表简单的理解&#xff1a;在记录的存储位置和它的关键字之间建立一个确定的对应关系f&#xff0c;使每个关键字和结构中一个唯一的存储位置相对应。 哈希表基于数组的&#xff0c;正因为数组创建后难于扩展某些哈希表被基本填满时&#xff0c;性能下…

【SQLAlChemy】怎么进行简单的增删改查,CRUD操作是什么?

CRUD 所有的 CRUD 操作&#xff0c;必须在 session 的前提下进行。 构建 session 对象(实例) 所有和数据库的 ORM 操作都必须通过一个叫做 session 的会话对象来实现。 from sqlalchemy.orm import sessionmaker# 构建 session 对象 # engine 为之前创建的数据库连接引擎 s…

透视亚马逊云科技中国峰会:生成式AI全面提速,加速行业应用落地

导读&#xff1a;亚马逊云科技在中国&#xff0c;生成式AI与行业化战略齐头并进。 “亚马逊云科技致力于成为企业构建和应用生成式AI的首选。” 近日2024亚马逊云科技中国峰会上&#xff0c;亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松分享了亚马逊云科技中国业务最新进…

Maven核心功能依赖和构建管理

1.依赖管理和配置 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题&#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中&#xff0c;避免出现版本冲突和依赖缺失等…