Vowpal Wabbit:指定学习率时间表

问题描述

我正在寻找update rule options的大众文档,而对于使用参数指定学习率时间表的方程式感到困惑 initial_tpower_t, 和decay_learning_rate

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

指定学习率时间表的通用形式

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

如果initial_tpower_t都设置为零,会发生什么?我尝试使用这些设置初始化大众汽车,但没有抱怨。

解决方法

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

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