ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION

Diederik P. Kingma
Jimmy Lei Ba

论文结构:


image.png
  1. 介绍+提出adam算法结构
  • 针对的问题:高维参数空间的随机目标的优化问题。在这种情况下,高阶优化方法是不合适的,adam局限于一阶优化方法。
  • 为什么?
    需要一个基于梯度优化的有效随机//优化算法
  • 优点:
    实现简单
    高效的计算
    所需内存少
    梯度对角缩放的不变性(第二部分将给予证明)
    适合解决含大规模数据和参数的优化问题
    适用于非平稳(non-stationary)目标/非凸优化
    适用于解决包含很高噪声或稀疏梯度的问题
    超参数可以很直观地解释,并且基本上只需极少量的调参
  • 算法结构


    image.png
  1. 算法详解+更新规则
  • 详细解释:
  • 学习率衰减:


    image.png
  • ADAM’S UPDATE RULE
    Adam 算法更新规则会很谨慎地选择步长的大小。假定ε=0,则每次时间步t有效下降步长为


    image.png

    有界性:


    image.png

    image.png

    可以令其相对简单地提前知道α正确的范围,因此其要优于没有提供足够信息的当前梯度估计。
    信噪比(signal-to-noise ratio/SNR):
    image.png

    其大小决定了符合真实梯度方向的不确定性。例如,SNR 值在最优解附近趋向于 0,因此也会在参数空间有更小的有效步长:即一种自动退火(automatic annealing)的形式。
    梯度对角缩放的不变性:有效步长∆t 对于梯度缩放来说仍然是不变量。


    image.png
  1. 偏差修正
    基于指数加权平均数的梯度更新:


    image.png

    展开式:


    image.png

    指数加权平均数和真实量之间的偏差修正,我们对式(1)的左边和右边去期望:
    image.png
  1. adam收敛性
    利用 Zinkevich 2003 年提出的在线学习框架分析了 Adam 算法的收敛性。


    image.png

    image.png
  1. 其它相关优化算法
  • RMSprop


    image.png

    区别:带动量算时重新计算梯度上的动量而不是指数加权平均数的算法。没有偏差修正。

  • adagrad


    image.png

    区别:beta取值,有偏差修正。

  1. 模型性能测试
    评估方法:(使用大规模数据集和模型,相同的参数初始化,显示结果为最好的超参数)
  • Logistic 回归
    1.minist数据集,网络为28*28=784,minibatch=128。
    2.IMDB电影评论数据集,稀疏特征问题。


    image.png
  • 多层全连接神经网络
    MINIST训练集,两层完全连接的隐含层,每层隐含单元1000,ReLU激活的神经网络模型, minibatch size=128.


    image.png
  • 卷积神经网络


    image.png
  • 偏差校正


    image.png

开源代码:https://github.com/michaelshiyu/kerNET

  1. adamax
    L^2---> L^p
    令 p → ∞,得出一个极其稳定和简单的算法adamax


    image.png

    结构:


    image.png

    其中:
    image.png

    变为迭代式:
    image.png

    其中,不需要修正beta2的初始化偏差。同样 AdaMax 参数更新的量级要比 Adam 更简单,即|∆t| ≤ α。

下一步方向:
adam超参数设置:调参经验
缺点改进:adam虽然收敛的很快,也很稳定,但是收敛的效果差(即收敛到的最优解的准确率偏低)。
更好的优化算法:
比如AMSGrad和AdaBound。后者是目前来说比较有希望顶替Adam的:前期和Adam一样快,后期有和SGD一样的精度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。