深度学习优化算法大全系列3:NAG(Nesterov Acceleration Gradient)

2023-11-07

1.NAG与SGD-M的区别

NAG全称为Nesterov Accelerated Gradient,是在SGD-Momentum基础进一步优化所得。
前面的文章我们提到过,SGD-M主要是利用历史累积动量来代替当前梯度从而达到减小震荡,加速收敛的目的。而NAG与SGD-M的区别在于,在计算当前梯度的时候,先跟随历史累积动量前进一步,然后再看下一步怎么走。

2.算法流程

假定初始参数为 θ \theta θ,初始动量 v v v,动量超参数为 α \alpha α,梯度超参数为 ϵ \epsilon ϵ,则整个NAG算法流程如下:

1.从训练集中采样m个样本 x ( 1 ) x^{(1)} x(1), x ( 2 ) x^{(2)} x(2)…, x ( m ) x^{(m)} x(m),对应的标签为 y ( i ) y^{(i)} y(i)
2.计算当前梯度之前先走一步: θ ^ = θ + α v \hat \theta = \theta + \alpha v θ^=θ+αv
3.计算当前梯度: g = ▽ θ ∑ i L ( f ( x ( i ) ; θ ^ ) , y ( i ) ) g = \bigtriangledown_\theta \sum_i L(f(x^{(i)}; \hat \theta), y^{(i)}) g=θiL(f(x(i);θ^),y(i))
4.计算动量更新: v = α v − ϵ g v = \alpha v - \epsilon g v=αvϵg
5.参数更新 θ = θ + v \theta = \theta + v θ=θ+v

从上面的流程不难看出,NAG与SGD-M的区别就在第二步,其他都一样。

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

深度学习优化算法大全系列3:NAG(Nesterov Acceleration Gradient) 的相关文章

  • discuz手机端默forum.php,discuz手机wap版模板开发方式简述

    近期项目需要对discuz论坛的手机模板进行开发调整 在官方论坛和搜索引擎找了很久 都没有找到相应的文章 只好自己着手开始研究 手机模板文件的所在目录 template default mobile 手机模板文件的主目录 template
  • 用Python+PIL将多个jpg图像批量合并成一个pdf文件

    一 引言 在 用Python PIL将目录下jpg图像批量转成pdf文件 介绍了将一个目录下所有的jpg文件批量转成一对一的pdf文件的方法 但单位后来又要求将所有图片合并到一个PDF中看 在实际工作中 确实有时还需要将批量图片文件合并生成
  • 用于视觉跟踪的在线特征选择研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 视觉跟踪是计算机视觉中的重要任务之一 它涉
  • QQuickWidget + QML编程实现酷炫动态动画效果

    1 具体需求 当Qt开发项目中需要实现简单的动态酷炫动画效果时 我们可以使用Qt中的QQuickWidget来实现 同时还可以使用QML编程来实现具体的动画效果 具体实现的效果如下所示 2 具体操作和实现效果图 1 按下start按钮 音乐

随机推荐

  • 解决win10运行Android Studio卡死问题

    问题 最近window来了一波强制更新 然后我发现在Android Studio内点运行 很容易就卡死在install处 完全不能动 只能在任务管理器上杀进程 用了很多办法都没解决 最后还是觉得是杀软的问题 处理了一下 解决办法 第一个办法
  • Python TimedRotatingFileHandler 多进程环境下的问题和解决方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 问题 Python 自带了一个 handler 可以实现每天自动切割日志文件的功能 其实支持各种按时间切割的方法 不过按日期切割是最常用的一种 切割 这件事的触发和执行逻辑
  • springboot在使用Scheduled做定时任务出现Autowired注入空指针

    错误示范 以往的依赖注入直接使用 Autowired Autowired BrowseRecordsService browseRecordsService ApiOperation 清除过期的浏览记录 public void remove
  • 【业务功能篇36】Springboot+activiti7 工作流引擎

    业务场景 前段时间总结的有一个告警工单流程 我们都是直接自己建表 状态节点 操作节点 都是自定义设计的 而到后面会有很多的工单流程 比如创建一个遗留问题电子流 指定处理人进行分析闭环 等等多种电子流 后期重复的开发工作以及维护工作会越来越多
  • C语言 递归实现汉诺塔问题 【图文讲解、简单易懂】

    汉诺塔问题是我们在学习函数递归时常遇见的一类问题 那么如何用简单易懂的思路来解决汉诺塔问题呢 下面我会为大家进行讲解 目录 汉诺塔是什么 汉诺塔的来源 用C语言实现汉诺塔 汉诺塔问题分析思路 用代码实现汉诺塔问题 总结 汉诺塔是什么 汉诺塔
  • 1 ubuntu18 docker配置与安装 镜像加速配置

    0 背景 搭建环境到创建第一个容器 1 搭建环境 需求 1 安装docker环境 2 镜像加速站 3 多台主机安装docker 1 1 docker环境 电脑为老联想电脑 cpu 2 7ghz 内存12GB 用vmware搞了两个ubunt
  • NOIP2014 Day2 模拟赛赛后总结&题解

    考试时的心态 还能有什么心态 考炸了嘛 题解 第一题 无线电通讯 水题 直接模拟 就不多说了 第二题 图论水题 其实也挺水的 只要倒着来广搜一遍 把能到达的边标记一下就可以了 接下来从起点出发BFS一遍就可以了 但是我考试的时候没有想那么多
  • 现在网红里骗子占一半。

    大家好 我是北妈 0 每天和身边朋友还有读者交流 打工没有出路 几乎成为打工人的普遍共识 也有越来越多人尝试或已经在实践打造个人 IP 超级个体品牌这条路 我的星球桃花岛 还有群也很多人每天在交流怎么做个人ip或者视频自媒体 大家都很想破圈
  • C++ STL::list常用操作及底层实现(中2)——实现list常用操作之删除(erase、remove、pop_front、pop_back、clear)

    list 常用操作及自底层实现 1 erase 按链表迭代器删除 1 1函数格式1 iterator erase iterator position 1 2函数格式2 iterator erase iterator first iterat
  • 用TensorFlow编写训练模型的程序——快速导读

    1 训练模型是怎么回事 训练模型是指 通过程序的反复迭代来修正神经网络中各个节点的值 从而实现具有一定拟合效果的算法 在训练神经网络的过程中 数据流有两个方向 正向和反向 正向负责预测生成结果 沿着网络节点的运算方向一层层计算下去 反向负责
  • 如何高速安装jetson-inference,一步到位,避免踩坑!

    踩了很长时间的坑 终于弄明白怎么高速下载jetson inference 来源 安装jetson inference 自动下载模型 满速下载起飞 解决下载模型被墙问题 奈流云何的博客 CSDN博客 需要将Github的仓库复制到Gitee上
  • 使用stm32的ADC得到准确的电压

    一 引脚多一点的stm32单片机存在VREF 和VREF 引脚 由上面的供电图知道 如果存在VREF 和VREF 引脚 那么ADC是由这两个引脚供电的 ADC的采集电压范围为 VREF
  • 理解Vue插槽

    引言 在Vue开发中 我们多采用组件化开发 组件化开发最大特点就是对页面结构化划分 组件的复用 而在实际中 页面对组件的需求或许也稍有不同 那么就需要一种需求 为页面定制组件 解决的方式便是通过插槽 实例
  • Java动态执行计算表达式利器 -- ScriptEngine

    在通过配置文件对系统进行参数配置时 有时需要更好的理解参数值的具体意义 往往采用计算表达式的方式设置 例如1天换成秒数为86400 如果写成24 60 60就很清晰的表达是一天的秒数 但是这个表达式通过properties的方式获取为字符串
  • Celery ValueError: not enough values to unpack (expected 3, got 0)

    目录 1 Celery ValueError not enough values to unpack expected 3 got 0 2 AttributeError async 1 Celery ValueError not enoug
  • 使用CUDA实现零拷贝技术

    使用CUDA实现零拷贝技术 零拷贝技术是指在内存和设备之间传输数据时 不需要显式地将数据从内存复制到设备的过程 从而提高数据传输效率 本文将介绍如何使用CUDA实现零拷贝技术 并提供示例代码 在使用CUDA进行图像处理时 通常需要将数据从主
  • 【计算机视觉

    文章目录 一 SqueezeNet 二 Inception v3 三 Visual Geometry Group 19 Layer CNN 四 MobileNetV1 五 Data efficient Image Transformer 六
  • 【CentOS7】开机自启动三种方法

    有个需求 比如说我想要执行开机杀毒程序 就需要去做开机自启动相关操作 准备工作 在 usr local目录下建立killviruses sh 前提 安装病毒库 vi killviruses sh 键入以下内容 前提 已安装ClamAV cl
  • js纯ajax,纯js 的Ajax 请求

    纯js 的Ajax 请求 2018 02 24 126 var XMLHttpReq function createXMLHttpRequest try XMLHttpReq new ActiveXObject Msxml2 XMLHTTP
  • 深度学习优化算法大全系列3:NAG(Nesterov Acceleration Gradient)

    1 NAG与SGD M的区别 NAG全称为Nesterov Accelerated Gradient 是在SGD Momentum基础进一步优化所得 前面的文章我们提到过 SGD M主要是利用历史累积动量来代替当前梯度从而达到减小震荡 加速