gpt4 book ai didi

machine-learning - epsilon 超参数如何影响 tf.train.AdamOptimizer?

转载 作者:行者123 更新时间:2023-11-30 08:33:12 25 4
gpt4 key购买 nike

当我设置 epsilon=10e-8 时,AdamOptimizer 不起作用。当我将其设置为 1 时,它工作得很好。

最佳答案

t <- t + 1

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

m_t <- beta1 * m_{t-1} + (1 - beta1) * g

v_t <- beta2 * v_{t-1} + (1 - beta2) * g * g

where g is gradient

variable <- variable - lr_t * m_t / (sqrt(v_t) + epsilon)

epsilon是为了避免上式中梯度接近零时更新变量时出现被零除的错误。因此,理想情况下,epsilon 应该是一个很小的值。但是,分母中的 epsilon 较小会产生较大的权重更新,并且通过后续归一化,较大的权重将始终归一化为 1。

所以,我猜当你用小 epsilon 训练时,优化器会变得不稳定。

权衡是,epsilon(和分母)越大,权重更新就越小,因此训练进度就会越慢。大多数时候你希望分母能够变小。通常,epsilon 值大于 10e-4 效果更好。

The default value of 1e-8 for epsilon might not be a good default in general. For example, when training an Inception network on ImageNet a current good choice is 1.0 or 0.1. check here

关于machine-learning - epsilon 超参数如何影响 tf.train.AdamOptimizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43221065/

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