Adam吸收了Adagrad(自适应学习率的梯度下降算法)和动量梯度下降算法的优点,既能适应稀疏梯度(即自然语言和计算机视觉问题),又能缓解梯度震荡的问题
常见优化器的详细解析请参考此文章->#深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器

Adma的公式如下,这里我们主要分析红色的标记的这3行公式:

公式1:计算 历史梯度的一阶指数平滑值,用于得到带有动量的梯度值
公式2:计算 历史梯度平方的一阶指数平滑值,用于得到每个权重参数的学习率权重参数
公式3:计算变量更新值,由公式3可知,变量更新值正比于历史梯度的一阶指数平滑值,反比于历史梯度平方的一阶指数平滑值;

历史梯度的一阶指数平滑

历史梯度的一阶指数平滑(也叫一阶矩加权均值)可以理解为求历史梯度的加权平均,距离当前时刻距离越远权重越小,这里类似于求历史梯度的L1范数,这个思想来自于 动量梯度下降算法

如果权重参数更新时,某一维度存在较大震荡(梯度更新值正负交替),那么对当前梯度使用一阶指数平滑(对历史梯度进行正负抵消),可以得到一个较小的梯度值

如果变量在某一维度更新时不存在较大震荡,且在在某一方向上存在稳定较大的梯度更新,那么通过一阶指数平滑后会得到一个较大的值。

总的来说,历史梯度的一阶指数平滑就是使用历史梯度信息对当前梯度进行一个修正(消除变量更新时的震荡),从而得到一个稳定的梯度更新值

历史梯度平方的一阶指数平滑

历史梯度平方的一阶指数平滑(也叫二阶矩加权均值)可以理解为求历史梯度平方的加权平均,距离当前时刻距离越远权重越小,这里类似于求历史梯度的L2范数,这个思想来自于自适应学习率梯度下降算法

因为历史梯度平方的一阶指数平滑的作用就是使每个参数的学习率不同,因此这里我们将学习率参数 η\etaη 和 vt+ϵ\sqrt{v_t}+\epsilonvt​​+ϵ 看作一个整体 ηvt+ϵ\frac{\eta}{\sqrt{v_t}+\epsilon}vt​​+ϵη​,这里我们简单称他为自适应学习率

在迭代过程中,如果某一维度一直以很小的梯度进行更新,证明此方向梯度变换较为稳定,因此可以加大学习率,以较大的学习率在此维度更新,体现在公式上就是:对历史梯度平方进行一阶指数平滑后,公式2会得到一个很小的值,公式3中的自适应学习率会相对较小

相反,某一维度在迭代过程中一直以很大的梯度进行更新,明此方向梯度变换较为剧烈(不稳定),因此可减小学习率,以较小的学习率在此维度更新 体现在公式上就是:对历史梯度平方进行一阶指数平滑后,公式2则会得到一个很大的值,公式3中的自适应学习率会相对较大

历史梯度平方的一阶指数平滑也可以解决梯度稀疏的问题;频繁更新的梯度将会被赋予一个较小的学习率,而稀疏的梯度则会被赋予一个较大的学习率,通过上述机制,在数据分布稀疏的场景,能更好利用稀疏梯度的信息,比标准的SGD算法更有效地收敛。

综上所述,Adam 优化器可以根据历史梯度的震荡情况和过滤震荡后的真实历史梯度对变量进行更新

关于 Adam 和 MSGD算法的比较请参考此文章->#深入探究# Adam和SGDM优化器的对比

通俗理解 Adam 优化器相关推荐

  1. #深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器

    关于SSE.MSE.RMSE.R-Squared等误差公式的深度解析请参考我的这篇博文->#深度解析# SSR,MSE,RMSE,MAE.SSR.SST.R-squared.Adjusted R ...

  2. Adam优化器(通俗理解)

    网上关于Adam优化器的讲解有很多,但总是卡在某些部分,在此,我将部分难点解释进行了汇总.理解有误的地方还请指出. Adam,名字来自:Adaptive Moment Estimation,自适应矩估 ...

  3. Adam优化器偏差矫正的理解

    1.adam优化器公式 包括动量项和过去梯度平方的指数衰减平均 2.偏差校正后的,  3.Adam的参数更新公式 重点来了 第二部偏差矫正的公式是怎么等到的??? 论文中的推导 但是不知道是怎么变化来 ...

  4. Adam优化器简单理解和实现

    前言:因为要实现GAN,简单理解一下训练过程需要用到的Adam优化器. 零.何为优化器 机器学习的任务就是优化参数使之达到最合适的值,同时也就是时损失函数达到最小.损失函数即目标函数的值与真实值的差值 ...

  5. 2学习率调整_Keras的Adam优化器参数理解及自适应学习率

    Adam优化器是目前应用最多的优化器. optimizer--adam_小笨熊~~走向程序猿的~~历程~~专栏-CSDN博客​blog.csdn.net 在训练的过程中我们有时会让学习率随着训练过程自 ...

  6. Pytorch框架中SGD&Adam优化器以及BP反向传播入门思想及实现

    因为这章内容比较多,分开来叙述,前面先讲理论后面是讲代码.最重要的是代码部分,结合代码去理解思想. SGD优化器 思想: 根据梯度,控制调整权重的幅度 公式: 权重(新) = 权重(旧) - 学习率 ...

  7. tf.keras.optimizers.Adam 优化器 示例

    tf.keras.optimizers.Adam 优化器 示例 tf.keras.optimizers.Adam(learning_rate=0.001, # 学习率 默认 0.001beta_1=0 ...

  8. PyTorch基础-Adam优化器使用-06

    当不知道使用什么优化器的时候可以使用adam优化器 代码 import numpy as np import torch from torch import nn,optim from torch.a ...

  9. oracle stalestats_深入理解oracle优化器统计数据(Optimizer Statistics)

    理解oracle优化器统计数据 首先来介绍oracle数据库使用基于规则优化器(RBO)来决定如何执行一个sql语句.基于规则优化器顾名思义,它是遵循一组规则来判断一个sql语句的执行计划.这组规则是 ...

最新文章

  1. mysql别名的使用
  2. MySQL ifnull()函数
  3. .net core 获取binary 文件_Linux操作系统文件目录
  4. 在git中取消删除已删除的文件
  5. ArcMAP 设置图层透明度
  6. Hive入门学习随笔(一)
  7. ios打包时候提示三方文件库错误,整理下解决的思路
  8. VTD(Virtual Test Drive)
  9. win7旗舰版上装VS2010错误(提示:miicrosoft 应用程序报告[安装失败])
  10. 【三维目标检测】PointRCNN(二)
  11. Kotlin 的静态代码分析工具
  12. GP数据库-Creenplum
  13. html5css字竖着显示,css如何设置竖排文字?
  14. CVPR2019论文列表(中英对照)
  15. Falsy Bouncer|FreeCodeCamp
  16. 计算机技术与软件专业技术资格(水平)考试岗位设置与描述
  17. 基于头条新闻数据的文本分类系统实战
  18. 一年收入8000万美金,美华国际医疗凭借“口罩”能否撑起IPO?
  19. 当前普遍使用的微型计算机硬件,计算机应用基础电大考试试题
  20. 织梦系统光传html能不能访问,织梦关键词自动添加链接设置方法

热门文章

  1. beanstalk php 扩展,如何安装Amazon AWS Elastic Beanstalk的PHP扩展?
  2. 原生wx小程序:数组的findIndex用法
  3. HKC G801铃声音量增大办法
  4. GPU教程之使用 NVIDIA 显卡 (GPU) 设置深度学习工作场所 — 适用于 Windows 操作系统
  5. linux按文件大小排序
  6. Ruby_11_多线程と包管理
  7. JToken,JObject取值
  8. 反复重启进入fastboot模式
  9. 简单秒杀功能实现思路
  10. 人工智能研究中心快递柜——代码分析八