Vowpal Wabbit:指定学习率计划

Vowpal Wabbit: specifying the learning rate schedule

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

基于文档中这一行下方的等式

specify the learning rate schedule whose generic form

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

此外,如果 initial_tpower_t 都设置为零会怎样?我尝试使用这些设置初始化 VW,它没有抱怨。

if initial_t is equal to zero (which is the setting by default), it seems that the learning rate will always be zero, for all timesteps and epochs. Is this right?

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

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

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

Also, what would happen if both initial_t and power_t are set to zero? I tried initializing a VW with those settings and it didn't complain.

如果初始学习率是使用 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