当前位置: 首页 > news >正文

梯度下降法(SGD)原理

目录

梯度下降法(SGD)原理:求偏导

1. 梯度(在数学上的定义)

2. 梯度下降法迭代步骤

BGD批量梯度下降算法

BGD、SGD在工程选择上的tricks


梯度下降法(SGD)原理:求偏导

1. 梯度(在数学上的定义)

表示某一函数在该点处方向导数沿着该方向取得最大值(即最大方向导数的方向),也就是函数在该点处沿着该方向变化最快,变化率最大(为该梯度的模)。

梯度下降

2. 梯度下降法迭代步骤

梯度下降的一个直观的解释:
比如我们在一座大山上的 某处位置,由于我们不知道怎么下山,于是决定 走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度, 沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后 继续求解当前位置梯度,向这一步所在位置沿着 最陡峭最易下山的位置走一步。 这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了 某一个局部的山峰低处

BGD批量梯度下降算法

是一种基于梯度的优化方法,其工作原理是通过多次迭代来寻找误差函数的最小值。在每次迭代中,算法会基于一组训练样本计算误差函数的梯度,并在此基础上更新模型参数。由于BGD算法在每次迭代时都需要计算所有训练样本的梯度,因此它通常会对内存和计算资源产生较大的压力。

相对于其他梯度下降算法,BGD具有以下优点:

  • 能够在较短时间内获得较好的收敛效果。
  • 通常能够避免陷入局部最小值的情况。
  • 具有较强的鲁棒性,能够处理较大的输入数据集。

尽管BGD算法具有上述优势,但仍然存在一些需要注意的问题。其中一个重要的问题是算法收敛速度的慢。由于每次迭代都需要计算所有训练样本的梯度,因此算法的收敛速度往往较慢。此外,BGD算法不容易处理在线学习问题,因为在线学习通常需要对单个样本进行计算,而批量梯度下降算法需要对所有样本进行计算。

为了解决BGD算法的上述问题,研究人员提出了一些变体算法。其中最常见的是随机梯度下降(SGD)算法。与BGD算法不同,SGD算法在每次迭代时只计算单个训练样本的梯度,从而大大提升了算法的计算速度。此外,SGD算法还能够较好地处理在线学习问题,因为它只需要对单个样本进行计算。

总之,BGD算法是一种常用的机器学习算法,适用于大规模数据集的优化。虽然存在一些缺点,但可以通过一些变体算法来加以解决。在实际应用中,我们应该根据数据集大小和问题要求选择最合适的优化算法。

BGD、SGD在工程选择上的tricks

BGD:相对噪声低些,幅度也大一些,你可以继续找最小值。
SGD:大部分时候你向着全局最小值靠近,有时候你会远离最小值,因为那个样本恰好给你指的方向不对,因此SGD是有很多噪声的,平均来看,它最终会靠近最小值,不过有时候也会方向错误,因为SGD永远不会收敛,而是会一直在最小值附近波动。一次性只处理了一个训练样本,这样效率过于低下。
mini-batch:实践中最好选择不大不小的 mini-batch,得到了大量向量化,效率高,收敛快。

调节 Batch_Size 对训练效果影响到底如何?

  1. Batch_Size 太小,模型表现效果极其糟糕(error飙升)。
  2. 随着 Batch_Size 增大,处理相同数据量的速度越快。
  3. 随着 Batch_Size 增大,达到相同精度所需要的 epoch 数量越来越多。
  4. 由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。
  5. 由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

如果训练集较小(小于 2000 个样本),直接使用BGD法,一般的 mini-batch 大小为 64 到 512,考虑到电脑内存设置和使用的方式,如果 mini-batch 大小是 2� ,代码会运行地快一些。

 梯度下降法(SGD)原理解析及其改进优化算法 - 知乎

相关文章:

梯度下降法(SGD)原理

目录 梯度下降法(SGD)原理:求偏导 1. 梯度(在数学上的定义) 2. 梯度下降法迭代步骤 BGD批量梯度下降算法 BGD、SGD在工程选择上的tricks 梯度下降法(SGD)原理:求偏导 1. 梯度(在数学上的定义) 表示某一函数在该点处的方向导数沿着该方向取得最大值…...

QQ表情包存储位置解析

一些常见的设备和系统的QQ表情包存储位置: Windows系统: 路径:C:\Users[用户名]\Documents\Tencent Files[QQ号码]\Image\Image\CustomFace 在这个文件夹中,您可以找到所有自定义的QQ表情包。 Android系统: 路径&am…...

软件架构的演化和维护

软件架构的演化和维护 定义 定义 顶不住了,刷题去了,不搞这个了,想吐。。。...

C语言数组和指针笔试题(四)(一定要看)

目录 二维数组例题一例题二例题三例题四例题五例题六例题七例题八例题九例题十例题十一 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 🥸🥸🥸C语言 🐿️…...

FragmentManager is already executing transactions

本文解决问题: java.lang.IllegalStateException: FragmentManager is already executing transactions 问题背景描述: 在Fragment中 用tablayoutviewpagerfragment,即Fragment嵌套Fragment场景、或者ViewPager2嵌套ViewPager2时。 执行生命…...

Matlab中clear,close all,clc功能详细说明

背景: 我们在写matlab程序时,首行总是先敲入:clear; close all; clc;,但你真的知道这三句话的具体作用嘛,下面进行详细说明和演示。 一、clear的功能 clear的功能:清理工作区变量,不清理前是…...

Typora安装无需破解免费使用

Typora简介: 在介绍Typora软件之前,需要先介绍一下MARKDOWN。 MARKDOWN是一种轻量型标记语言,它具有“极简主义”、高效、清晰、易读、易写、易更改纯文本的特点。 Typora 是一款支持实时预览的 Markdown 文本编辑器。它有 OS X、Windows、…...

LuatOS-SOC接口文档(air780E)--errDump - 错误上报

示例 -- 基本用法, 10分钟上报一次,如果有的话 if errDump thenerrDump.config(true, 600) end-- 附开源服务器端: https://gitee.com/openLuat/luatos-devlogerrDump.dump(zbuff, type, isDelete) 手动读取异常日志,主要用于用户将日志发送给自己的服务器而不是I…...

低代码平台如何助力国内企业数字化转型?

数字化是什么 数字化(Digitalization)是将许多复杂多变的信息转变为可以度量的数字、数据,再以这些数字、数据建立起适当的数字化模型,把它们转变为一系列二进制代码,引入计算机内部,进行统一处理&#xf…...

SI3262—高度集成的低功耗SOC芯片

Si3262是一款高度集成的低功耗SOC芯片,其集成了基于RISC-V核的低功耗MCU和工作在13.56MHz的非接触式读写器模块。 MCU模块具有低功耗、Low Pin Count、宽电压工作范围,集成了13/14/15/16位精度的ADC、LVD、UART、SPI、I2C、TIMER、WUP、IWDG、RTC、TSC等…...

除静电离子风机在无尘车间的应用

除静电离子风机在无尘车间中的应用非常广泛,主要是用来控制车间内的静电荷,防止静电对车间内的电子元器件、电路板等敏感部件产生损害。 具体来说,除静电离子风机通常采用电离器产生大量负离子,将车间内的静电荷中和成无害的水蒸气…...

Linux上的Pip和Python升级指南

在Linux系统上,保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python,你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在Linux上升级Pip和Python的详细指南,助你打造更强大的开发环境。…...

4G工业路由器高效数据传输助力光伏发电站管理

光伏发电站是能源产业中一种利用太阳能技术将光转化为电能的常见设施。随着物联网技术与环保能源的不断进步和应用的普及,光伏发电站的管理也变得更加便捷高效。 光伏发电站结合4G工业路由器实现远程监控管理,并用于采集发电站中的传感器数据和监控信息…...

【音视频笔记】Mediacodec+Muxer生成mp4,浏览器无法播放问题处理

文章目录 背景解决过程曲线修复方案 解决问题根源 背景 最近在测试视频录制功能时发现,AudioRecord MediaCodec MediaMuxer生成的MP4,PC浏览器无法播放 ,但是Android、Windows、Mac的播放器应用都能正常播放。虽然不禁想吐槽浏览器视频组件…...

debug过程中,矩阵左乘右乘相关概念梳理

1. 变换点或者变换向量 1.1左乘 矩阵左乘通常是指对”目标点“进行左乘,即: A ′ R ∗ A AR*A A′R∗A 其中,A为原始3维点,表示一个3*1的列向量,R为33的旋转矩阵,A‘为变换后的点 B ′ T ∗ B BT*B B′T∗B 其中…...

Ubuntu 安装Kafka

在本指南中,我们将逐步演示如何在 Ubuntu 22.04 上安装 Apache Kafka。 在大数据中,数以百万计的数据源生成了大量的数据记录流,这些数据源包括社交媒体平台、企业系统、移动应用程序和物联网设备等。如此庞大的数据带来的主要挑战有两个方面…...

洗地机性价比高的是哪款?高性价比洗地机排名

洗地机已成为当下备受欢迎的智能家电之一,但在挑选合适的洗地机时,面对各种新词汇和功能选择,可能会让人感到困惑。因此,为了帮助大家在购买洗地机时不踩坑,我们基于市面上主流品牌的综合分析对比,总结出来…...

安装konga

创建konga数据库 docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:kong{IP}:5432/konga这里要注意docker部署时IP不能直接访问localhost 安装konga docker run -p 1337:1337 \--network kong-net \--name konga \-e "NODE_ENVprodu…...

算法基础之高精度总结

目录 高精度算法分类 高精度加减乘除的异同点 加和乘 相同点 减和除 相同点 不同点 处理前导0的方式 高精度算法分类 分类:加、减、乘、除 其中加减乘都适用于两个数都是高精度,除法因为除数是高精度的话不好用整除的方法,所以除法时…...

oracle TNS Listener 远程投毒漏洞修复

有个客户在等保测评过程,测评公司扫出一个关于oracle的漏洞如下: 客户是RAC环境11.2.0.4,在生产修复漏洞前我做了如下测试验证: 测试环境准备: RAC一套11.2.0.4 实例名dbserver [oraclehisdb1 ~]$ cat /etc/hosts …...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...