gpt4 book ai didi

python - Tensorflow Adam 优化器

转载 作者:行者123 更新时间:2023-11-30 22:16:22 24 4
gpt4 key购买 nike

好吧,我一直在阅读一些有关 tensorflow 中 AdamOptimizer 的帖子。我认为至少在像我这样的神经网络初学者中存在一些困惑。

如果我理解正确的话,tf.train.AdamOptimizer 保持所谓的“自适应学习率”。我认为这个学习率会随着时间的增加而变小。

但是,当我绘制学习率缩放函数时(取自 docs) ,

t <- t + 1
lr_t <- learning_rate * sqrt(1 - beta2^t) / (1 - beta1^t)

这就是我得到的:

t = np.arange(200)
result = np.sqrt(1-0.999**t)/(1-0.9**t)
plt.plot(result)
plt.show

enter image description here

因此,对于 t = 1,用户选择的学习率的值乘以 0.3 然后它会很快减小,直到其值的 0.15,然后随着时间的推移而增加,慢慢接近极限 = 用户选择的学习率。

是不是有点奇怪?我想我在某个地方错了,但我预计学习率会从较高的值开始,然后逐渐向较小的值下降。

最佳答案

你不能像这样真正绘制 Adam 学习率,因为 Adam 是一个动量优化器。每个步骤应用的梯度取决于先前步骤梯度的平均值和标准差的移动平均值。

一般来说,不能保证学习收敛,原始学习率 alpha 本身不会被 Adams 直接改变。它仅使用梯度动量来重新缩放。只有当梯度的均值和标准差在达到全局最小值时随着时间的推移而减小时,学习才能很好地收敛,这对于简单的神经网络来说通常是这种情况。

然而,对于高度随机的问题,人们可能仍然需要实现某种形式的学习率衰减来抑制最佳参数周围的“振荡”,或者至少使它们更小以确保真正收敛。

如果您确实想了解其具体工作原理,您可能需要阅读 Adam paper ,它比乍一看要简单得多。

关于python - Tensorflow Adam 优化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com