Adam原理

这篇具有很好参考价值的文章主要介绍了Adam原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Adam

Adam(Adaptive Moment Estimation)是一种自适应的优化算法,用于训练神经网络等机器学习模型。Adam算法是一种基于梯度下降的优化算法,结合了动量方法和自适应学习率的优点,并对学习率进行自适应调整。Adam算法的优点是收敛速度快,不需要手动调整学习率,兼顾了稳定性和速度。

Adam算法的步骤如下:

  1. 初始化模型参数 θ \boldsymbol{\theta} θ和梯度缓存变量 S \boldsymbol{S} S R \boldsymbol{R} R
  2. 对于每个迭代步骤 t = 1 , 2 , . . . t=1,2,... t=1,2,...执行以下操作:
    a. 从训练集中随机抽取一个小批量样本 X t \boldsymbol{X}_t Xt和其对应的标签 y t \boldsymbol{y}_t yt
    b. 计算小批量样本的梯度信息 g t \boldsymbol{g}_t gt
    c. 更新第一矩估计向量 S t \boldsymbol{S}_t St和第二矩估计向量 R t \boldsymbol{R}_t Rt
    d. 计算偏置校正后的梯度信息 g t ′ \boldsymbol{g}'_t gt
    e. 更新模型参数 θ \boldsymbol{\theta} θ

Adam算法的具体计算公式如下:

  1. 计算梯度信息:
    g t = ∇ θ   J ( θ , X t , y t ) \boldsymbol{g}_t = \nabla_{\boldsymbol{\theta}}\ J(\boldsymbol{\theta}, \boldsymbol{X}_t, \boldsymbol{y}_t) gt=θ J(θ,Xt,yt)
    式中, J ( θ , X t , y t ) J(\boldsymbol{\theta}, \boldsymbol{X}_t, \boldsymbol{y}_t) J(θ,Xt,yt)表示目标函数, X t \boldsymbol{X}_t Xt y t \boldsymbol{y}_t yt分别表示一个小批量样本的特征和标签。

  2. 计算第一矩估计向量 S t \boldsymbol{S}_t St和第二矩估计向量 R t \boldsymbol{R}_t Rt
    S t = β 1 S t − 1 + ( 1 − β 1 ) g t \boldsymbol{S}_t = \beta_1 \boldsymbol{S}_{t-1} + (1-\beta_1) \boldsymbol{g}_t St=β1St1+(1β1)gt
    R t = β 2 R t − 1 + ( 1 − β 2 ) g t 2 \boldsymbol{R}_t = \beta_2 \boldsymbol{R}_{t-1} + (1-\beta_2) \boldsymbol{g}_t^2 Rt=β2Rt1+(1β2)gt2
    式中, S t \boldsymbol{S}_t St表示第一矩估计向量, R t \boldsymbol{R}_t Rt表示第二矩估计向量; β 1 \beta_1 β1 β 2 \beta_2 β2是衰减率(decay rate),通常取值为0.9和0.999。

  3. 计算偏置校正后的梯度信息 g t ′ \boldsymbol{g}'_t gt
    S ^ t = S t 1 − β 1 t \boldsymbol{\hat{S}}_t = \frac{\boldsymbol{S}_t}{1-\beta_1^t} S^t=1β1tSt
    R ^ t = R t 1 − β 2 t \boldsymbol{\hat{R}}_t = \frac{\boldsymbol{R}_t}{1-\beta_2^t} R^t=1β2tRt
    g t ′ = α S ^ t R ^ t + ϵ \boldsymbol{g}'_t = \frac{\alpha \boldsymbol{\hat{S}}_t}{\sqrt{\boldsymbol{\hat{R}}_t}+\epsilon} gt=R^t +ϵαS^t
    式中, S ^ t \boldsymbol{\hat{S}}_t S^t R ^ t \boldsymbol{\hat{R}}_t R^t分别表示经过偏置校正后的第一矩估计向量和第二矩估计向量; α \alpha α表示学习率(learning rate), ϵ \epsilon ϵ是平滑项,通常设置为 1 0 − 8 10^{-8} 108,用于防止除0。

  4. 更新模型参数:
    θ t + 1 = θ t − g t ′ \boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \boldsymbol{g}'_t θt+1=θtgt

以上就是Adam算法的具体步骤和计算公式。文章来源地址https://www.toymoban.com/news/detail-735679.html

到了这里,关于Adam原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包