python - AdamOptimizer 的随机性如何?
问题描述
认为:
- 我以相同的顺序将数据提供给 10 AdamOptimizer。
- 所有 AdamOptimizer 都试图最小化相同的目标函数。
- 10 AdamOptimizer 的变量初始值不同
- 一些变量(我们称之为集合 b)应该对目标函数的最小值没有影响。但我不知道在最小化之前集合 b 中有哪些变量。
- 目标函数是确定性的。
集合 b 中的变量对于 10 最小化有不同的值吗?
我正在尝试在 GPU 上同时运行 10 最小化。训练数据很大。
解决方案
Adam 优化器有多随机?
结果中的随机性y
不是 Adam 为超参数的固定值带来的。它基于TensorFlow 关于或填充的参数W
和偏差。b
np.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
)
对于固定的默认超参数集,结果将是相同的。
推荐阅读
- elasticsearch - 索引弹性搜索期间未显示结果
- pandas - 确定对数据进行分箱的最佳分箱
- clickhouse - 如何确定clickhouse的分区键
- xslt - xslt 用于将一个元素转换为多个元素中的属性
- opencv - 在使用 pytesseract/tesseract 从扭曲、模糊的图像中提取文本之前应用的预处理方法
- css - 尝试使用 Flexbox 垂直居中
- django - 生产机器上的 Celery 和 Django
- node.js - 如何在 Node.js 中解析证书吊销列表 (CRL)
- python - 为什么将数组转换为 Tensor 会增加维度?
- javascript - 模块解析失败:意外的令牌 Reactjs?