- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从 SGD 到 Adam —— 深度学习优化算法概览 (一 ) 楔子前些日在写计算数学课的期末读书报告,我选择的 主题是「分析深度学习中的各个优化算法」 。在此前的工作 中,自己通常就是无脑「 Adam 大法好」,而对算法本身的 内涵不知所以然。一直希望能抽时间系统的过一遍优化算法 的发展历程,直观了解各个算法的长处和短处。这次正好借 着作业的机会,补一补课。本文主要借鉴了 @Juliuszh 的 文章 [1]思路,使用一个 general 的框架来描述各个梯度下降 变种算法。实际上,本文可以视作对 [1] 的重述,在此基础上, 对原文描述不够详尽的部分做了一定补充,并修正了其中许 多错误的表述和公式。另一主要参考文章是 Sebastian Ruder 的综述 [2] 。该文十分有名, 大概是深度学习优化算法 综述中质量最好的一篇了。建议大家可以直接阅读原文。本 文许多结论和插图引自该综述。对优化算法进行分析和比较 的文章已有太多,本文实在只能算得上是重复造轮,旨在个 人学习和总结。希望对优化算法有深入了解的同学可以直接 查阅文末的参考文献。引言最优化问题是计算数学中最为重 要的研究方向之一。而在深度学习领域,优化算法的选择也 是一个模型的重中之重。即使在数据集和模型架构完全相同 的情况下,采用不同的优化算法,也很可能导致截然不同的 训练效果。梯度下降是目前神经网络中使用最为广泛的优化
算法之一。为了弥补朴素梯度下降的种种缺陷,研究者们发 明了一系列变种算法, 从最初的 SGD ( 随机梯度下降 ) 逐步 演进到 NAdam 。然而,许多学术界最为前沿的文章中,都 并没有一味使用 Adam/NAdam 等公认“好用”的自适应算法, 很多甚至还选择了最为初级的 SGD 或者 SGD with Momentum 等。本文旨在梳理深度学习优化算法的发展历 程,并在一个更加概括的框架之下,对优化算法做出分析和 对比。 Gradient Descent 梯度下降是指,在给定待优化的模 型参数 和目标函数 后,算法通过沿梯度 的相反方向更 新 来最小化 。学习率 决定了每一时刻的更新步长。对 于每一个时刻 ,我们可以用下述步骤描述梯度下降的流程: (1) 计算目标函数关于参数的梯度 (2) 根据历史梯度计算一 阶和二阶动量 (3) 更新模型参数 其中, 为平滑项, 防止 分母为零,通常取 1e-8 。 Gradient Descent 和其算法变种 根据以上框架,我们来分析和比较梯度下降的各变种算法。 Vanilla SGD 朴素 SGD (Stochastic Gradient Descent) 最
为简单,没有动量的概念,即 这时,更新步骤就是最简 单的 SGD 的缺点在于收敛速度慢,可能在鞍点处震荡。并 且,如何合理的选择学习率是 SGD 的一大难点。 MomentumSGD 在遇到沟壑时容易陷入震荡。为此,可以 为其引入动量 Momentum[3] ,加速 SGD 在正确方向的下 降并抑制震荡。 SGD-M 在原步长之上, 增加了与上一时刻 步长相关的 , 通常取 0.9 左右。这意味着参数更新方向 不仅由当前的梯度决定,也与此前累积的下降方向有关。这 使得参数中那些梯度方向变化不大的维度可以加速更新,并 减少梯度方向变化较大的维度上的更新幅度。由此产生了加 速收敛和减小震荡的效果。 图 1(a): SGD 图 1(b): SGD with momentum 从图 1 中可以看出,引入动量有效的加速了梯 度下降收敛过程。 Nesterov Accelerated Gradient 图 2: Nesterov update 更进一步的,人们希望下降的过程更加智 能:算法能够在目标函数有增高趋势之前,减缓更新速率。 NAG 即是为此而设计的,其在 SGD-M 的基础上进一步改 进了步骤 1 中的梯度计算公式: 参考图 2,SGD-M 的步 长计算了当前梯度(短蓝向量)和动量项 (长蓝向量)。然 而,既然已经利用了动量项来更新 ,那不妨先计算出下一 时刻 的近似位置 (棕向量),并根据该未来位置计算梯度 (红向量),然后使用和 SGD-M 中相同的方式计算步长 (绿 向量)。这种计算梯度的方式可以使算法更好的“预测未来”, 提前调整更新速率。 AdagradSGD 、 SGD-M 和 NAG 均是 以相同的学习率去更新 的各个分量。而深度学习模型中往 往涉及大量的参数,不同参数的更新频率往往有所区别。对 于更新不频繁的参数 (典型例子: 更新 word embedding 中 的低频词),我们希望单次步长更大,多学习一些知识;对 于更新频繁的参数,我们则希望步长较小,使得学习到的参
数更稳定, 不至于被单个样本影响太多。 Adagrad
您可能关注的文档
最近下载
- 慢性阻塞性肺病管理.pptx VIP
- 医疗器械经营企业质量管理体系文件(2026版).doc VIP
- 江西省建筑工人实名制管理服务信息平台操作手册(项目端).docx
- 贵阳市2026届高三年级摸底考试数学试卷(含答案).pdf
- 《数字电路与逻辑设计》课程教学大纲.docx VIP
- DaVinci-Resolve-Speed-Editor-达芬奇快编键盘操作说明.docx VIP
- 小学劳动教学课例《学做水果茶》教学设计.pdf VIP
- 科学计算语言Julia及MWORKS实践单元练习题及答案.docx VIP
- 检验科临床检验基础试题及答案2025版.docx VIP
- DB15T 4010-2025 温室气体 产品碳足迹量化方法与要求 铁合金.pdf VIP
文档评论(0)