gpt4 book ai didi

machine-learning - 当 TensorFlow 中的学习率衰减时,什么时候应该将阶梯设置为 True?

转载 作者:行者123 更新时间:2023-11-30 08:37:18 29 4
gpt4 key购买 nike

回想一下,当 exponentially decaying TensorFlow 中的学习率:

decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)

文档提到这个楼梯选项是:

If the argument staircase is True, then global_step /decay_steps is an integer division and the decayed learning rate follows a staircase function.

什么时候最好每 X 步衰减并遵循楼梯函数,而不是每一步衰减越来越多的平滑版本?

最佳答案

现有的答案似乎没有描述这一点。有两种不同的行为被描述为“楼梯”行为。

  • 来自 feature request for staircase ,该行为被描述为手动调整的分段恒定衰减率,以便用户可以提供一组迭代边界和一组衰减率,以便在迭代通过给定值后使衰减率跳至指定值边界。

    如果你查看actual code for this feature pull request ,您会发现 PR 与函数参数中的阶梯选项没有太大关系。相反,它定义了一个完全独立的 piecewise_constant 操作,并且关联的单元测试展示了如何使用 learning_rate_decay.piecewise_constant 将您自己的自定义学习率定义为分段常数。

  • 来自 the documentation on decaying the learning rate ,该行为被描述为将 global_step/Decay_steps 视为整数除法,因此对于第一组 decay_steps 步骤,除法结果为 0,并且学习率是恒定的。一旦经过第 decay_steps 次迭代,衰减率就会提高到 1 的幂,然后是 2 的幂,等等。因此,您只能观察特定幂的衰减率,而不是平滑地观察衰减率如果您将全局步骤视为 float ,则所有权力都会有所不同。

至于优点,这只是您应该根据您的问题做出的超参数决定。使用阶梯选项可以让您保持衰减率恒定,本质上就像在模拟退火中保持较高的温度较长时间一样。这可以让您通过在梯度方向上迈出更大的步伐来探索更多的解决方案空间,但代价可能是嘈杂或无效的更新。同时,平稳地增加衰减率功率将稳定地“冷却”探索,这可能会因为让你陷入局部最优而限制你,但它也可以防止你在嘈杂的大梯度步骤上浪费时间。

一种方法或另一种方法是否更好(a)通常并不重要,(b)通常需要在可能重要的情况下进行专门调整。

另外,正如功能请求链接提到的,分段常数操作似乎适用于非常具体调整的用例,当您有单独的证据支持基于收集训练指标作为迭代函数来手动调整衰减率时。我通常不建议将其用于一般用途。

关于machine-learning - 当 TensorFlow 中的学习率衰减时,什么时候应该将阶梯设置为 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38045943/

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