- 1
- 0
- 约5.32千字
- 约 5页
- 2021-09-01 发布于上海
- 举报
从 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 在原步长之上,
您可能关注的文档
最近下载
- 2025春冀人版(2024)小学科学一年级下册(全册)教案、教学反思、教学计划(附教材目录P101) .pdf VIP
- 《第1课 多样化的沟通与交流》精品课件.pptx VIP
- 《2022中国幽门螺杆菌感染治疗指南》解读.pptx VIP
- GB 55030-2022 建筑与市政工程防水通用规范.docx VIP
- DB34T 5387-2026建筑用免拆保温模板应用技术规程.pdf VIP
- 点火系统——传统点火系统分解.ppt VIP
- 专题一数数块数.doc VIP
- 2026全球家电行业色彩趋势报告-.pdf
- 2020年新版全国内河高等级航道和主要港口布局方案图.docx VIP
- (2023正式版)JBT 10189-2023 滚动轴承 汽车用等速万向节及其总成-精品.docx VIP
原创力文档

文档评论(0)