首页 > 解决方案 > AdamOptimizer 的随机性如何?

问题描述

认为:

  1. 我以相同的顺序将数据提供给 10 AdamOptimizer。
  2. 所有 AdamOptimizer 都试图最小化相同的目标函数。
  3. 10 AdamOptimizer 的变量初始值不同
  4. 一些变量(我们称之为集合 b)应该对目标函数的最小值没有影响。但我不知道在最小化之前集合 b 中有哪些变量。
  5. 目标函数是确定性的。

集合 b 中的变量对于 10 最小化有不同的值吗?

我正在尝试在 GPU 上同时运行 10 最小化。训练数据很大。

标签: pythontensorflow

解决方案


Adam 优化器有多随机?

结果中的随机性y不是 Adam 为超参数的固定值带来的。它基于TensorFlow 关于或填充的参数W和偏差。bnp.random.seed(0)tf.set_random_seed(0)

Adam中所述,它是 RMSProp 与带有动量的梯度下降相结合。

如果您检查论点

  • lr: float >= 0. 学习率。
  • beta_1:float,0 < beta < 1。一般接近1。
  • beta_2:float,0 < beta < 1。一般接近1。
  • epsilon:float >= 0。模糊因子。如果没有,默认为 K.epsilon()。
  • 衰减:浮动> = 0。每次更新的学习率衰减。
  • amsgrad:布尔值。是否应用论文“On the Convergence of Adam and Beyond”中该算法的 AMSGrad 变体。

有很多,默认情况下:

__init__(
    lr=0.001,
    beta_1=0.9,
    beta_2=0.999,
    epsilon=None,
    decay=0.0,
    amsgrad=False, **kwargs
)

对于固定的默认超参数集,结果将是相同的。


推荐阅读