首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >learning_rate是否会使用“自适应”策略自动调整VowpalWabbit Python在线学习?

learning_rate是否会使用“自适应”策略自动调整VowpalWabbit Python在线学习?
EN

Stack Overflow用户
提问于 2022-02-19 16:18:22
回答 1查看 63关注 0票数 1

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

代码语言:javascript
复制
for example in train_examples:
    model.learn(example)

问题:

  1. 当使用Python学习方法时,学习速度是否也是使用adaptive策略自动调整的,还是只有通过命令行实用程序传递培训文件时才有效?
  2. 据我理解,--passes参数仅在培训文件通过命令行实用程序传递时才有效(如果我错了,请纠正我)。因此,下面的--decay_learning_rate参数在Python学习方法中也不起作用?

-衰变_学习速率arg (=1)设置learning_rate间的衰减因子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-21 00:59:30

没有单一的全球学习率。

有:

  • 单个默认初始学习率(-l <arg>)
  • 学习时保持多个(每个特征)的学习率。

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

更详细的是:

  • 初始学习率,可选择设置与-l [ --learning_rate ] arg。它是在学习开始时设置的,而不是在每个示例处理时设置的,并且有一个很好的默认设置,因此不需要指定它。如果您确实指定它,它将影响您学习的速度(更新有多大),但随着学习的进展和自动调整的应用,它的效果将会衰减。将初始学习率设置为高值是不建议的,因为它可能会导致早期的过度适应。
  • --adaptive--normalized--invariant是3个独立的布尔开关,默认情况下,这些开关将打开。除非你真的知道你在做什么,就别去管它们(不要指定它们),它们就会全部生效。这三个开关影响个人(每个特征)的更新,并与初始学习速率正交。如果您显式地打开--一个或多个这3个开关中的一个或多个,则在培训开始时(不是每个示例),它将隐式地关闭,这是您没有显式指定的。
  • 正如您所理解的,只有当多个传递生效时,--decay_learning_rate arg才是相关的,因此您不需要担心它,因为您不使用多个传递。这将影响出入证之间的额外调整幅度。

画出你的平均损失,(或损失“自上一列”)随着时间的推移,可以帮助你找出收敛。您可以使用vw-convergencevw源文件utl目录中输入进度输出,以查看您的收敛性。vw-convergence是一个CLI实用程序,需要perl和R。

下面是一个由vw-convergence生成的图表的例子

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71186805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档