我看到VowpalWabbit命令行的文档中提到了默认的--adaptive学习速率策略。我是而不是,使用命令行实用程序来训练,即:通过命令行传递整个训练文件。相反,我有一个大型数据集,我正在使用Python在线学习方法一次迭代和训练一个样本,如下所示:
for example in train_examples:
model.learn(example)问题:
adaptive策略自动调整的,还是只有通过命令行实用程序传递培训文件时才有效?--passes参数仅在培训文件通过命令行实用程序传递时才有效(如果我错了,请纠正我)。因此,下面的--decay_learning_rate参数在Python学习方法中也不起作用?-衰变_学习速率arg (=1)设置learning_rate间的衰减因子
发布于 2022-02-21 00:59:30
没有单一的全球学习率。
有:
-l <arg>)学习速率不是恒定的,随着时间的推移,它们会随着模型的收敛而衰减。他们有很好的缺省值,所以你通常不应该在训练的时候担心他们。
更详细的是:
-l [ --learning_rate ] arg。它是在学习开始时设置的,而不是在每个示例处理时设置的,并且有一个很好的默认设置,因此不需要指定它。如果您确实指定它,它将影响您学习的速度(更新有多大),但随着学习的进展和自动调整的应用,它的效果将会衰减。将初始学习率设置为高值是不建议的,因为它可能会导致早期的过度适应。--adaptive、--normalized和--invariant是3个独立的布尔开关,默认情况下,这些开关将打开。除非你真的知道你在做什么,就别去管它们(不要指定它们),它们就会全部生效。这三个开关影响个人(每个特征)的更新,并与初始学习速率正交。如果您显式地打开--一个或多个这3个开关中的一个或多个,则在培训开始时(不是每个示例),它将隐式地关闭,这是您没有显式指定的。--decay_learning_rate arg才是相关的,因此您不需要担心它,因为您不使用多个传递。这将影响出入证之间的额外调整幅度。画出你的平均损失,(或损失“自上一列”)随着时间的推移,可以帮助你找出收敛。您可以使用vw-convergence从vw源文件utl目录中输入进度输出,以查看您的收敛性。vw-convergence是一个CLI实用程序,需要perl和R。
下面是一个由vw-convergence生成的图表的例子

https://stackoverflow.com/questions/71186805
复制相似问题