【问题标题】:Vowpal Wabbit: specifying the learning rate scheduleVowpal Wabbit:指定学习率计划
【发布时间】:2020-10-30 20:29:13
【问题描述】:

我正在查看大众汽车的 update rule options 文档,我对使用参数指定学习率计划的方程式感到困惑 initial_t, power_t, 和decay_learning_rate

基于文档中此行下方的等式

指定通用形式的学习率计划

如果initial_t 等于零(这是默认设置),对于所有时间步长和历元,学习率似乎总是为零。是这样吗?

另外,如果initial_tpower_t 都设置为零会怎样?我尝试使用这些设置初始化大众汽车,但它没有抱怨。

【问题讨论】:

    标签: vowpalwabbit


    【解决方案1】:

    如果 initial_t 等于 0(这是默认设置),对于所有时间步长和 epoch,学习率似乎总是为零。是这样吗?

    initial_t 默认设置为零。默认情况下,初始学习率不会使用initial_t 来计算其值,而是从其默认值开始,即0.5

    根据文档,adaptivenormalizedinvariant 标志默认处于打开状态。如果指定了其中任何一个,则关闭其他标志。在您打开invariant 标志的情况下(所以在我们不使用归一化或自适应的情况下)初始学习率将使用initial_tpower_t 值计算,默认值initial_t设置为 1 而不是 0。

    如果initial_t 被明确设置为零并设置了invariant 标志,那么是的,学习率也将为零。

    另外,如果 initial_t 和 power_t 都设置为零会怎样?我尝试使用这些设置初始化大众汽车,但它没有抱怨。

    如果初始学习率是使用initial_tpower_t 计算的,并且两者都显式设置为零,c++ 应将powf(0,0) 评估为1,从而将学习率设置为其默认值,可以是由--learning_rate指定

    如果您通过命令行运行 vowpalwabbit,您应该能够看到这些值设置为:

    Num weight bits = 18
    learning rate = 10
    initial_t = 1
    power_t = 0.5
    decay_learning_rate = 1
    

    【讨论】:

    • 有趣的是,在docs 中它说默认值为0:--initial_t arg (=0) initial t value。从 python 界面运行 VW 会默认打印 initial_t = 0:from vowpalwabbit import pyvw; pyvw.vw(""); 输出 Num weight bits = 18 ....... initial_t = 0 power_t = 0.5 .... 但它确实会学习。
    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2020-08-16
    • 2014-08-07
    • 2016-01-05
    • 2018-01-20
    • 2015-01-06
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多