深度学习:常用优化器Optimizer简介

深度学习:常用优化器Optimizer简介

随机梯度下降SGD

梯度下降算法是使权重参数沿着整个训练集的梯度方向下降,但往往深度学习的训练集规模很大,计算整个训练集的梯度需要很大的计算量,为了减少计算量加速训练,在此基础上演化出随机梯度下降算法(SGD),沿着随机选取的小批量数据的梯度方向下降。

假设权重记作 w w w,学习率为 α \alpha α,随机选取小批量样本计算梯度 d w dw dw,模型在更新权重的公式如下:
w t + 1 = w t − α × d w t w_{t+1} = w_t - \alpha \times dw_t wt+1=wt−α×dwt

带动量的随机梯度下降SGD-Momentum

虽然随机梯度下降是一种很受欢迎的优化方法,但其学习过程有时比较慢,引入动量momentum旨在提高收敛速度收敛精确度 ,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。

动量是深度学习训练中,一个用于更新模型参数的超参数,假设记作mu,则引入动量的随机梯度下降算法公式为:
v t = m u × v t − 1 − α t × d w t v_t = mu \times v_{t-1} - \alpha_t \times dw_t vt=mu×vt−1−αt×dwt
w t + 1 = w t + v t w_{t+1} = w_t + v_t wt+1=wt+vt

其中,v初始化为0,mu一般的取值为0.5、0.9、0.99等。

要是当前时刻的梯度与历史时刻梯度方向相似,这种趋势在当前时刻则会加强;要是不同,则当前时刻的梯度方向减弱。前者能够加速收敛,后者能够减小摆动,提高收敛精确度。

SGDW

weight decay(权值衰减)的使用既不是为了提高收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合。在损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂度防止过拟合,若weight decay很大,则复杂的模型损失函数的值也就大。

SGDW 即 SGD+ Weight decate。SGDW直接将正则项的梯度加入反向传播的公式中,而不是loss函数。

详细算法可参照:

Adam

Adam是一种自适应优化器,对超参数的选择较为鲁棒。SGD-Momentum在SGD基础上增加了一阶动量,AdaGrad和AdaDelta在SGD基础上增加了二阶动量。Adam则是把一阶动量和二阶动量都用起来了。

一阶动量:
m t = β 1 × m t − 1 + ( 1 − β 1 ) × d w t m_t = \beta_1 \times m_{t-1} + (1-\beta_1) \times dw_t mt=β1×mt−1+(1−β1)×dwt

二阶动量:
v t = β 2 × v t − 1 + ( 1 − β 2 ) × d 2 w t v_t = \beta_2 \times v_{t-1} + (1-\beta_2) \times d^2w_t vt=β2×vt−1+(1−β2)×d2wt
β 1 \beta_1 β1和 β 2 \beta_2 β2是Adam的两个超参数。

详细算法可参照Adam原始论文:

AdamW

AdamW在Adam的基础上发展而来的一种自适应优化器。AdamW 即 Adam + Weight decate ,效果与 Adam + L2正则化相同,但是计算效率更高,因为L2正则化需要在loss中加入正则项,之后再算梯度,最后在反向传播,而AdamW直接将正则项的梯度加入反向传播的公式中,省去了手动在loss中加正则项这一步。

详细算法可参照AdamW原始论文:

相关推荐
中杯可乐多加冰7 分钟前
RAG 深度实践系列(七):从“能用”到“好用”——RAG 系统优化与效果评估
人工智能·大模型·llm·大语言模型·rag·检索增强生成
珠海西格电力科技35 分钟前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
FreeBuf_36 分钟前
AI扩大攻击面,大国博弈引发安全新挑战
人工智能·安全·chatgpt
weisian1512 小时前
进阶篇-8-数学篇-7--特征值与特征向量:AI特征提取的核心逻辑
人工智能·pca·特征值·特征向量·降维
Java程序员 拥抱ai2 小时前
撰写「从0到1构建下一代游戏AI客服」系列技术博客的初衷
人工智能
186******205312 小时前
AI重构项目开发全流程:效率革命与实践指南
人工智能·重构
森之鸟2 小时前
多智能体系统开发入门:用鸿蒙实现设备间的AI协同决策
人工智能·harmonyos·m
铁蛋AI编程实战2 小时前
大模型本地轻量化微调+端侧部署实战(免高端GPU/16G PC可运行)
人工智能·架构·开源
铁蛋AI编程实战2 小时前
最新版 Kimi K2.5 完整使用教程:从入门到实战(开源部署+API接入+多模态核心功能)
人工智能·开源
我有医保我先冲2 小时前
AI 时代 “任务完成“ 与 “专业能力“ 的区分:理论基础、行业影响与个人发展策略
人工智能·python·机器学习