前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Adam

作者头像
hotarugali
发布2022-03-10 14:58:38
4350
发布2022-03-10 14:58:38
举报

1. 简介

Adam 算法可以看作动量法和 RMSprop 算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率。

2. 原理

t 次迭代时:

  • 一方面计算梯度平方的指数加权平均:
\begin{array}{c} \boldsymbol{G}_t = \beta_2 \boldsymbol{G}_{t-1} + (1-\beta_2) \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \odot \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \end{array}
  • 另一方面计算梯度的指数加权平均:
\begin{array}{c} \boldsymbol{M}_t = \beta_1 \boldsymbol{M}_{t-1} + (1-\beta_1) \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \end{array}

一般参数取值为:\beta_1 = 0.9, \beta_2 = 0.99\boldsymbol{M}_t \boldsymbol{G}_t 可以分别看作是梯度的一阶矩和二阶矩,其初始化取值为 \boldsymbol{M}_t = 0, \boldsymbol{G}_t = 0 ;但这样会导致迭代初期 \boldsymbol{M}_t \boldsymbol{G}_t 的值会比真实的一阶矩和二阶矩要小,因此要对偏差进行修正:

\begin{array}{c} \hat{\boldsymbol{M}}_t = \frac{\boldsymbol{M}_t}{1-\beta_1} \\ \hat{\boldsymbol{G}}_t = \frac{\boldsymbol{G}_t}{1-\beta_2} \end{array}

Adam 算法的参数更新公式为:

\begin{array}{c} \Delta \boldsymbol{W}_t = - \frac{\eta}{\sqrt{\hat{\boldsymbol{G}_t}+\boldsymbol{\varepsilon}}} \hat{\boldsymbol{M}_t} \end{array}

其中,\eta 为学习率,通常取值为0.001

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 简介
  • 2. 原理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档