深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解

2023-11-18

1、BGD(批量梯度下降)

定义:批量梯度下降法(Batch Gradient Descent,BGD)是最原始的形式,它是指在每一次
迭代时使用所有样本来进行梯度的更新。
优点:一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。
缺点:当样本数目 m 很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。

在这里插入图片描述

2、SGD(随机梯度下降)

定义:一次只对一个样本进行梯度下降,进行参数更新;
优点:由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快;
缺点:准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛;可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势;不易于并行实现;

2.1、SGD导致的Zigzag现象

由于是随机梯度下降,下图左上角的同心圆是单样本的loss等值线图,右下角也是和左上角一样都是单样本的等值线图,可以看到如果是SGD的话,梯度下降的方向会出现不稳定,不能线性收敛,即Zigzag现象。

在这里插入图片描述

3、MBGD(小批量梯度下降)

定义:小批量梯度下降(Mini-Batch Gradient Descent, MBGD)是对批量梯度下降以及随
机梯度下降的一个折中办法。其思想是:每次迭代 使用指定个(batch_size)样本来对
参数进行更新。
优点:通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多。每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
缺点:batch_size的不当选择可能会带来一些问题。

3.1 BGD、SGD、MBGD的比较

在这里插入图片描述

4、SGDM

全称是: Stochastic Gradient Descent with Momentum,动量随机梯度下降。

为什么提出?

因为使用SGD容易出现Zigzag现象,为了避免出现Zigzag现象,所以有了SGDM方法。

过程:
m t = β 1 ⋅ m t − 1 + ( 1 − β 1 ) ⋅ g t m_t=\beta_1\cdot m_{t-1}+(1-\beta_1)\cdot g_t mt=β1mt1+(1β1)gt
η t = α ⋅ m t \eta_t=\alpha \cdot m_t ηt=αmt
ω t + 1 = ω t − η t \omega_{t+1}=\omega_{t}-\eta_t ωt+1=ωtηt
其中:
g t = ∇ f ( ω t ) g_t=\nabla f(\omega_t) gt=f(ωt)

先对 m t m_t mt的前三项进行展开,
在这里插入图片描述
每一项的 m t m_t mt都包含前面的所有的 g i g_i gi,使梯度下降的方向的趋于BGD的方向,从而也趋近于我们优化的方向。
下面是关于SGDM为什么是趋近于BGD优化方向的图解,希望能看得懂,
在这里插入图片描述

5、NAG

全称为:Nesterov Accelerated Gradient (SGD with Nesterov Acceleration)

这个方法用的比较少,我也没有看懂,就贴一下这个方法的过程吧;

在这里插入图片描述

6、AdaGrad(Adaptive Gradient)

定义:自适应梯度下降,每次梯度下降时会除以前面梯度计算总和的平方再开方;
优点:避免前期梯度下降的梯度爆炸和弥散;
缺点:后期有可能会停止训练

在这里插入图片描述

7、AdaDelta/RMSProp

全称:Root Mean Square Propogation / Adaptive Delta
目的:解决AdaGrad过早收敛的问题;

在这里插入图片描述

8、Adam(Adaptive Moments Estimation)

结合了SGDM和AdaDelta

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解 的相关文章

随机推荐

  • UnrealEngine4初始设置及个人使用崩溃记录

    日志 1 第一次记录 2020 2 05 版本 4 24 2 UnrealEngine的初始设置 1 在Epic中下载UnrealEngine4之后 1 1 首先 启动 选项 1 2 接着 勾选 输入调试用符号 应用 以后出现新的崩溃问题
  • vue3中如何循环本地图片

  • eNSP实验:DHCP&&安全区域&&安全策略&&静态路由

    解题思路 1 先给各个接口以及server1服务器配置好地址 2 连接Cloud云 利用物理 web 防火墙 方便操作 只用命令行的情况下可以不用这个方法 3 利用DHCP给各个方向接口的PC自动分配好地址 4 利用静态路由的方法 将两个防
  • VimFoundation

    模式 vim 分为两种模式 1 命令模式 2 编辑模式 命令模式 i 进入编辑模式 w 保存 q 退出 强制 syntax on 打开语法高亮 set number 显示行号 cc 剪切当前行 pp 粘贴到当前行 u 撤销3武器3 yy 复
  • 开源大模型资料总结

    基本只关注开源大模型资料 非开源就不关注了 意义也不大 基座大模型 LLaMA 7 13 33 65B 1 4T token LLaMA及其子孙模型概述 知乎 GLM 6 130B ChatGLM基座 GLM General Languag
  • C++基础知识 - stack容器

    stack容器 stack是堆栈容器 是一种 先进后出 的容器 stack是基于deque容器而实现的容器 include lt stack gt stack对象的默认构造 stack采用模板类实现 stack对象的默认构造形式 stack
  • 金三银四必备,全面总结 Kotlin 面试知识点

    作者 彭旭锐 前言 在 Android 面试中很重视基础知识的考察 其中语言基础主要包括 Java Kotlin C C 三种编程语言 在小彭面试的经验中 发现很多同学的 Kotlin 语言能力只是停留在一些非常入门的语法使用上 在这篇文章
  • 如何让ChatGPT写情书(三步走)

    近年来 人工智能技术的迅猛发展给我们生活带来了许多便利和惊喜 而动人的情书文学也逐渐成为ChatGPT技术的应用领域之一 ChatGPT模型是一种递归神经网络 可以在大量数据的基础上为用户生成语言内容 使用GPT来写情书 相比以前的纯手工撰
  • python详细安装教程(配置环境变量)

    python安装教程 配置环境变量 人生苦短 我用python 直接在官网下载安装包 msi文件进行安装 https www python org downloads windows 下载python 注意 浏览器左下角下载 点击后 会自动
  • conda和pip 安装python依赖包区别和使用技巧

    引言 Conda 作为一种跨平台的包和虚拟环境管理器 使用的时候功能与pip类似 安装python依赖包的时候经常将两种方法混合使用 但一直没有进行具体区分其差别 重新安装python依赖包的时候出现各种不兼容的bug 经历一天烦躁的安装
  • 你不知道的 script 标签的 defer 与 async 属性

    我持续组织了近一年的源码共读活动 感兴趣的可以 点此扫码加我微信 ruochuan12 参与 每周大家一起学习200行左右的源码 共同进步 同时极力推荐订阅我写的 学习源码整体架构系列 包含20余篇源码文章 历史面试系列 另外 目前建有江西
  • 4G路由器设置

    总共分四步如下图所示 1 用网线连接电脑 2 给路由器上电 3 设置电脑网络 如图打开电脑网络和共享数据中心选中本地连接双击 弹出如下图所示弹框选择图中ipv4双击 根据下面图片配置ip地址 4 浏览器上输入地址访问路由器进行配置 第一步
  • CV 经典主干网络 (Backbone) 系列: CSP-Darknet53

    CSP Darknet53 0 引言 1 网络结构图 1 1 输入部分 1 2 CSP部分结构 1 3 输出部分 2 代码实现 2 1 代码整体实现 2 2 代码各个阶段实现 3 代码测试 4 结论 0 引言 CSP Darknet53无论
  • Halcon实战记录之二《判断两个直线或者矩形是否相交》

    项目中使用到需要判断两个矩形是否相交 由于我使用Halcon不久 对其算子还不熟悉 不知道是否有现成的算子可以直接实现 如果有 还请各位朋友给留言指出 先谢谢了 我这里用了如下的方法 1 如果两个矩形相交 那么它们中的线段一定会有相交的 我
  • LeetCode 687. 最长同值路径

    题目链接 https leetcode cn problems longest univalue path C 代码如下 Definition for a binary tree node struct TreeNode int val T
  • 优惠券的设计分享

    优惠券是一种常见的促销手段 在形式上给予消费者心理一定的折扣 然后促成订单 本文主要分享关于优惠券的设计 一 引子 促销活动的目的按对象可分为对用户 对产品 对公司 其中对用户的促销目的又可分为三种 拉新 促活 留存 优惠券作为一种常见的促
  • 前端基础知识与常见面试题(九)

    描述 现有n种砝码 重量互不相等 分别为 m1 m2 m3 mn 每种砝码对应的数量为 x1 x2 x3 xn 现在要用这些砝码去称物体的重量 放在同一侧 问能称出多少种不同的重量 注 称重重量包括 0 输入描述 对于每组测试数据 第一行
  • 逆向某联盟RSA登录

    目录 1 抓包分析 2 逆向 1 抓包分析 经典抓包套路 发现载荷password的参数进行了加密 还是如此之长 那就可以猜测是RSA加密了 点击启动器 找到login位置 然后搜索password 发现果然是RSA加密 人家还贴切的给了注
  • 零基础入门STM32编程——GPIO(五)

    系列教程链接 HAL库编程点灯篇https blog csdn net oHaoEr article details 122999523 一 GPIO简介 1 1 概述 GPIO 通用输入输出端口 即芯片的IO管脚 STM32F103系列中
  • 深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解

    文章目录 1 BGD 批量梯度下降 2 SGD 随机梯度下降 2 1 SGD导致的Zigzag现象 3 MBGD 小批量梯度下降 3 1 BGD SGD MBGD的比较 4 SGDM 5 NAG 6 AdaGrad Adaptive Gra