learning_rate 是否会使用 "adaptive" 策略自动调整 VowpalWabbit Python 在线学习?

Will learning_rate be automatically adjusted using "adaptive" strategy for VowpalWabbit Python online learning?

我看到 VowpalWabbit command-line 的文档提到 --adaptive 学习率策略是默认的。我 不是 使用命令行实用程序进行训练,即:通过命令行传递整个训练文件。相反,我有一个大型数据集,我正在迭代并使用 Python 在线学习方法一次训练一个样本,如下所示:

for example in train_examples:
    model.learn(example)

问题:

  1. 使用Python在线学习方法时,学习率是否也会使用adaptive策略自动调整,或者只有通过命令行实用程序传递训练文件才有效?
  2. 根据我的理解,--passes 参数仅在训练文件通过命令行实用程序传递时有效(如果我错了请纠正我)。那么,下面的--decay_learning_rate说法在Python在线学习方法中也不行吗?

--decay_learning_rate arg (=1) Set Decay factor for learning_rate between passes

没有单一的全局学习率。

有:

  • 单个默认初始学习率(-l <arg>)
  • 学习时保持多个(per-feature)学习率

学习率不是恒定的,随着模型收敛,它们会随着时间衰减。他们有很好的默认值,所以你通常不应该在训练时担心他们。

更详细一些:

  • 初始学习率,可选地用-l [ --learning_rate ] arg设置。它在学习开始时设置一次,而不是在每个示例处理时设置,并且具有良好的默认值,因此无需指定它。如果你指定它,它会影响你在开始时学习的速度(更新有多大),但随着学习的进行和应用自动调整,效果会衰减。不建议将此初始 learning-rate 设置为高值,因为它可能会导致早期 over-fitting.
  • --adaptive--normalized--invariant 是 3 个独立的布尔开关,默认情况下 on。除非你真的知道你在做什么,否则不要管它们(不要指定它们)它们将全部生效。这 3 个开关影响个体(每个特征)的 更新 ,并且与初始学习率正交。如果你明确地 turn-on 这 3 个开关中的一个或多个,在训练开始时(不是每个例子),它将隐式 turn-off 那些你没有明确指定的。
  • 如您所想,--decay_learning_rate arg 仅在多通道生效时才相关,因此您无需担心,因为您不使用多通道。它将影响通过之间的 额外 调整幅度。

随着时间的推移绘制您的 average-loss(或“自上一列以来”的损失)可以帮助您找出收敛。您可以使用 vwutl 目录中的 vw-convergence,将您的进度输出提供给它以查看您的收敛。 vw-convergence 是一个需要 perl 和 R 的 CLI 实用程序。

这是 vw-convergence

生成的图表示例