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

动手学深度学习11.10. Adam算法-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。

本节课程地址:72 优化算法【动手学深度学习v2】_哔哩哔哩_bilibili

本节教材地址:11.10. Adam算法 — 动手学深度学习 2.0.0 documentation

本节开源代码:...>d2l-zh>pytorch>chapter_optimization>adam.ipynb


Adam算法

本章我们已经学习了许多有效优化的技术。 在本节讨论之前,我们先详细回顾一下这些技术:

  • 在 11.4节 中,我们学习了:随机梯度下降在解决优化问题时比梯度下降更有效。
  • 在 11.5节 中,我们学习了:在一个小批量中使用更大的观测值集,可以通过向量化提供额外效率。这是高效的多机、多GPU和整体并行处理的关键。
  • 在 11.6节 中我们添加了一种机制,用于汇总过去梯度的历史以加速收敛。
  • 在 11.7节 中,我们通过对每个坐标缩放来实现高效计算的预处理器。
  • 在 11.8节 中,我们通过学习率的调整来分离每个坐标的缩放。

Adam算法 (Kingma and Ba, 2014) 将所有这些技术汇总到一个高效的学习算法中。 不出预料,作为深度学习中使用的更强大和有效的优化算法之一,它非常受欢迎。 但是它并非没有问题,尤其是 (ef="https://zh-v2.d2l.ai/chapter_references/zreferences.html#id134">Reddiet al., 2019) 表明,有时Adam算法可能由于方差控制不良而发散。 在完善工作中, (f="https://zh-v2.d2l.ai/chapter_references/zreferences.html#id193">Zaheeret al., 2018) 给Adam算法提供了一个称为Yogi的热补丁来解决这些问题。 下面我们了解一下Adam算法。

算法

Adam算法的关键组成部分之一是:它使用指数加权移动平均值来估算梯度的动量和二次矩,即它使用状态变量

\begin{aligned} \mathbf{v}_t & \leftarrow \beta_1 \mathbf{v}_{t-1} + (1 - \beta_1) \mathbf{g}_t, \\ \mathbf{s}_t & \leftarrow \beta_2 \mathbf{s}_{t-1} + (1 - \beta_2) \mathbf{g}_t^2. \end{aligned}

这里 \beta_1 和 \beta_2 是非负加权参数。 常将它们设置为 \beta_1 = 0.9 和 \beta_2 = 0.999 。 也就是说,方差估计的移动远远慢于动量估计的移动。 注意,如果我们初始化 \mathbf{v}_0 = \mathbf{s}_0 = 0 ,就会获得一个相当大的初始偏差。 我们可以通过使用 \sum_{i=0}^t \beta^i = \frac{1 - \beta^t}{1 - \beta} 来解决这个问题。 相应地&#

http://www.xdnf.cn/news/175753.html

相关文章:

  • 机器人快速启动
  • 信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV
  • 《博客系统测试报告》
  • 0804标星_复制_删除-网络ajax请求2-react-仿低代码平台项目
  • P1168 中位数
  • Node.js 应用部署:镜像体积优化与安全的多阶段构建探索
  • NGINX upstream、stream、四/七层负载均衡以及案例示例
  • C#通过NTP服务器获取NTP时间
  • 【有啥问啥】深入理解 Layer Normalization (LayerNorm):深度学习的稳定基石
  • Rabbit MQ的基础认识
  • Postman接口测试: postman设置接口关联,实现参数化
  • 泰迪杯实战案例超深度解析:基于多源数据的信用风险评估与反欺诈检测
  • 【深度学习】多头注意力机制的实现|pytorch
  • WEB安全--社会工程--SET钓鱼网站
  • maven相关概念深入介绍
  • 如何实现一个可视化的文字编辑器(C语言版)?
  • 【python】lambda用法(结合例子理解)
  • pyspark将hive数据写入Excel文件中
  • 「Mac畅玩AIGC与多模态03」部署篇02 - 在 Mac 上部署 Dify
  • Python中变量标识的本质
  • LVS--总结
  • Maven下载aspose依赖失败的解决方法
  • CSS 内容超出显示省略号
  • Netfilter 与struct nf_hook_ops 相关
  • “赛教融合”模式下的网络安全专业Python实训教学解决方案
  • 8.DJI-PSDK:一站式项目功能开发总结(空中气象站项目/激光甲烷检测项目)
  • [python] 基于WatchDog库实现文件系统监控
  • PySpark中DataFrame应用升阶及UDF使用
  • Cad求多段线中心点(顶点平均值) C#
  • 利用脚本搭建私有云平台,部署云平台,发布云主机并实现互连和远程连接