滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving avergae),可以用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关。

变量vvv在ttt时刻记为vtv_{t}vt​,θt\theta_{t}θt​为变量vvv在ttt时刻训练后的取值,当不使用滑动平均模型时vt=θtv_{t} = \theta_{t}vt​=θt​,在使用滑动平均模型后,vtv_{t}vt​的更新公式如下:

上式中,βϵ[0,1)\beta\epsilon[0,1)βϵ[0,1)。β=0\beta = 0β=0相当于没有使用滑动平均。

ttt时刻变量vvv的滑动平均值大致等于过去1/(1−β)1/(1-\beta)1/(1−β)个时刻θ\thetaθ值的平均。并使用bias correction将vtv_{t}vt​除以(1−βt)(1 - \beta^{t})(1−βt)修正对均值的估计。

加入Bias correction后,vtv_{t}vt​和vbiasedtv_{biased_{t}}vbiasedt​​的更新公式如下:

当ttt越大,1−βt1 - \beta^{t}1−βt越接近1,则公式(1)和(2)得到的结果(vtv_{t}vt​和vbiased1v_{biased_{1}}vbiased1​​)将越来越接近。

当β\betaβ越大时,滑动平均得到的值越和θ\thetaθ的历史值相关。如果β=0.9\beta = 0.9β=0.9,则大致等于过去10个θ\thetaθ值的平均;如果β=0.99\beta = 0.99β=0.99,则大致等于过去100个θ\thetaθ值的平均。

下图代表不同方式计算权重的结果:

如上图所示,滑动平均可以看作是变量的过去一段时间取值的均值,相比对变量直接赋值而言,滑动平均得到的值在图像上更加平缓光滑,抖动性更小,不会因为某种次的异常取值而使得滑动平均值波动很大。

滑动平均的优势: 占用内存少,不需要保存过去10个或者100个历史θ\thetaθ值,就能够估计其均值。滑动平均虽然不如将历史值全保存下来计算均值准确,但后者占用更多内存,并且计算成本更高。

为什么滑动平均在测试过程中被使用?

滑动平均可以使模型在测试数据上更鲁棒(robust)。

采用随机梯度下降算法训练神经网络时,使用滑动平均在很多应用中都可以在一定程度上提高最终模型在测试数据上的表现。

训练中对神经网络的权重 weightsweightsweights 使用滑动平均,之后在测试过程中使用滑动平均后的 weightsweightsweights 作为测试时的权重,这样在测试数据上效果更好。因为滑动平均后的 weightsweightsweights 的更新更加平滑,对于随机梯度下降而言,更平滑的更新说明不会偏离最优点很远。比如假设decay=0.999,一个更直观的理解,在最后的1000次训练过程中,模型早已经训练完成,正处于抖动阶段,而滑动平均相当于将最后的1000次抖动进行了平均,这样得到的权重会更加鲁棒。

深度学习_深度学习基础_滑动平均详解相关推荐

  1. 深度学习之目标检测(十一)--DETR详解

    深度学习之目标检测(十一)-- DETR详解 目录 深度学习之目标检测(十一)-- DETR详解 1. 前言 2. DETR 框架 2.1 CNN Backbone 2.2 Transformer E ...

  2. 【深度学习】扩散模型(Diffusion Model)详解

    [深度学习]扩散模型(Diffusion Model)详解 文章目录 [深度学习]扩散模型(Diffusion Model)详解 1. 介绍 2. 具体方法 2.1 扩散过程 2.2 逆扩散过程 2. ...

  3. 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解

    笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...

  4. 深度学习模型训练和关键参数调优详解

    深度学习模型训练和关键参数调优详解 一.模型选择 1.回归任务 人脸关键点检测 2.分类任务 图像分类 3.场景任务 目标检测 人像分割 文字识别 二.模型训练 1.基于高层API训练模型 加载数据集 ...

  5. Keras深度学习实战(26)——文档向量详解

    Keras深度学习实战(26)--文档向量详解 0. 前言 1. 文档向量基本概念 2. 神经网络模型与数据集分析 2.1 模型分析 2.2 数据集介绍 3. 利用 Keras 构建神经网络模型生成文 ...

  6. Keras深度学习实战(22)——生成对抗网络详解与实现

    Keras深度学习实战(22)--生成对抗网络详解与实现 0. 前言 1. 生成对抗网络原理 2. 模型分析 3. 利用生成对抗网络生成手写数字图像 小结 系列链接 0. 前言 生成对抗网络 (Gen ...

  7. Keras深度学习实战(21)——神经风格迁移详解

    Keras深度学习实战(21)--神经风格迁移详解 0. 前言 1. 神经风格迁移原理 2. 模型分析 3. 使用 Keras 实现神经风格迁移 小结 系列链接 0. 前言 在 DeepDream 图 ...

  8. mount: 未知的文件系统类型“vboxsf”_好程序员云计算学习路线教程大纲课件:Mount 挂载详解...

    好程序员云计算学习路线教程大纲课件:Mount 挂载详解: ====================================================================== ...

  9. 子网掩码必须是相邻的是什么意思_零基础IP子网划分详解

    零基础IP子网划分详解 2016.8.22修正,感谢道友刘先生的提醒 在学习IP子网划分前,首先的明白以下几个基础概念: 1.IP地址组成 IP地址组成示意图 IP地址由32位二进制组成,32位二进制 ...

最新文章

  1. Python 快速生成 web 动态展示机器学习项目!
  2. 审稿人眼中的好论文到底长什么样?
  3. 阿里云HBase推出全新X-Pack服务 定义HBase云服务新标准
  4. 怎样做网络推广浅析网站被K之后,优化人员们要注意的方面是哪些?
  5. 【django】创建项目子应用
  6. 外媒称新浪面临与雅虎一样的问题 或被阿里廉价收购
  7. Spring ConfigurationClassPostProcessor Bean解析及自注册过程
  8. java get properties_Java.lang.System之getProperties()方法
  9. IntersectionObserver对象
  10. OpenStack Keystone架构
  11. TextureMerger1.6.6 一:Egret MovieClip的制作和使用
  12. ISL - Ch.2 Statistical Learning
  13. 笑傲职场 不可缺少的五颗心.
  14. android 图片处理器-包括反转、浮雕、锐化、轮廓提取功能
  15. html5 前端js框架,前端h5框架总结
  16. USACO 2007 Dec Silver Mud Puddles bfs or A-star
  17. 大富豪5.3全网首发,真正的5.3正版破解授权,不是高防端
  18. java获取剩余手机电池容量_怎样判断手机电池的剩余容量
  19. 【云真机平台】稳定性测试自动化脚本
  20. Cmd批处理替换文件

热门文章

  1. JXL解决excl中的日期无法筛选问题
  2. qt连接mysql绘制曲线图表_Qt绘制曲线
  3. python bisect_Python 中的bisect
  4. lastpass 右边_使用LastPass保留那些难以记住的卡号并确保其安全
  5. 计算机体系结构实验二——DLX/MIPS/RISC-V指令格式
  6. EPERM: operation not permitted, lstat
  7. 市占率从3%到17%,荣耀会是2022手机市场最大变数?
  8. 5+ App开发入门指南
  9. CommandArgument传两个以上参数
  10. 【无标题】速度环中限制加速度与加加速度的积分处理