假设:
- 我以相同的顺序将数据提供给 10 个 AdamOptimizer。
- 所有 AdamOptimizer 都尝试最小化相同的目标函数。
- 10 个 AdamOptimizer 的变量初始值不同
- 一些变量(我们称之为集合 b)应该对目标函数的最小值没有影响。但我不知道最小化之前b集合中有哪些变量。
- 目标函数是确定性的。
对于 10 次最小化,b 组中的变量会有不同的值吗?
我正在尝试在 GPU 上同时运行 10 个最小化。 训练数据量大。
最佳答案
How random is the Adam optimizer?
结果 y
中的随机性并不是 Adam 为超参数的固定值带来的东西。它基于 TensorFlow 填充的关于 np.random.seed(0)
或 tf 的参数
.W
和偏差 b
。 set_random_seed(0)
如 Adam 中所述,它是 RMSProp 与带有动量的梯度下降相结合。
如果您查看arguments :
- lr: float >= 0。学习率。
- beta_1:浮点型,0 < beta < 1。一般接近 1。
- beta_2:浮点型,0 < beta < 1。一般接近 1。
- epsilon: float >= 0。模糊因子。如果没有,则默认为 K.epsilon()。
- 衰减:float >= 0。每次更新时学习率衰减。
- amsgrad: bool 值。是否应用“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
)
对于固定的默认超参数集,结果将是相同的。
关于python - AdamOptimizer 的随机性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54389279/