zoukankan      html  css  js  c++  java
  • Adam优化算法

    Adam Optimization Algorithm.

    Adam refer to Adaptive Moment estimation.

    要看懂这篇博文,你需要先看懂:

    整理并翻译自吴恩达深度学习系列视频:
    https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001701052&cid=2001694315

    RMSprop and the Adam optimization algorithm, is one of those rare algorithms that has really stood up, and has been shown to work well across a wide range of deep learning architectures.
    And the Adam optimization algorithm is basically taking momentum and RMSprop and putting them together.

    Adam优化算法

    基本思想是把动量梯度下降RMSprop放在一起使用。

    算法描述

    这个算法描述来自花书《deep learning》,与下面的计算公式不共享参数记号。
    在这里插入图片描述

    Adam优化算法计算方法

    动量梯度下降部分:
    v d w = β 1 v d w + ( 1 − β 1 ) d W v_{dw}=eta_1 v_{dw}+(1-eta_1)dW vdw=β1vdw+(1β1)dW 即指数加权平均,下同。
    v d b = β 1 v d b + ( 1 − β 1 ) d b v_{db}=eta_1 v_{db}+(1-eta_1)db vdb=β1vdb+(1β1)db

    RMSprop部分:
    S d w = β 2 S d w + ( 1 − β 2 ) d W 2 S_{dw}=eta_2S_{dw}+(1-eta_2)dW^2 Sdw=β2Sdw+(1β2)dW2<- element-wise 即平方版本的指数加权平均,下同
    S d b = β 2 S d b + ( 1 − β 2 ) d b 2 S_{db}=eta_2S_{db}+(1-eta_2)db^2 Sdb=β2Sdb+(1β2)db2 <- element-wise

    起始bias修正:
    v d w c o r r e c t = v d w 1 − β 1 t v_{dw}^{correct}=frac{v_{dw}}{1-eta_1^t} vdwcorrect=1β1tvdw
    v d b c o r r e c t = v d b 1 − β 1 t v_{db}^{correct}=frac{v_{db}}{1-eta_1^t} vdbcorrect=1β1tvdb
    S d w c o r r e c t = S d w 1 − β 2 t S_{dw}^{correct}=frac{S_{dw}}{1-eta_2^t} Sdwcorrect=1β2tSdw
    S d b c o r r e c t = S d b 1 − β 2 t S_{db}^{correct}=frac{S_{db}}{1-eta_2^t} Sdbcorrect=1β2tSdb

    更新parameter变成:
    W = W − α v d w c o r r e c t ∗ d W S d w c o r r e c t + ϵ W = W-alpha frac{v_{dw}^{correct}*dW}{sqrt{S_{dw}^{correct}+epsilon}} W=WαSdwcorrect+ϵ vdwcorrectdW 分子来自动量梯度下降 分母来自RMSprop 下同
    b = b − α v d b c o r r e c t ∗ d b S d b c o r r e c t + ϵ b = b-alpha frac{v_{db}^{correct}*db}{sqrt{S_{db}^{correct}+epsilon}} b=bαSdbcorrect+ϵ vdbcorrectdb

    解释说明

    Adam = adaptive moment estimation,自适应性炬估计。
    β 1 eta_1 β1计算的是导数的均值(使用加权指数平均)。这称为第一炬(the first moment)。
    β 2 eta_2 β2计算的是平方版本的指数加权平均。这称为第二炬(the second moment)。

    这是Adam名称的由来,大家一般称之为:Adam Authorization Algorithm(Adam权威算法)。

    默认参数值选取

    • α alpha α
      学习速率是你需要是调参的。
    • β 1 = 0.9 eta_1=0.9 β1=0.9
      -> ( d w ) (dw) (dw) moving average, weighted average. momentum light term.
    • β 2 = 0.999 eta_2=0.999 β2=0.999 -> d w 2 dw^2 dw2
      -> ( d w 2 ) (dw^2) (dw2) RMSprop term. 0.999出自Adam paper,即该算法提出者。
    • ϵ = 1 0 − 8 epsilon=10^{-8} ϵ=108
      几乎没有人去调试这个值,大家都使用 1 0 − 8 10^{-8} 108
  • 相关阅读:
    线性代数之行列式的C#研究实现
    政府部门域名系统杂谈
    C#实现在foreach中删除集合中的元素
    RestServer 2.0 正式版发布
    常见的几种开源协议
    PostgreSQL学习手册(常用数据类型)
    一个很简单的淘宝优惠券搜索助手 大家看看有没有用吧
    做了一个淘宝内部优惠券分享平台支持微信公众号以及网站
    二十三种设计模式之原型模式的C#实现
    arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842532.html
Copyright © 2011-2022 走看看