zoukankan      html  css  js  c++  java
  • 深度学习中常用的优化器简介

    深度学习中常用的优化器简介

    SGD

    mini-batch SGD 是最基础的优化方法,是后续改良方法的基础。下式给出SGD的更新公式

    [ heta_t = heta_{t-1} - alpha abla_ heta J( heta) ]

    其中(alpha)是学习速率。

    SGD with Momentum

    带动量的mini-SGD的更新方法如下

    [egin{split} v_t &= rcdot v_{t-1} + alpha abla_ heta J( heta)\ heta_t &= heta_{t-1} - v_t end{split} ]

    如果这一次的梯度与上一次的梯度方向一致,那么更新量就会越来越大,这样沿着负梯度的方向就会越走越快,可以使得模型收敛加速。

    Nesterov Momentum

    Nesterov Momentum是SGD with Momentum 的改进版,应用该方法的参数更新策略如下

    [egin{split} v_t & = rcdot v_{t-1} + alphacdot abla_ heta J( heta - rcdot v_{t-1})\ heta_t &= heta_{t-1} - v_t end{split} ]

    在计算梯度的时候,加入了预估的信息,这样可以在上坡之前提前减速,减少震荡,使得优化朝着更加有利的方向进行。

    Adagrad

    前面介绍的三种方法,所有的参数使用着完全一样的学习速率。但是,讲道理,不同的参数应该使用不同的学习速率,比如出现频率较低的参数更新幅度应该大,而频率高的参数更新幅度就相对小一些。AdaGrad正是这样的方法,更为具体的

    [egin{split} v_t &= v_{t-1} + g_t^2\ heta_{t} &= heta_{t-1} - dfrac{alpha}{sqrt{v_t+epsilon}}cdot g_{t} end{split} ]

    其中(epsilon)是平滑因子,避免被开方的数是0。这里解释了为什么更新频率低的参数其更新量相对会大些,因为这些参数对应的分母较小。但是,AdaGrad优化器也有着明显的缺点,当(v_t)累积到足够的大的时候,分式的结果会无限接近0,导致参数更新缓慢甚至根本无法被更新,使得训练提前结束。

    RMSprop

    RMSProp是AdaGrad的一种改良,其计算如下式所示:

    [egin{split} v_t &= 0.9v_{t-1} + 0.1g_t^2\ heta_t &= heta_{t-1} - dfrac{alpha}{sqrt{v_t + epsilon}}g_t end{split} ]

    可以看到,这里使用的是移动指数平均,不再是AdaGrad方法中的累加和,当(eta)取0.9的时候,可以看作是最近10次梯度更新量的加权平均。

    Adam

    Adam是上述方法的集大成者,除了使用了梯度的平方移动加权均值,也使用了梯度本身的移动加权均值。其计算如下

    [egin{split} m_t &= eta_1m_{t-1} + (1-eta_1)g_t\ v_t &= eta_2v_{t-1} + (1 - eta_2)g_t^2\ hat{m}_t &= dfrac{m_t}{1 - eta_1^t}\ hat{v}_t &= dfrac{v_t}{1- eta_2^t}\ heta_t &= heta_{t-1} - dfrac{alpha}{sqrt{hat{v}_t+epsilon}}hat{m}_t end{split} ]

    从上面的表达式中,可以看到,在计算移动指数平均的时候,还进行了修正,避免了移动指数平均的冷启动问题。

  • 相关阅读:
    时隔三个月,不言谢归来了。学习播客继续更新日常所学。
    一个网易云音乐的外链URL简单的获取方法
    VisualStudioCode常用主题,与插件设置
    页面a标签统一跳转方法:base 标签
    Web前端开发规范(记录一):团队约定-基本原则
    JS中,正则表达式:match(/^(.*)(.)(.{1,8})$/)[3]分析
    Morgan模块使用
    Config模块使用
    MongoDB安装
    JSP-九大内置对象
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/9921931.html
Copyright © 2011-2022 走看看